Started by upstream project "jans-config-api-spanner" build number 1041 originally caused by: Started by upstream project "FullRebuild" build number 1572 originally caused by: Started by timer Running as SYSTEM Building in workspace /home/jetty/.jenkins/workspace/jans-config-api The recommended git tool is: NONE No credentials specified > git rev-parse --resolve-git-dir /home/jetty/.jenkins/workspace/jans-config-api/.git # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url https://github.com/JanssenProject/jans # timeout=10 Fetching upstream changes from https://github.com/JanssenProject/jans > git --version # timeout=10 > git --version # 'git version 2.25.1' > git fetch --tags --force --progress -- https://github.com/JanssenProject/jans +refs/heads/*:refs/remotes/origin/* # timeout=10 > git rev-parse refs/remotes/origin/main^{commit} # timeout=10 Checking out Revision cc8b74617695725d459f5d9f61af25765535d0e1 (refs/remotes/origin/main) > git config core.sparsecheckout # timeout=10 > git checkout -f cc8b74617695725d459f5d9f61af25765535d0e1 # timeout=10 Commit message: "Update backup.md (#3066)" > git rev-list --no-walk cc8b74617695725d459f5d9f61af25765535d0e1 # timeout=10 Run condition [Current build status] enabling prebuild for step [Execute shell] [jans-config-api] $ /bin/bash /opt/jetty/temp/jenkins5143801757804133103.sh WORKSPACE = /home/jetty/.jenkins/workspace/jans-config-api PROFILE_NAME = jenkins-build.jans.io MAVEN_SKIP_TESTS = false VERSION_NAME = main DEVELOPMENT_BUILD = false TEST_CONF_IN_HOST = false CONTAINER_NAME = ubuntu20-spanner /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api ---Start--- ---3--- total 8 -rw-r--r-- 1 jetty jetty 2573 Nov 24 09:32 config-api-test.properties -rw-r--r-- 1 jetty jetty 824 Nov 24 09:32 config-api-server.properties total 0 total 8 -rw-r--r-- 1 jetty jetty 30 Feb 27 2022 config-build.properties -rw-r--r-- 1 jetty jetty 2829 Oct 21 23:48 config-api-test.properties total 8 -rw-r--r-- 1 jetty jetty 2573 Nov 24 09:32 config-api-test.properties -rw-r--r-- 1 jetty jetty 824 Nov 24 09:32 config-api-server.properties total 12 -rw-r--r-- 1 jetty jetty 30 Nov 24 09:32 config-build.properties -rw-r--r-- 1 jetty jetty 2573 Nov 24 09:32 config-api-test.properties -rw-r--r-- 1 jetty jetty 824 Nov 24 09:32 config-api-server.properties ---End--- [jans-config-api] $ /home/jetty/.jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.6.3/bin/mvn -f jans-config-api/pom.xml -Dmaven.test.skip=false -DfailIfNoTests=false -Dcfg=jenkins-build.jans.io -Dtest=io.jans.configapi.JenkinsTestRunner clean compile install javadoc:javadoc site [INFO] Scanning for projects... [WARNING] [WARNING] Some problems were encountered while building the effective model for io.jans:jans-config-api-server:war:1.0.5-SNAPSHOT [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-javadoc-plugin is missing. @ line 334, column 12 [WARNING] [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. [WARNING] [WARNING] For this reason, future Maven versions might no longer support building such malformed projects. [WARNING] [WARNING] The project io.jans:jans-config-api-parent:pom:1.0.5-SNAPSHOT uses prerequisites which is only intended for maven-plugin projects but not for non maven-plugin projects. For such purposes you should use the maven-enforcer-plugin. See https://maven.apache.org/enforcer/enforcer-rules/requireMavenVersion.html [WARNING] The project io.jans:jans-config-api-common:jar:1.0.5-SNAPSHOT uses prerequisites which is only intended for maven-plugin projects but not for non maven-plugin projects. For such purposes you should use the maven-enforcer-plugin. See https://maven.apache.org/enforcer/enforcer-rules/requireMavenVersion.html [WARNING] The project io.jans:jans-config-api-server:war:1.0.5-SNAPSHOT uses prerequisites which is only intended for maven-plugin projects but not for non maven-plugin projects. For such purposes you should use the maven-enforcer-plugin. See https://maven.apache.org/enforcer/enforcer-rules/requireMavenVersion.html [INFO] ------------------------------------------------------------------------ [INFO] Reactor Build Order: [INFO] [INFO] jans-config-api-parent [pom] [INFO] jans-config-api-shared [jar] [INFO] jans-config-api-common [jar] [INFO] jans-config-api-server [war] [INFO] plugins [pom] [INFO] admin-ui-plugin [jar] [INFO] scim-plugin [jar] [INFO] user-mgt-plugin [jar] [INFO] fido2-plugin [jar] [INFO] [INFO] -------------------< io.jans:jans-config-api-parent >------------------- [INFO] Building jans-config-api-parent 1.0.5-SNAPSHOT [1/9] [INFO] --------------------------------[ pom ]--------------------------------- [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ jans-config-api-parent --- [INFO] Deleting /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/target [INFO] [INFO] --- maven-install-plugin:2.3.1:install (default-install) @ jans-config-api-parent --- [INFO] Installing /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/pom.xml to /var/www/html/maven/io/jans/jans-config-api-parent/1.0.5-SNAPSHOT/jans-config-api-parent-1.0.5-SNAPSHOT.pom [INFO] [INFO] >>> maven-javadoc-plugin:3.2.0:javadoc (default-cli) > generate-sources @ jans-config-api-parent >>> [INFO] [INFO] <<< maven-javadoc-plugin:3.2.0:javadoc (default-cli) < generate-sources @ jans-config-api-parent <<< [INFO] [INFO] [INFO] --- maven-javadoc-plugin:3.2.0:javadoc (default-cli) @ jans-config-api-parent --- [INFO] [INFO] --- maven-site-plugin:2.1.1:site (default-site) @ jans-config-api-parent --- [WARNING] No URL defined for the project - decoration links will not be resolved [INFO] [INFO] -------------------< io.jans:jans-config-api-shared >------------------- [INFO] Building jans-config-api-shared 1.0.5-SNAPSHOT [2/9] [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ jans-config-api-shared --- [INFO] Deleting /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target [INFO] [INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ jans-config-api-shared --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] Copying 1 resource [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ jans-config-api-shared --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 15 source files to /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/classes [INFO] [INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ jans-config-api-shared --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] Copying 1 resource [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ jans-config-api-shared --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 15 source files to /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/classes [INFO] [INFO] --- maven-resources-plugin:3.2.0:testResources (default-testResources) @ jans-config-api-shared --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] skip non existing resourceDirectory /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/src/test/resources [INFO] [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ jans-config-api-shared --- [INFO] No sources to compile [INFO] [INFO] --- maven-surefire-plugin:3.0.0-M5:test (default-test) @ jans-config-api-shared --- [INFO] No tests to run. [INFO] [INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ jans-config-api-shared --- [INFO] Building jar: /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/jans-config-api-shared-1.0.5-SNAPSHOT.jar [INFO] [INFO] --- maven-install-plugin:2.3.1:install (default-install) @ jans-config-api-shared --- [INFO] Installing /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/jans-config-api-shared-1.0.5-SNAPSHOT.jar to /var/www/html/maven/io/jans/jans-config-api-shared/1.0.5-SNAPSHOT/jans-config-api-shared-1.0.5-SNAPSHOT.jar [INFO] Installing /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/pom.xml to /var/www/html/maven/io/jans/jans-config-api-shared/1.0.5-SNAPSHOT/jans-config-api-shared-1.0.5-SNAPSHOT.pom [INFO] [INFO] >>> maven-javadoc-plugin:3.2.0:javadoc (default-cli) > generate-sources @ jans-config-api-shared >>> [INFO] [INFO] <<< maven-javadoc-plugin:3.2.0:javadoc (default-cli) < generate-sources @ jans-config-api-shared <<< [INFO] [INFO] [INFO] --- maven-javadoc-plugin:3.2.0:javadoc (default-cli) @ jans-config-api-shared --- [INFO] No previous run data found, generating javadoc. [INFO] Loading source files for package io.jans.configapi.core.model... Loading source files for package io.jans.configapi.core.util... Loading source files for package io.jans.configapi.core.rest... Loading source files for package io.jans.configapi.core.service... Constructing Javadoc information... Standard Doclet version 11.0.7 Building tree for all the packages and classes... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/ApiError.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/ApiError.ErrorBuilder.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/Conf.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/HealthStatus.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/PatchRequest.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/PersistenceConfiguration.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/SearchRequest.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/Status.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/rest/BaseResource.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/rest/ProtectedApi.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/service/ClientService.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/service/ConfService.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/util/AuthUtil.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/util/DataUtil.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/util/Jackson.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/util/Util.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/package-summary.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/package-tree.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/rest/package-summary.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/rest/package-tree.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/service/package-summary.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/service/package-tree.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/util/package-summary.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/util/package-tree.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/constant-values.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/serialized-form.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/class-use/PatchRequest.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/class-use/Conf.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/class-use/SearchRequest.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/class-use/ApiError.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/class-use/ApiError.ErrorBuilder.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/class-use/PersistenceConfiguration.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/class-use/Status.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/class-use/HealthStatus.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/util/class-use/AuthUtil.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/util/class-use/Util.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/util/class-use/Jackson.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/util/class-use/DataUtil.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/rest/class-use/ProtectedApi.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/rest/class-use/BaseResource.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/service/class-use/ConfService.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/service/class-use/ClientService.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/model/package-use.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/rest/package-use.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/service/package-use.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/io/jans/configapi/core/util/package-use.html... Building index for all the packages and classes... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/overview-tree.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/index-all.html... Building index for all classes... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/allclasses-index.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/allpackages-index.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/deprecated-list.html... Building index for all classes... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/allclasses.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/allclasses.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/index.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/overview-summary.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/target/site/apidocs/help-doc.html... 2 warnings [WARNING] Javadoc Warnings [WARNING] /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/src/main/java/io/jans/configapi/core/rest/BaseResource.java:112: warning: no description for @param [WARNING] * @param attributeName [WARNING] ^ [WARNING] /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/shared/src/main/java/io/jans/configapi/core/rest/BaseResource.java:113: warning: no description for @return [WARNING] * @return [WARNING] ^ [INFO] [INFO] --- maven-site-plugin:2.1.1:site (default-site) @ jans-config-api-shared --- [WARNING] No URL defined for the project - decoration links will not be resolved [INFO] [INFO] -------------------< io.jans:jans-config-api-common >------------------- [INFO] Building jans-config-api-common 1.0.5-SNAPSHOT [3/9] [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ jans-config-api-common --- [INFO] Deleting /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target [INFO] [INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ jans-config-api-common --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] Copying 1 resource [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ jans-config-api-common --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 15 source files to /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/classes [INFO] [INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ jans-config-api-common --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] Copying 1 resource [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ jans-config-api-common --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 15 source files to /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/classes [INFO] [INFO] --- maven-resources-plugin:3.2.0:testResources (default-testResources) @ jans-config-api-common --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] skip non existing resourceDirectory /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/src/test/resources [INFO] [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ jans-config-api-common --- [INFO] No sources to compile [INFO] [INFO] --- maven-surefire-plugin:3.0.0-M5:test (default-test) @ jans-config-api-common --- [INFO] Tests are skipped. [INFO] [INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ jans-config-api-common --- [INFO] Building jar: /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/jans-config-api-common-1.0.5-SNAPSHOT.jar [INFO] [INFO] --- maven-install-plugin:2.3.1:install (default-install) @ jans-config-api-common --- [INFO] Installing /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/jans-config-api-common-1.0.5-SNAPSHOT.jar to /var/www/html/maven/io/jans/jans-config-api-common/1.0.5-SNAPSHOT/jans-config-api-common-1.0.5-SNAPSHOT.jar [INFO] Installing /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/pom.xml to /var/www/html/maven/io/jans/jans-config-api-common/1.0.5-SNAPSHOT/jans-config-api-common-1.0.5-SNAPSHOT.pom [INFO] [INFO] >>> maven-javadoc-plugin:3.2.0:javadoc (default-cli) > generate-sources @ jans-config-api-common >>> [INFO] [INFO] <<< maven-javadoc-plugin:3.2.0:javadoc (default-cli) < generate-sources @ jans-config-api-common <<< [INFO] [INFO] [INFO] --- maven-javadoc-plugin:3.2.0:javadoc (default-cli) @ jans-config-api-common --- [INFO] No previous run data found, generating javadoc. [INFO] Loading source files for package io.jans.configapi.exception... Loading source files for package io.jans.configapi.model.configuration... Loading source files for package io.jans.configapi.model.status... Loading source files for package io.jans.configapi.util... Loading source files for package io.jans.configapi.rest.model... Constructing Javadoc information... Standard Doclet version 11.0.7 Building tree for all the packages and classes... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/exception/GlobalErrorHandler.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/configuration/AgamaConfiguration.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/configuration/ApiAppConfiguration.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/configuration/ApiConf.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/configuration/CorsConfiguration.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/configuration/CorsConfigurationFilter.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/status/FacterData.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/status/StatsData.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/rest/model/AuthenticationMethod.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/rest/model/CustomScope.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/rest/model/GluuConfiguration.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/rest/model/Logging.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/util/ApiAccessConstants.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/util/ApiConstants.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/util/AttributeNames.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/exception/package-summary.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/exception/package-tree.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/configuration/package-summary.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/configuration/package-tree.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/status/package-summary.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/status/package-tree.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/rest/model/package-summary.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/rest/model/package-tree.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/util/package-summary.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/util/package-tree.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/constant-values.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/serialized-form.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/exception/class-use/GlobalErrorHandler.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/configuration/class-use/CorsConfigurationFilter.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/configuration/class-use/ApiConf.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/configuration/class-use/CorsConfiguration.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/configuration/class-use/ApiAppConfiguration.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/configuration/class-use/AgamaConfiguration.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/status/class-use/StatsData.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/status/class-use/FacterData.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/util/class-use/ApiAccessConstants.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/util/class-use/AttributeNames.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/util/class-use/ApiConstants.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/rest/model/class-use/GluuConfiguration.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/rest/model/class-use/Logging.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/rest/model/class-use/AuthenticationMethod.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/rest/model/class-use/CustomScope.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/exception/package-use.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/configuration/package-use.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/model/status/package-use.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/rest/model/package-use.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/io/jans/configapi/util/package-use.html... Building index for all the packages and classes... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/overview-tree.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/index-all.html... Building index for all classes... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/allclasses-index.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/allpackages-index.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/deprecated-list.html... Building index for all classes... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/allclasses.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/allclasses.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/index.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/overview-summary.html... Generating /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/target/site/apidocs/help-doc.html... 1 warning [WARNING] Javadoc Warnings [WARNING] /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/common/src/main/java/io/jans/configapi/model/configuration/CorsConfiguration.java:126: warning: no description for @throws [WARNING] * @throws ServletException [WARNING] ^ [INFO] [INFO] --- maven-site-plugin:2.1.1:site (default-site) @ jans-config-api-common --- [WARNING] No URL defined for the project - decoration links will not be resolved [INFO] [INFO] -------------------< io.jans:jans-config-api-server >------------------- [INFO] Building jans-config-api-server 1.0.5-SNAPSHOT [4/9] [INFO] --------------------------------[ war ]--------------------------------- [WARNING] The artifact org.hibernate:hibernate-validator:jar:7.0.5.Final has been relocated to org.hibernate.validator:hibernate-validator:jar:7.0.5.Final [WARNING] The artifact org.hibernate:hibernate-validator-cdi:jar:7.0.5.Final has been relocated to org.hibernate.validator:hibernate-validator-cdi:jar:7.0.5.Final [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ jans-config-api-server --- [INFO] Deleting /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target [INFO] [INFO] --- buildnumber-maven-plugin:1.1:create (default) @ jans-config-api-server --- [INFO] Checking for local modifications: skipped. [INFO] Updating project files from SCM: skipped. [INFO] Executing: /bin/sh -c cd /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server && git rev-parse --verify HEAD [INFO] Working directory: /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server [INFO] Storing buildNumber: cc8b74617695725d459f5d9f61af25765535d0e1 at timestamp: 1669282369189 [INFO] Executing: /bin/sh -c cd /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server && git rev-parse --verify HEAD [INFO] Working directory: /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server [INFO] Storing buildScmBranch: UNKNOWN [INFO] [INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ jans-config-api-server --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] Copying 69 resources [INFO] The encoding used to copy filtered properties files have not been set. This means that the same encoding will be used to copy filtered properties files as when copying other filtered resources. This might not be what you want! Run your build with --debug to see which files might be affected. Read more at https://maven.apache.org/plugins/maven-resources-plugin/examples/filtering-properties-files.html [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ jans-config-api-server --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 61 source files to /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/classes [INFO] [INFO] --- swagger-maven-plugin-jakarta:2.2.2:resolve (default) @ jans-config-api-server --- [INFO] Resolving OpenAPI specification.. [INFO] YAML output: /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/docs/jans-config-api-swagger-auto.yaml [INFO] [INFO] --- maven-jar-plugin:3.2.0:jar (make-a-jar) @ jans-config-api-server --- [INFO] Building jar: /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/jans-config-api.jar [INFO] [INFO] --- buildnumber-maven-plugin:1.1:create (default) @ jans-config-api-server --- [INFO] Checking for local modifications: skipped. [INFO] Updating project files from SCM: skipped. [INFO] Executing: /bin/sh -c cd /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server && git rev-parse --verify HEAD [INFO] Working directory: /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server [INFO] Storing buildNumber: cc8b74617695725d459f5d9f61af25765535d0e1 at timestamp: 1669282376272 [INFO] Executing: /bin/sh -c cd /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server && git rev-parse --verify HEAD [INFO] Working directory: /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server [INFO] Storing buildScmBranch: UNKNOWN [INFO] [INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ jans-config-api-server --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] Copying 69 resources [INFO] The encoding used to copy filtered properties files have not been set. This means that the same encoding will be used to copy filtered properties files as when copying other filtered resources. This might not be what you want! Run your build with --debug to see which files might be affected. Read more at https://maven.apache.org/plugins/maven-resources-plugin/examples/filtering-properties-files.html [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ jans-config-api-server --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 61 source files to /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/classes [INFO] [INFO] --- swagger-maven-plugin-jakarta:2.2.2:resolve (default) @ jans-config-api-server --- [INFO] Resolving OpenAPI specification.. [INFO] YAML output: /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/docs/jans-config-api-swagger-auto.yaml [INFO] [INFO] --- maven-jar-plugin:3.2.0:jar (make-a-jar) @ jans-config-api-server --- [INFO] Building jar: /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/jans-config-api.jar [INFO] [INFO] --- maven-resources-plugin:3.2.0:testResources (default-testResources) @ jans-config-api-server --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] Copying 8 resources [INFO] The encoding used to copy filtered properties files have not been set. This means that the same encoding will be used to copy filtered properties files as when copying other filtered resources. This might not be what you want! Run your build with --debug to see which files might be affected. Read more at https://maven.apache.org/plugins/maven-resources-plugin/examples/filtering-properties-files.html [INFO] [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ jans-config-api-server --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 3 source files to /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/test-classes [INFO] [INFO] --- maven-surefire-plugin:3.0.0-M5:test (default-test) @ jans-config-api-server --- [INFO] [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running io.jans.configapi.JenkinsTestRunner SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/var/www/html/maven/org/apache/logging/log4j/log4j-slf4j-impl/2.19.0/log4j-slf4j-impl-2.19.0.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/var/www/html/maven/ch/qos/logback/logback-classic/1.2.1/logback-classic-1.2.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] Warning: Nashorn engine is planned to be removed from a future JDK release 24-11 09:33:07.175 INFO com.intuit.karate.Runner Runner.java:324- waiting for parallel features to complete ... 24-11 09:33:08.793 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:08.809 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:08.817 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:08.824 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:08.924 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:09.349 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:09.374 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:09.380 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:09.389 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:09.394 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io 24-11 09:33:09.420 INFO com.intuit.karate.Logger Logger.java:104- >> lock acquired, begin callSingle: classpath:token.feature 24-11 09:33:10.169 INFO com.intuit.karate.Logger Logger.java:104- [print] mainUrl = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:10.203 INFO com.intuit.karate.Logger Logger.java:104- [print] grantType = client_credentials 24-11 09:33:10.224 INFO com.intuit.karate.Logger Logger.java:104- [print] clientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:10.252 INFO com.intuit.karate.Logger Logger.java:104- [print] clientSecret = MdZvQhEZ3JsG 24-11 09:33:10.287 INFO com.intuit.karate.Logger Logger.java:104- [print] scopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:10.313 INFO com.intuit.karate.Logger Logger.java:104- [print] authStr = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948:MdZvQhEZ3JsG 24-11 09:33:10.324 INFO com.intuit.karate.Logger Logger.java:104- [print] encodedAuth = MTgwMi5jZmRmM2YxZS0yN2FiLTRkMTctODlkOS0yZmFhZTUwYzA5NDg6TWRadlFoRVozSnNH 24-11 09:33:10.337 INFO com.intuit.karate.Logger Logger.java:104- [print] encodedScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:13.228 INFO com.intuit.karate.Logger Logger.java:104- [print] token response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:13.241 INFO com.intuit.karate.Logger Logger.java:104- << lock released, cached callSingle: classpath:token.feature result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:13.716 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:13.719 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:13.722 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:13.725 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:13.753 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:13.933 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:13.936 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:13.953 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:13.974 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:13.978 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:14.488 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:14.491 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:14.499 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:14.503 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:14.512 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:14.519 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:14.541 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:14.551 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:14.561 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:14.566 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:14.595 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:14.598 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:14.601 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:14.603 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:14.616 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:14.627 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:14.635 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:14.639 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:14.649 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:14.653 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:14.674 INFO com.intuit.karate.Logger Logger.java:104- [print] accessToken = 86338509-2112-409e-98ae-4d3e55ded0fe 24-11 09:33:14.689 INFO com.intuit.karate.Logger Logger.java:104- [print] issuer = https://jenkins-build.jans.io 24-11 09:33:16.091 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 50, "entries": [ { "saml1Uri": "urn:mace:dir:attribute-def:eduPersonScopedAffiliation", "displayName": "eduPersonScopedAffiliation", "origin": "eduPerson", "description": "Specifies the person's affiliation within a particular security domainin broad categories such as student, faculty, staff, alum, etc. Thevalues consistof a left and right component separated by an \"@\" sign. The left component is one ofthe values from the eduPersonAffiliation controlledvocabulary.This right-hand side syntaxof eduPersonScopedAffiliation intentionally matches that used for the right-hand sidevalues for eduPersonPrincipalName since both identify a security domain. Multiple \"@\" signsare not recommended, but in any case, the first occurrence of the \"@\" sign starting from theleft is to be taken as the delimiter between components. Thus, user identifier is to the left,security domain to the right of the first \"@\".", "dn": "inum=002A,ou=attributes,o=jans", "inum": "002A", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "edu_person_scoped_affiliation", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.5923.1.1.1.9", "urn": "oid:1.3.6.1.4.1.5923.1.1.1.9", "oxMultiValuedAttribute": false, "name": "eduPersonScopedAffiliation", "viewType": [ "admin" ], "baseDn": "inum=002A,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN", "displayName": "eduPersonPrimaryOrgUnitDN", "origin": "eduPerson", "description": "The distinguished name (DN) of the directory entry representingthe person's primary Organizational Unit(s).", "dn": "inum=0247,ou=attributes,o=jans", "inum": "0247", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "edu_person_primary_org_unit_dn", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.5923.1.1.1.8", "urn": "oid:1.3.6.1.4.1.5923.1.1.1.8", "oxMultiValuedAttribute": false, "name": "eduPersonPrimaryOrgUnitDN", "viewType": [ "admin" ], "baseDn": "inum=0247,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:departmentNumber", "displayName": "Department", "origin": "jansCustomPerson", "description": "Organizational Department", "dn": "inum=08E2,ou=attributes,o=jans", "inum": "08E2", "userCanView": true, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "department_number", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.16.840.1.113730.3.1.2", "urn": "urn:mace:dir:attribute-def:departmentNumber", "oxMultiValuedAttribute": false, "name": "departmentNumber", "viewType": [ "user", "admin" ], "baseDn": "inum=08E2,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:eduPersonPrincipalName", "displayName": "eduPersonPrincipalName", "origin": "eduPerson", "description": "A scoped identifier for a person. It should berepresented in the form \"user@scope\" where 'user' is aname-based identifier for the person and where 'scope'defines a local security domain. Each value of 'scope' definesa namespace within which the assigned identifiers MUST be unique.Given this rule, if two eduPersonPrincipalName (ePPN) values arethe same at a given point in time, they refer to the same person.", "dn": "inum=096B,ou=attributes,o=jans", "inum": "096B", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "edu_person_principal_name", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.5923.1.1.1.6", "urn": "oid:1.3.6.1.4.1.5923.1.1.1.6", "oxMultiValuedAttribute": false, "name": "eduPersonPrincipalName", "viewType": [ "admin" ], "baseDn": "inum=096B,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:telephoneNumber", "displayName": "Home Telephone Number", "origin": "jansCustomPerson", "description": "Home Telephone Number", "dn": "inum=0C18,ou=attributes,o=jans", "inum": "0C18", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "phone_number", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.5.4.20", "urn": "urn:mace:dir:attribute-def:phone_number", "oxMultiValuedAttribute": false, "name": "telephoneNumber", "viewType": [ "user", "admin" ], "baseDn": "inum=0C18,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:sn", "displayName": "Last Name", "origin": "jansPerson", "description": "Last Name", "dn": "inum=0C85,ou=attributes,o=jans", "inum": "0C85", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "family_name", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.5.4.4", "urn": "urn:mace:dir:attribute-def:sn", "oxMultiValuedAttribute": false, "name": "sn", "viewType": [ "user", "admin" ], "baseDn": "inum=0C85,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "claimName": "jans_backchannel_device_registration_tkn", "displayName": "CIBA Device Registration Token", "origin": "jansPerson", "dataType": "string", "custom": false, "description": "CIBA Device Registration Token", "adminCanAccess": true, "dn": "inum=11AA,ou=attributes,o=jans", "inum": "11AA", "userCanView": true, "urn": "urn:mace:dir:attribute-def:jansBackchannelDeviceRegistrationTkn", "userCanEdit": true, "requred": false, "oxMultiValuedAttribute": false, "name": "jansBackchannelDeviceRegistrationTkn", "viewType": [ "admin", "user" ], "editType": [ "admin", "user" ], "userCanAccess": true, "baseDn": "inum=11AA,ou=attributes,o=jans", "adminCanView": true, "selected": false, "status": "active", "adminCanEdit": true, "whitePagesCanView": false }, { "claimName": "jans_backchannel_usr_code", "displayName": "CIBA User code", "origin": "jansPerson", "dataType": "string", "custom": false, "description": "CIBA User code", "adminCanAccess": true, "dn": "inum=11AB,ou=attributes,o=jans", "inum": "11AB", "userCanView": true, "urn": "urn:mace:dir:attribute-def:jansBackchannelUsrCode", "userCanEdit": true, "requred": false, "oxMultiValuedAttribute": false, "name": "jansBackchannelUsrCode", "viewType": [ "admin", "user" ], "editType": [ "admin", "user" ], "userCanAccess": true, "baseDn": "inum=11AB,ou=attributes,o=jans", "adminCanView": true, "selected": false, "status": "active", "adminCanEdit": true, "whitePagesCanView": false }, { "claimName": "jansAppType", "displayName": "Jans Client Application Type", "origin": "jansClnt", "dataType": "string", "custom": false, "description": "Jans Client Application Type", "adminCanAccess": true, "dn": "inum=18CC,ou=attributes,o=jans", "inum": "18CC", "userCanView": true, "urn": "urn:jans:dir:attribute-def:jansAppTyp", "userCanEdit": false, "requred": false, "oxMultiValuedAttribute": false, "name": "jansAppTyp", "viewType": [ "admin", "user" ], "editType": [ "admin" ], "userCanAccess": true, "baseDn": "inum=18CC,ou=attributes,o=jans", "adminCanView": true, "selected": false, "status": "active", "adminCanEdit": true, "whitePagesCanView": false }, { "claimName": "jansIdTknSignedRespAlg", "displayName": "Jans Client ID Token Signed Response Algorithm", "origin": "jansClnt", "dataType": "string", "custom": false, "description": "Jans Client ID Token Signed Response Algorithm", "adminCanAccess": true, "dn": "inum=18CD,ou=attributes,o=jans", "inum": "18CD", "userCanView": true, "urn": "urn:jans:dir:attribute-def:jansIdTknSignedRespAlg", "userCanEdit": false, "requred": false, "oxMultiValuedAttribute": false, "name": "jansIdTknSignedRespAlg", "viewType": [ "admin", "user" ], "editType": [ "admin" ], "userCanAccess": true, "baseDn": "inum=18CD,ou=attributes,o=jans", "adminCanView": true, "selected": false, "status": "active", "adminCanEdit": true, "whitePagesCanView": false }, { "claimName": "jansRedirectURI", "displayName": "Jans Client Redirect URI", "origin": "jansClnt", "dataType": "string", "custom": false, "description": "Jans Client Redirect URI", "adminCanAccess": true, "dn": "inum=18CE,ou=attributes,o=jans", "inum": "18CE", "userCanView": true, "urn": "urn:jans:dir:attribute-def:jansRedirectURI", "userCanEdit": false, "requred": false, "oxMultiValuedAttribute": false, "name": "jansRedirectURI", "viewType": [ "admin", "user" ], "editType": [ "admin" ], "userCanAccess": true, "baseDn": "inum=18CE,ou=attributes,o=jans", "adminCanView": true, "selected": false, "status": "active", "adminCanEdit": true, "whitePagesCanView": false }, { "claimName": "jansScope", "displayName": "Jans Client Scope", "origin": "jansClnt", "dataType": "string", "custom": false, "description": "Jans Client Scope", "adminCanAccess": true, "dn": "inum=18CF,ou=attributes,o=jans", "inum": "18CF", "userCanView": true, "urn": "urn:jans:dir:attribute-def:jansScope", "userCanEdit": false, "requred": false, "oxMultiValuedAttribute": false, "name": "jansScope", "viewType": [ "admin", "user" ], "editType": [ "admin" ], "userCanAccess": true, "baseDn": "inum=18CF,ou=attributes,o=jans", "adminCanView": true, "selected": false, "status": "active", "adminCanEdit": true, "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:homePostalAddress", "displayName": "Home Address", "origin": "jansCustomPerson", "description": "Home Address", "dn": "inum=27DB,ou=attributes,o=jans", "inum": "27DB", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "formatted", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:0.9.2342.19200300.100.1.39", "urn": "urn:mace:dir:attribute-def:homePostalAddress", "oxMultiValuedAttribute": false, "name": "homePostalAddress", "viewType": [ "user", "admin" ], "baseDn": "inum=27DB,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:inum", "displayName": "Inum", "origin": "jansPerson", "description": "XRI i-number, persistent non-reassignable identifier", "dn": "inum=29DA,ou=attributes,o=jans", "inum": "29DA", "userCanView": true, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "inum", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.117", "urn": "urn:jans:dir:attribute-def:inum", "oxMultiValuedAttribute": false, "name": "inum", "viewType": [ "user", "admin" ], "baseDn": "inum=29DA,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:postalCode", "displayName": "Postal Code", "origin": "jansCustomPerson", "description": "Postal or Zip Code", "dn": "inum=2A3D,ou=attributes,o=jans", "inum": "2A3D", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "postal_code", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.5.4.17", "urn": "urn:mace:dir:attribute-def:postalCode", "oxMultiValuedAttribute": false, "name": "postalCode", "viewType": [ "user", "admin" ], "baseDn": "inum=2A3D,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:displayName", "displayName": "Display Name", "origin": "jansPerson", "description": "End-User's full name in displayable formincluding all name parts, possibly including titles andsuffixes, ordered according to the End-User's locale and preferences.", "dn": "inum=2B29,ou=attributes,o=jans", "inum": "2B29", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "name", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.16.840.1.113730.3.1.241", "urn": "urn:mace:dir:attribute-def:displayName", "oxMultiValuedAttribute": false, "name": "displayName", "viewType": [ "user", "admin" ], "baseDn": "inum=2B29,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:gender", "displayName": "Gender, male or female", "origin": "jansPerson", "description": "Gender of the person, either male or female", "dn": "inum=3692,ou=attributes,o=jans", "inum": "3692", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "gender", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.325", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/gender", "oxMultiValuedAttribute": false, "name": "gender", "viewType": [ "user", "admin" ], "baseDn": "inum=3692,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:locale", "displayName": "Locale", "origin": "jansPerson", "description": "End-User's locale, represented as a BCP47 (RFC5646) language tag. This is typically anISO 639-1 Alpha-2 [ISO639\u20111] language code in lowercase and an ISO 3166-1 Alpha-2country code in uppercase, separated by a dash. For example, en-US or fr-CA. As a compatibility note,some implementations have used an underscore as the separator rather than a dash, for example, en_US;Relying Parties MAY choose to accept this locale syntax as well.", "dn": "inum=36D9,ou=attributes,o=jans", "inum": "36D9", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "locale", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.328", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/locale", "oxMultiValuedAttribute": false, "name": "locale", "viewType": [ "user", "admin" ], "baseDn": "inum=36D9,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:website", "displayName": "Website URL", "origin": "jansPerson", "description": "URL of the End-User's Web page or blog.", "dn": "inum=3B47,ou=attributes,o=jans", "inum": "3B47", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "website", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.323", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/website", "oxMultiValuedAttribute": false, "name": "website", "viewType": [ "user", "admin" ], "baseDn": "inum=3B47,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:employeeType", "displayName": "Employee Type", "origin": "jansCustomPerson", "description": "Employee Type", "dn": "inum=3D44,ou=attributes,o=jans", "inum": "3D44", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "employee_type", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.16.840.1.113730.3.1.4", "urn": "urn:mace:dir:attribute-def:employeeType", "oxMultiValuedAttribute": false, "name": "employeeType", "viewType": [ "admin" ], "baseDn": "inum=3D44,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:manager", "displayName": "Manager", "origin": "jansCustomPerson", "description": "Manager", "dn": "inum=42D8,ou=attributes,o=jans", "inum": "42D8", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "manager", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:0.9.2342.19200300.100.1.10", "urn": "urn:mace:dir:attribute-def:manager", "oxMultiValuedAttribute": false, "name": "manager", "viewType": [ "admin" ], "baseDn": "inum=42D8,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:uid", "displayName": "Username", "origin": "jansPerson", "description": "A domain issued and managed identifier for the person.Subject - Identifier for the End-User at the Issuer.", "dn": "inum=42E0,ou=attributes,o=jans", "inum": "42E0", "userCanView": true, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "user_name", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:0.9.2342.19200300.100.1.1", "urn": "urn:mace:dir:attribute-def:uid", "oxMultiValuedAttribute": false, "name": "uid", "viewType": [ "user", "admin" ], "baseDn": "inum=42E0,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:jansIMAPData", "displayName": "IMAP Data", "origin": "jansPerson", "description": "IMAP Data", "dn": "inum=42E1,ou=attributes,o=jans", "inum": "42E1", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "admin", "user" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "imap_data", "dataType": "json", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.355", "urn": "urn:mace:dir:attribute-def:jansIMAPData", "oxMultiValuedAttribute": false, "name": "jansIMAPData", "viewType": [ "admin", "user" ], "baseDn": "inum=42E1,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:carLicense", "displayName": "License Plate", "origin": "jansCustomPerson", "description": "Vehicle License Plate Number", "dn": "inum=4502,ou=attributes,o=jans", "inum": "4502", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "car_license", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.16.840.1.113730.3.1.1", "urn": "urn:mace:dir:attribute-def:carLicense", "oxMultiValuedAttribute": false, "name": "carLicense", "viewType": [ "user", "admin" ], "baseDn": "inum=4502,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:jansStatus", "displayName": "User Status", "origin": "jansPerson", "description": "User status to allow/disable user access", "dn": "inum=4649,ou=attributes,o=jans", "inum": "4649", "userCanView": true, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "jans_status", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.97", "urn": "urn:jans:dir:attribute-def:status", "oxMultiValuedAttribute": false, "name": "jansStatus", "viewType": [ "admin", "user" ], "baseDn": "inum=4649,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:description", "displayName": "Description", "origin": "jansCustomPerson", "description": "Description", "dn": "inum=48EE,ou=attributes,o=jans", "inum": "48EE", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "description", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.5.4.13", "urn": "urn:mace:dir:attribute-def:description", "oxMultiValuedAttribute": false, "name": "description", "viewType": [ "user", "admin" ], "baseDn": "inum=48EE,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:eduPersonPrincipalNamePrior", "displayName": "eduPersonPrincipalNamePrior", "origin": "eduPerson", "description": "Person principal name prior", "dn": "inum=4A0A,ou=attributes,o=jans", "inum": "4A0A", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "edu_person_principal_name_prior", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.5923.1.1.1.12", "urn": "oid:1.3.6.1.4.1.5923.1.1.1.12", "oxMultiValuedAttribute": false, "name": "eduPersonPrincipalNamePrior", "viewType": [ "admin" ], "baseDn": "inum=4A0A,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:eduPersonUniqueId", "displayName": "eduPersonUniqueId", "origin": "eduPerson", "description": "Person unique Id", "dn": "inum=4A0B,ou=attributes,o=jans", "inum": "4A0B", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "edu_person_unique_id", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.5923.1.1.1.13", "urn": "oid:1.3.6.1.4.1.5923.1.1.1.13", "oxMultiValuedAttribute": false, "name": "eduPersonUniqueId", "viewType": [ "admin" ], "baseDn": "inum=4A0B,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:eduPersonOrcid", "displayName": "eduPersonOrcid", "origin": "eduPerson", "description": "ORCID researcher identifiers belonging to the principal", "dn": "inum=4A0C,ou=attributes,o=jans", "inum": "4A0C", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "edu_person_orcid", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.5923.1.1.1.16", "urn": "oid:1.3.6.1.4.1.5923.1.1.1.16", "oxMultiValuedAttribute": false, "name": "eduPersonOrcid", "viewType": [ "admin" ], "baseDn": "inum=4A0C,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:eduPersonAssurance", "displayName": "eduPersonAssurance", "origin": "eduPerson", "description": "Set of URIs that assert compliance with specific standardsfor identity assurance.", "dn": "inum=4B0F,ou=attributes,o=jans", "inum": "4B0F", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "edu_person_assurance", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.5923.1.1.1.11", "urn": "oid:1.3.6.1.4.1.5923.1.1.1.11", "oxMultiValuedAttribute": false, "name": "eduPersonAssurance", "viewType": [ "admin" ], "baseDn": "inum=4B0F,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:jansAdminUIRole", "displayName": "jansAdminUIRole", "origin": "jansCustomPerson", "description": "jansAdminUIRole", "dn": "inum=4CF1,ou=attributes,o=jans", "inum": "4CF1", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "admin", "user" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "jansAdminUIRole", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:mace:dir:attribute-def:jansAdminUIRole", "urn": "sampleurn", "oxMultiValuedAttribute": true, "name": "jansAdminUIRole", "viewType": [ "admin", "user" ], "baseDn": "inum=4CF1,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:eduPersonAffiliation", "displayName": "eduPersonAffiliation", "origin": "eduPerson", "description": "Specifies the person's relationship(s) to the institutionin broad categories such as student, faculty, staff, alum, etc.", "dn": "inum=4E0C,ou=attributes,o=jans", "inum": "4E0C", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "edu_person_affiliation", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.5923.1.1.1.1", "urn": "oid:1.3.6.1.4.1.5923.1.1.1.1", "oxMultiValuedAttribute": false, "name": "eduPersonAffiliation", "viewType": [ "admin" ], "baseDn": "inum=4E0C,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:jansEnrollmentCode", "displayName": "Enrollment code", "origin": "jansPerson", "description": "jansEnrollmentCode", "dn": "inum=5039,ou=attributes,o=jans", "inum": "5039", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "scimCustomAttr": true, "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "jans_enrollment_code", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.239", "urn": "urn:jans:dir:attribute-def:jansEnrollmentCode", "oxMultiValuedAttribute": false, "name": "jansEnrollmentCode", "viewType": [ "admin" ], "baseDn": "inum=5039,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:nickname", "displayName": "Nickname", "origin": "jansPerson", "description": "Casual name of the End-User that may or may not be the same asthe given_name.For instance, a nickname value of Mike might be returned alongside a given_name value of Michael.", "dn": "inum=5EC6,ou=attributes,o=jans", "inum": "5EC6", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "nickname", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.319", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/nickname", "oxMultiValuedAttribute": false, "name": "nickname", "viewType": [ "user", "admin" ], "baseDn": "inum=5EC6,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:role", "displayName": "User Permission", "origin": "jansPerson", "description": "jansPermission", "dn": "inum=6049,ou=attributes,o=jans", "inum": "6049", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "user_permission", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.299", "urn": "urn:jans:dir:attribute-def:role", "oxMultiValuedAttribute": true, "name": "role", "viewType": [ "admin" ], "baseDn": "inum=6049,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:eduPersonOrgDN", "displayName": "eduPersonOrgDN", "origin": "eduPerson", "description": "The distinguished name (DN) of the directory entryrepresentingthe institution with which the person is associated.", "dn": "inum=6366,ou=attributes,o=jans", "inum": "6366", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "edu_person_org_dn", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.5923.1.1.1.3", "urn": "oid:1.3.6.1.4.1.5923.1.1.1.3", "oxMultiValuedAttribute": false, "name": "eduPersonOrgDN", "viewType": [ "admin" ], "baseDn": "inum=6366,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:preferredLanguage", "displayName": "Preferred Language", "origin": "jansPerson", "description": "Preferred Language", "dn": "inum=6493,ou=attributes,o=jans", "inum": "6493", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "preferred_language", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.16.840.1.113730.3.1.39", "urn": "urn:mace:dir:attribute-def:preferredLanguage", "oxMultiValuedAttribute": false, "name": "preferredLanguage", "viewType": [ "user", "admin", "whitePages" ], "baseDn": "inum=6493,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": true }, { "saml1Uri": "urn:mace:dir:attribute-def:profile", "displayName": "Profile URL", "origin": "jansPerson", "description": "URL of the End-User's profile page. The contents of this Web page SHOULD be about the End-User.", "dn": "inum=64A0,ou=attributes,o=jans", "inum": "64A0", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "profile", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.321", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/profile", "oxMultiValuedAttribute": false, "name": "profile", "viewType": [ "user", "admin" ], "baseDn": "inum=64A0,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:jans:dir:attribute-def:scimCustomThird", "displayName": "Scim Custom Third", "origin": "jansCustomPerson", "description": "Scim Third custom attribute", "dn": "inum=653A,ou=attributes,o=jans", "inum": "653A", "userCanView": false, "userCanEdit": true, "requred": false, "editType": [ "admin", "user" ], "scimCustomAttr": true, "userCanAccess": true, "selected": false, "adminCanEdit": true, "dataType": "numeric", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:scimCustomThird", "oxMultiValuedAttribute": false, "name": "scimCustomThird", "viewType": [ "admin" ], "baseDn": "inum=653A,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:street", "displayName": "Street", "origin": "jansCustomPerson", "description": "Street", "dn": "inum=6609,ou=attributes,o=jans", "inum": "6609", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "street_address", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.5.4.9", "urn": "urn:mace:dir:attribute-def:street", "oxMultiValuedAttribute": false, "name": "street", "viewType": [ "user", "admin" ], "baseDn": "inum=6609,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:mobile", "displayName": "Mobile Telephone Number", "origin": "jansCustomPerson", "description": "Mobile Telephone Number", "dn": "inum=6DA6,ou=attributes,o=jans", "inum": "6DA6", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "phone_mobile_number", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:0.9.2342.19200300.100.1.41", "urn": "urn:mace:dir:attribute-def:mobile", "oxMultiValuedAttribute": true, "name": "mobile", "viewType": [ "user", "admin" ], "baseDn": "inum=6DA6,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:l", "displayName": "City", "origin": "jansCustomPerson", "description": "City", "dn": "inum=6EEB,ou=attributes,o=jans", "inum": "6EEB", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "locality", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.5.4.7", "urn": "urn:mace:dir:attribute-def:l", "oxMultiValuedAttribute": false, "name": "l", "viewType": [ "user", "admin" ], "baseDn": "inum=6EEB,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:jans:dir:attribute-def:scimCustomSecond", "displayName": "Scim Custom Second", "origin": "jansCustomPerson", "description": "Scim Second custom attribute", "dn": "inum=70F0,ou=attributes,o=jans", "inum": "70F0", "userCanView": false, "userCanEdit": true, "requred": false, "editType": [ "admin", "user" ], "scimCustomAttr": true, "userCanAccess": true, "selected": false, "adminCanEdit": true, "dataType": "generalizedTime", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:scimCustomSecond", "oxMultiValuedAttribute": true, "name": "scimCustomSecond", "viewType": [ "admin" ], "baseDn": "inum=70F0,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:preferredDeliveryMethod", "displayName": "Preferred Delivery Method", "origin": "jansCustomPerson", "description": "Preferred Delivery Method", "dn": "inum=894A,ou=attributes,o=jans", "inum": "894A", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "preferred_delivery_method", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.5.4.28", "urn": "urn:jans:dir:attribute-def:preferredDeliveryMethod", "oxMultiValuedAttribute": false, "name": "preferredDeliveryMethod", "viewType": [ "admin" ], "baseDn": "inum=894A,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:secretQuestion", "displayName": "Secret Question", "origin": "jansPerson", "description": "Secret Question", "dn": "inum=8A11,ou=attributes,o=jans", "inum": "8A11", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "secret_question", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.306", "urn": "urn:jans:dir:attribute-def:secretQuestion", "oxMultiValuedAttribute": false, "name": "secretQuestion", "viewType": [ "user", "admin" ], "baseDn": "inum=8A11,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:emailVerified", "displayName": "Email Verified", "origin": "jansPerson", "description": "True if the End-User's e-mail address has been verified; otherwise false", "dn": "inum=8F88,ou=attributes,o=jans", "inum": "8F88", "userCanView": true, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "email_verified", "dataType": "boolean", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.324", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/email_verified", "oxMultiValuedAttribute": false, "name": "emailVerified", "viewType": [ "user", "admin" ], "baseDn": "inum=8F88,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:eduPersonTargetedID", "displayName": "eduPersonTargetedID", "origin": "eduPerson", "description": "A persistent, non-reassigned, opaque identifier for a principal.", "dn": "inum=8FF3,ou=attributes,o=jans", "inum": "8FF3", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "edu_person_targeted_id", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.5923.1.1.1.10", "urn": "oid:1.3.6.1.4.1.5923.1.1.1.10", "oxMultiValuedAttribute": false, "name": "eduPersonTargetedID", "viewType": [ "admin" ], "baseDn": "inum=8FF3,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation", "displayName": "eduPersonPrimaryAffiliation", "origin": "eduPerson", "description": "Specifies the person's primary relationship to theinstitution in broad categories such as student, faculty, staff,alum, etc. (See controlled vocabulary).", "dn": "inum=91E7,ou=attributes,o=jans", "inum": "91E7", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "edu_person_primary_affiliation", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.5923.1.1.1.5", "urn": "oid:1.3.6.1.4.1.5923.1.1.1.5", "oxMultiValuedAttribute": false, "name": "eduPersonPrimaryAffiliation", "viewType": [ "admin" ], "baseDn": "inum=91E7,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:birthdate", "displayName": "Birthdate", "origin": "jansPerson", "description": "End-User's birthday, represented as an ISO 8601:2004 [ISO8601-2004] YYYY-MM-DD format.", "dn": "inum=98FC,ou=attributes,o=jans", "inum": "98FC", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "birthdate", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.326", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/birthdate", "oxMultiValuedAttribute": false, "name": "birthdate", "viewType": [ "user", "admin" ], "baseDn": "inum=98FC,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:middleName", "displayName": "Middle Name", "origin": "jansPerson", "description": "Middle name(s) of the End-User. Note that in some cultures,people can have multiple middle names; all can be present, with the namesbeingseparated by space characters. Also note that in some cultures,middle names are not used.", "dn": "inum=A0E8,ou=attributes,o=jans", "inum": "A0E8", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "middle_name", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.318", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/middle_username", "oxMultiValuedAttribute": false, "name": "middleName", "viewType": [ "user", "admin" ], "baseDn": "inum=A0E8,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false } ], "start": 0, "totalEntriesCount": 78 } 24-11 09:33:16.205 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:16.207 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:16.208 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:16.210 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:16.225 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:16.228 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:16.229 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:16.273 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:16.275 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:16.277 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:16.312 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:16.314 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:16.315 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:16.317 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:16.329 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:16.331 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:16.336 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:16.338 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:16.339 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:16.354 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:16.688 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 3, "entries": [ { "saml1Uri": "urn:mace:dir:attribute-def:eduPersonScopedAffiliation", "displayName": "eduPersonScopedAffiliation", "origin": "eduPerson", "description": "Specifies the person's affiliation within a particular security domainin broad categories such as student, faculty, staff, alum, etc. Thevalues consistof a left and right component separated by an \"@\" sign. The left component is one ofthe values from the eduPersonAffiliation controlledvocabulary.This right-hand side syntaxof eduPersonScopedAffiliation intentionally matches that used for the right-hand sidevalues for eduPersonPrincipalName since both identify a security domain. Multiple \"@\" signsare not recommended, but in any case, the first occurrence of the \"@\" sign starting from theleft is to be taken as the delimiter between components. Thus, user identifier is to the left,security domain to the right of the first \"@\".", "dn": "inum=002A,ou=attributes,o=jans", "inum": "002A", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "edu_person_scoped_affiliation", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.5923.1.1.1.9", "urn": "oid:1.3.6.1.4.1.5923.1.1.1.9", "oxMultiValuedAttribute": false, "name": "eduPersonScopedAffiliation", "viewType": [ "admin" ], "baseDn": "inum=002A,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN", "displayName": "eduPersonPrimaryOrgUnitDN", "origin": "eduPerson", "description": "The distinguished name (DN) of the directory entry representingthe person's primary Organizational Unit(s).", "dn": "inum=0247,ou=attributes,o=jans", "inum": "0247", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "edu_person_primary_org_unit_dn", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.5923.1.1.1.8", "urn": "oid:1.3.6.1.4.1.5923.1.1.1.8", "oxMultiValuedAttribute": false, "name": "eduPersonPrimaryOrgUnitDN", "viewType": [ "admin" ], "baseDn": "inum=0247,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:departmentNumber", "displayName": "Department", "origin": "jansCustomPerson", "description": "Organizational Department", "dn": "inum=08E2,ou=attributes,o=jans", "inum": "08E2", "userCanView": true, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "department_number", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.16.840.1.113730.3.1.2", "urn": "urn:mace:dir:attribute-def:departmentNumber", "oxMultiValuedAttribute": false, "name": "departmentNumber", "viewType": [ "user", "admin" ], "baseDn": "inum=08E2,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false } ], "start": 0, "totalEntriesCount": 78 } 24-11 09:33:16.720 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:16.723 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:16.731 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:16.733 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:16.737 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:16.739 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:16.741 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:16.742 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:16.743 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:16.744 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:16.755 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:16.762 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:16.763 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:16.764 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:16.766 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:16.767 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:16.769 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:16.771 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:16.771 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:16.775 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:17.144 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 0, "start": 0, "totalEntriesCount": 0 } 24-11 09:33:17.174 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:17.176 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:17.177 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:17.179 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:17.183 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:17.195 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:17.197 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:17.199 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:17.201 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:17.202 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:17.216 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:17.217 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:17.223 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:17.227 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:17.231 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:17.232 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:17.233 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:17.236 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:17.237 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:17.239 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:17.717 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 45, "entries": [ { "saml1Uri": "urn:mace:dir:attribute-def:sn", "displayName": "Last Name", "origin": "jansPerson", "description": "Last Name", "dn": "inum=0C85,ou=attributes,o=jans", "inum": "0C85", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "family_name", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.5.4.4", "urn": "urn:mace:dir:attribute-def:sn", "oxMultiValuedAttribute": false, "name": "sn", "viewType": [ "user", "admin" ], "baseDn": "inum=0C85,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "claimName": "jans_backchannel_device_registration_tkn", "displayName": "CIBA Device Registration Token", "origin": "jansPerson", "dataType": "string", "custom": false, "description": "CIBA Device Registration Token", "adminCanAccess": true, "dn": "inum=11AA,ou=attributes,o=jans", "inum": "11AA", "userCanView": true, "urn": "urn:mace:dir:attribute-def:jansBackchannelDeviceRegistrationTkn", "userCanEdit": true, "requred": false, "oxMultiValuedAttribute": false, "name": "jansBackchannelDeviceRegistrationTkn", "viewType": [ "admin", "user" ], "editType": [ "admin", "user" ], "userCanAccess": true, "baseDn": "inum=11AA,ou=attributes,o=jans", "adminCanView": true, "selected": false, "status": "active", "adminCanEdit": true, "whitePagesCanView": false }, { "claimName": "jans_backchannel_usr_code", "displayName": "CIBA User code", "origin": "jansPerson", "dataType": "string", "custom": false, "description": "CIBA User code", "adminCanAccess": true, "dn": "inum=11AB,ou=attributes,o=jans", "inum": "11AB", "userCanView": true, "urn": "urn:mace:dir:attribute-def:jansBackchannelUsrCode", "userCanEdit": true, "requred": false, "oxMultiValuedAttribute": false, "name": "jansBackchannelUsrCode", "viewType": [ "admin", "user" ], "editType": [ "admin", "user" ], "userCanAccess": true, "baseDn": "inum=11AB,ou=attributes,o=jans", "adminCanView": true, "selected": false, "status": "active", "adminCanEdit": true, "whitePagesCanView": false }, { "claimName": "jansAppType", "displayName": "Jans Client Application Type", "origin": "jansClnt", "dataType": "string", "custom": false, "description": "Jans Client Application Type", "adminCanAccess": true, "dn": "inum=18CC,ou=attributes,o=jans", "inum": "18CC", "userCanView": true, "urn": "urn:jans:dir:attribute-def:jansAppTyp", "userCanEdit": false, "requred": false, "oxMultiValuedAttribute": false, "name": "jansAppTyp", "viewType": [ "admin", "user" ], "editType": [ "admin" ], "userCanAccess": true, "baseDn": "inum=18CC,ou=attributes,o=jans", "adminCanView": true, "selected": false, "status": "active", "adminCanEdit": true, "whitePagesCanView": false }, { "claimName": "jansIdTknSignedRespAlg", "displayName": "Jans Client ID Token Signed Response Algorithm", "origin": "jansClnt", "dataType": "string", "custom": false, "description": "Jans Client ID Token Signed Response Algorithm", "adminCanAccess": true, "dn": "inum=18CD,ou=attributes,o=jans", "inum": "18CD", "userCanView": true, "urn": "urn:jans:dir:attribute-def:jansIdTknSignedRespAlg", "userCanEdit": false, "requred": false, "oxMultiValuedAttribute": false, "name": "jansIdTknSignedRespAlg", "viewType": [ "admin", "user" ], "editType": [ "admin" ], "userCanAccess": true, "baseDn": "inum=18CD,ou=attributes,o=jans", "adminCanView": true, "selected": false, "status": "active", "adminCanEdit": true, "whitePagesCanView": false }, { "claimName": "jansRedirectURI", "displayName": "Jans Client Redirect URI", "origin": "jansClnt", "dataType": "string", "custom": false, "description": "Jans Client Redirect URI", "adminCanAccess": true, "dn": "inum=18CE,ou=attributes,o=jans", "inum": "18CE", "userCanView": true, "urn": "urn:jans:dir:attribute-def:jansRedirectURI", "userCanEdit": false, "requred": false, "oxMultiValuedAttribute": false, "name": "jansRedirectURI", "viewType": [ "admin", "user" ], "editType": [ "admin" ], "userCanAccess": true, "baseDn": "inum=18CE,ou=attributes,o=jans", "adminCanView": true, "selected": false, "status": "active", "adminCanEdit": true, "whitePagesCanView": false }, { "claimName": "jansScope", "displayName": "Jans Client Scope", "origin": "jansClnt", "dataType": "string", "custom": false, "description": "Jans Client Scope", "adminCanAccess": true, "dn": "inum=18CF,ou=attributes,o=jans", "inum": "18CF", "userCanView": true, "urn": "urn:jans:dir:attribute-def:jansScope", "userCanEdit": false, "requred": false, "oxMultiValuedAttribute": false, "name": "jansScope", "viewType": [ "admin", "user" ], "editType": [ "admin" ], "userCanAccess": true, "baseDn": "inum=18CF,ou=attributes,o=jans", "adminCanView": true, "selected": false, "status": "active", "adminCanEdit": true, "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:inum", "displayName": "Inum", "origin": "jansPerson", "description": "XRI i-number, persistent non-reassignable identifier", "dn": "inum=29DA,ou=attributes,o=jans", "inum": "29DA", "userCanView": true, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "inum", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.117", "urn": "urn:jans:dir:attribute-def:inum", "oxMultiValuedAttribute": false, "name": "inum", "viewType": [ "user", "admin" ], "baseDn": "inum=29DA,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:displayName", "displayName": "Display Name", "origin": "jansPerson", "description": "End-User's full name in displayable formincluding all name parts, possibly including titles andsuffixes, ordered according to the End-User's locale and preferences.", "dn": "inum=2B29,ou=attributes,o=jans", "inum": "2B29", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "name", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.16.840.1.113730.3.1.241", "urn": "urn:mace:dir:attribute-def:displayName", "oxMultiValuedAttribute": false, "name": "displayName", "viewType": [ "user", "admin" ], "baseDn": "inum=2B29,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:gender", "displayName": "Gender, male or female", "origin": "jansPerson", "description": "Gender of the person, either male or female", "dn": "inum=3692,ou=attributes,o=jans", "inum": "3692", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "gender", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.325", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/gender", "oxMultiValuedAttribute": false, "name": "gender", "viewType": [ "user", "admin" ], "baseDn": "inum=3692,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:locale", "displayName": "Locale", "origin": "jansPerson", "description": "End-User's locale, represented as a BCP47 (RFC5646) language tag. This is typically anISO 639-1 Alpha-2 [ISO639\u20111] language code in lowercase and an ISO 3166-1 Alpha-2country code in uppercase, separated by a dash. For example, en-US or fr-CA. As a compatibility note,some implementations have used an underscore as the separator rather than a dash, for example, en_US;Relying Parties MAY choose to accept this locale syntax as well.", "dn": "inum=36D9,ou=attributes,o=jans", "inum": "36D9", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "locale", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.328", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/locale", "oxMultiValuedAttribute": false, "name": "locale", "viewType": [ "user", "admin" ], "baseDn": "inum=36D9,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:website", "displayName": "Website URL", "origin": "jansPerson", "description": "URL of the End-User's Web page or blog.", "dn": "inum=3B47,ou=attributes,o=jans", "inum": "3B47", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "website", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.323", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/website", "oxMultiValuedAttribute": false, "name": "website", "viewType": [ "user", "admin" ], "baseDn": "inum=3B47,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:uid", "displayName": "Username", "origin": "jansPerson", "description": "A domain issued and managed identifier for the person.Subject - Identifier for the End-User at the Issuer.", "dn": "inum=42E0,ou=attributes,o=jans", "inum": "42E0", "userCanView": true, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "user_name", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:0.9.2342.19200300.100.1.1", "urn": "urn:mace:dir:attribute-def:uid", "oxMultiValuedAttribute": false, "name": "uid", "viewType": [ "user", "admin" ], "baseDn": "inum=42E0,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:jansIMAPData", "displayName": "IMAP Data", "origin": "jansPerson", "description": "IMAP Data", "dn": "inum=42E1,ou=attributes,o=jans", "inum": "42E1", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "admin", "user" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "imap_data", "dataType": "json", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.355", "urn": "urn:mace:dir:attribute-def:jansIMAPData", "oxMultiValuedAttribute": false, "name": "jansIMAPData", "viewType": [ "admin", "user" ], "baseDn": "inum=42E1,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:jansStatus", "displayName": "User Status", "origin": "jansPerson", "description": "User status to allow/disable user access", "dn": "inum=4649,ou=attributes,o=jans", "inum": "4649", "userCanView": true, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "jans_status", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.97", "urn": "urn:jans:dir:attribute-def:status", "oxMultiValuedAttribute": false, "name": "jansStatus", "viewType": [ "admin", "user" ], "baseDn": "inum=4649,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:jansAdminUIRole", "displayName": "jansAdminUIRole", "origin": "jansCustomPerson", "description": "jansAdminUIRole", "dn": "inum=4CF1,ou=attributes,o=jans", "inum": "4CF1", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "admin", "user" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "jansAdminUIRole", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:mace:dir:attribute-def:jansAdminUIRole", "urn": "sampleurn", "oxMultiValuedAttribute": true, "name": "jansAdminUIRole", "viewType": [ "admin", "user" ], "baseDn": "inum=4CF1,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:jansEnrollmentCode", "displayName": "Enrollment code", "origin": "jansPerson", "description": "jansEnrollmentCode", "dn": "inum=5039,ou=attributes,o=jans", "inum": "5039", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "scimCustomAttr": true, "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "jans_enrollment_code", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.239", "urn": "urn:jans:dir:attribute-def:jansEnrollmentCode", "oxMultiValuedAttribute": false, "name": "jansEnrollmentCode", "viewType": [ "admin" ], "baseDn": "inum=5039,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:nickname", "displayName": "Nickname", "origin": "jansPerson", "description": "Casual name of the End-User that may or may not be the same asthe given_name.For instance, a nickname value of Mike might be returned alongside a given_name value of Michael.", "dn": "inum=5EC6,ou=attributes,o=jans", "inum": "5EC6", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "nickname", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.319", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/nickname", "oxMultiValuedAttribute": false, "name": "nickname", "viewType": [ "user", "admin" ], "baseDn": "inum=5EC6,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:role", "displayName": "User Permission", "origin": "jansPerson", "description": "jansPermission", "dn": "inum=6049,ou=attributes,o=jans", "inum": "6049", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "user_permission", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.299", "urn": "urn:jans:dir:attribute-def:role", "oxMultiValuedAttribute": true, "name": "role", "viewType": [ "admin" ], "baseDn": "inum=6049,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:preferredLanguage", "displayName": "Preferred Language", "origin": "jansPerson", "description": "Preferred Language", "dn": "inum=6493,ou=attributes,o=jans", "inum": "6493", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "preferred_language", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.16.840.1.113730.3.1.39", "urn": "urn:mace:dir:attribute-def:preferredLanguage", "oxMultiValuedAttribute": false, "name": "preferredLanguage", "viewType": [ "user", "admin", "whitePages" ], "baseDn": "inum=6493,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": true }, { "saml1Uri": "urn:mace:dir:attribute-def:profile", "displayName": "Profile URL", "origin": "jansPerson", "description": "URL of the End-User's profile page. The contents of this Web page SHOULD be about the End-User.", "dn": "inum=64A0,ou=attributes,o=jans", "inum": "64A0", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "profile", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.321", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/profile", "oxMultiValuedAttribute": false, "name": "profile", "viewType": [ "user", "admin" ], "baseDn": "inum=64A0,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:jans:dir:attribute-def:scimCustomThird", "displayName": "Scim Custom Third", "origin": "jansCustomPerson", "description": "Scim Third custom attribute", "dn": "inum=653A,ou=attributes,o=jans", "inum": "653A", "userCanView": false, "userCanEdit": true, "requred": false, "editType": [ "admin", "user" ], "scimCustomAttr": true, "userCanAccess": true, "selected": false, "adminCanEdit": true, "dataType": "numeric", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:scimCustomThird", "oxMultiValuedAttribute": false, "name": "scimCustomThird", "viewType": [ "admin" ], "baseDn": "inum=653A,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:street", "displayName": "Street", "origin": "jansCustomPerson", "description": "Street", "dn": "inum=6609,ou=attributes,o=jans", "inum": "6609", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "street_address", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.5.4.9", "urn": "urn:mace:dir:attribute-def:street", "oxMultiValuedAttribute": false, "name": "street", "viewType": [ "user", "admin" ], "baseDn": "inum=6609,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:jans:dir:attribute-def:scimCustomSecond", "displayName": "Scim Custom Second", "origin": "jansCustomPerson", "description": "Scim Second custom attribute", "dn": "inum=70F0,ou=attributes,o=jans", "inum": "70F0", "userCanView": false, "userCanEdit": true, "requred": false, "editType": [ "admin", "user" ], "scimCustomAttr": true, "userCanAccess": true, "selected": false, "adminCanEdit": true, "dataType": "generalizedTime", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:scimCustomSecond", "oxMultiValuedAttribute": true, "name": "scimCustomSecond", "viewType": [ "admin" ], "baseDn": "inum=70F0,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:secretQuestion", "displayName": "Secret Question", "origin": "jansPerson", "description": "Secret Question", "dn": "inum=8A11,ou=attributes,o=jans", "inum": "8A11", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "secret_question", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.306", "urn": "urn:jans:dir:attribute-def:secretQuestion", "oxMultiValuedAttribute": false, "name": "secretQuestion", "viewType": [ "user", "admin" ], "baseDn": "inum=8A11,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:emailVerified", "displayName": "Email Verified", "origin": "jansPerson", "description": "True if the End-User's e-mail address has been verified; otherwise false", "dn": "inum=8F88,ou=attributes,o=jans", "inum": "8F88", "userCanView": true, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "email_verified", "dataType": "boolean", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.324", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/email_verified", "oxMultiValuedAttribute": false, "name": "emailVerified", "viewType": [ "user", "admin" ], "baseDn": "inum=8F88,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:birthdate", "displayName": "Birthdate", "origin": "jansPerson", "description": "End-User's birthday, represented as an ISO 8601:2004 [ISO8601-2004] YYYY-MM-DD format.", "dn": "inum=98FC,ou=attributes,o=jans", "inum": "98FC", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "birthdate", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.326", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/birthdate", "oxMultiValuedAttribute": false, "name": "birthdate", "viewType": [ "user", "admin" ], "baseDn": "inum=98FC,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:middleName", "displayName": "Middle Name", "origin": "jansPerson", "description": "Middle name(s) of the End-User. Note that in some cultures,people can have multiple middle names; all can be present, with the namesbeingseparated by space characters. Also note that in some cultures,middle names are not used.", "dn": "inum=A0E8,ou=attributes,o=jans", "inum": "A0E8", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "middle_name", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.318", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/middle_username", "oxMultiValuedAttribute": false, "name": "middleName", "viewType": [ "user", "admin" ], "baseDn": "inum=A0E8,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:zoneinfo", "displayName": "Time zone info", "origin": "jansPerson", "description": "String from time zone database representing the End-User's time zone. For example,Europe/Paris or America/Los_Angeles.", "dn": "inum=A901,ou=attributes,o=jans", "inum": "A901", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "zoneinfo", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.327", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/zoneinfo", "oxMultiValuedAttribute": false, "name": "zoneinfo", "viewType": [ "user", "admin" ], "baseDn": "inum=A901,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:userPassword", "displayName": "Password", "origin": "jansPerson", "description": "User secret string", "dn": "inum=AAEE,ou=attributes,o=jans", "inum": "AAEE", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "user_password", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.5.4.35", "urn": "urn:jans:dir:attribute-def:userPassword", "oxMultiValuedAttribute": false, "name": "userPassword", "viewType": [ "user", "admin" ], "baseDn": "inum=AAEE,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:jans:dir:attribute-def:scimCustomFirst", "displayName": "Scim Custom First", "origin": "jansCustomPerson", "description": "Scim First custom attribute", "dn": "inum=ADA6,ou=attributes,o=jans", "inum": "ADA6", "userCanView": false, "userCanEdit": true, "requred": false, "editType": [ "admin", "user" ], "scimCustomAttr": true, "userCanAccess": true, "selected": false, "adminCanEdit": true, "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:scimCustomFirst", "oxMultiValuedAttribute": false, "name": "scimCustomFirst", "viewType": [ "admin" ], "baseDn": "inum=ADA6,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:phoneNumberVerified", "displayName": "Phone Number Verified", "origin": "jansPerson", "description": "True if the End-User's phone number has been verified; otherwise false", "dn": "inum=B17A,ou=attributes,o=jans", "inum": "B17A", "userCanView": true, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "phone_number_verified", "dataType": "boolean", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.329", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/phone_number_verified", "oxMultiValuedAttribute": false, "name": "phoneNumberVerified", "viewType": [ "user", "admin" ], "baseDn": "inum=B17A,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:givenName", "displayName": "First Name", "origin": "jansPerson", "description": "Given name(s) or first name(s) of the End-User.Note that in some cultures, people can have multiple given names;all can be present, with the names being separated by space characters.", "dn": "inum=B4B0,ou=attributes,o=jans", "inum": "B4B0", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "given_name", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.5.4.42", "urn": "urn:mace:dir:attribute-def:givenName", "oxMultiValuedAttribute": false, "name": "givenName", "viewType": [ "user", "admin" ], "baseDn": "inum=B4B0,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:preferredUsername", "displayName": "Preferred Username", "origin": "jansPerson", "description": "A domain issued and managed identifier for the person.Subject - Identifier for the End-User at the Issuer.", "dn": "inum=B52A,ou=attributes,o=jans", "inum": "B52A", "userCanView": true, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "preferred_username", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.320", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/preferred_username", "oxMultiValuedAttribute": false, "name": "jansPrefUsrName", "viewType": [ "user", "admin" ], "baseDn": "inum=B52A,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:transientId", "displayName": "TransientId", "origin": "jansPerson", "description": "TransientId", "dn": "inum=BCA8,ou=attributes,o=jans", "inum": "BCA8", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "transient_id", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.312", "urn": "mace:shibboleth:1.0:nameIdentifier", "oxMultiValuedAttribute": false, "name": "transientId", "viewType": [ "user", "admin" ], "baseDn": "inum=BCA8,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:persistentId", "displayName": "PersistentId", "origin": "jansPerson", "description": "PersistentId", "dn": "inum=BCB8,ou=attributes,o=jans", "inum": "BCB8", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "persistent_id", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.291", "urn": "mace:shibboleth:1.0:nameIdentifier", "oxMultiValuedAttribute": false, "name": "persistentId", "viewType": [ "user", "admin" ], "baseDn": "inum=BCB8,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:c", "displayName": "Country", "origin": "jansPerson", "description": "Country", "dn": "inum=BCE8,ou=attributes,o=jans", "inum": "BCE8", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "country", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.5.4.6", "urn": "urn:jans:dir:attribute-def:c", "oxMultiValuedAttribute": false, "name": "c", "viewType": [ "user", "admin" ], "baseDn": "inum=BCE8,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:updatedAt", "displayName": "Last Updated", "origin": "jansPerson", "description": "Time the End-User's information was last updated. Its value isaJSON number representing the number of seconds from 1970-01-01T0:0:0Z as measured inUTC until the date/time.", "dn": "inum=BE64,ou=attributes,o=jans", "inum": "BE64", "userCanView": true, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "updated_at", "dataType": "generalizedTime", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.331", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/address", "oxMultiValuedAttribute": false, "name": "updatedAt", "viewType": [ "user", "admin" ], "baseDn": "inum=BE64,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:secretAnswer", "displayName": "Secret Answer", "origin": "jansPerson", "description": "Secret Answer", "dn": "inum=C703,ou=attributes,o=jans", "inum": "C703", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "secret_answer", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.305", "urn": "urn:jans:dir:attribute-def:secretAnswer", "oxMultiValuedAttribute": false, "name": "secretAnswer", "viewType": [ "user", "admin" ], "baseDn": "inum=C703,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:address", "displayName": "OpenID Connect JSON formatted address", "origin": "jansPerson", "description": "End-User's preferred postal address. The value of the address member is aJSON [RFC4627] structure containing some or all of the members defined inOpenID Connect 1.0 Core Standard Section 5.1.1", "dn": "inum=C8D5,ou=attributes,o=jans", "inum": "C8D5", "userCanView": true, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "address", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.330", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/address", "oxMultiValuedAttribute": false, "name": "address", "viewType": [ "user", "admin" ], "baseDn": "inum=C8D5,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:userCertificate", "displayName": "User certificate", "origin": "jansPerson", "description": "User certificate", "dn": "inum=CACA,ou=attributes,o=jans", "inum": "CACA", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "admin", "user" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "user_certificate", "attributeValidation": { "maxLength": 2048 }, "dataType": "certificate", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.5.4.36", "urn": "urn:mace:dir:attribute-def:userCertificate", "oxMultiValuedAttribute": false, "name": "userCertificate", "viewType": [ "admin", "user" ], "baseDn": "inum=CACA,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:mail", "displayName": "Email", "origin": "jansPerson", "description": "Primary Email Address", "dn": "inum=CAE3,ou=attributes,o=jans", "inum": "CAE3", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "email", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:0.9.2342.19200300.100.1.3", "urn": "urn:mace:dir:attribute-def:mail", "oxMultiValuedAttribute": false, "name": "mail", "viewType": [ "user", "admin" ], "baseDn": "inum=CAE3,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:o", "displayName": "Organization", "origin": "jansPerson", "description": "Organization", "dn": "inum=D03E,ou=attributes,o=jans", "inum": "D03E", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "o", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.5.4.10", "urn": "urn:mace:dir:attribute-def:o", "oxMultiValuedAttribute": false, "name": "o", "viewType": [ "admin" ], "baseDn": "inum=D03E,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:memberOf", "displayName": "memberOf", "origin": "jansPerson", "description": "memberOf", "dn": "inum=D2E0,ou=attributes,o=jans", "inum": "D2E0", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "member_of", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.121", "urn": "urn:jans:dir:attribute-def:memberOf", "oxMultiValuedAttribute": true, "name": "memberOf", "viewType": [ "admin" ], "baseDn": "inum=D2E0,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:picture", "displayName": "Picture URL", "origin": "jansPerson", "description": "URL of the End-User's profile picture", "dn": "inum=EC3A,ou=attributes,o=jans", "inum": "EC3A", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "picture", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.48710.1.3.322", "urn": "http://openid.net/specs/openid-connect-core-1_0.html/StandardClaims/picture", "oxMultiValuedAttribute": false, "name": "picture", "viewType": [ "user", "admin" ], "baseDn": "inum=EC3A,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false } ], "start": 0, "totalEntriesCount": 45 } 24-11 09:33:17.735 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:17.736 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:17.737 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:17.738 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:17.740 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:17.741 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:17.742 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:17.743 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:17.744 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:17.744 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:17.752 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:17.753 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:17.754 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:17.755 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:17.757 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:17.758 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:17.759 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:17.760 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:17.760 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:17.761 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:18.082 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 3, "entries": [ { "saml1Uri": "urn:mace:dir:attribute-def:sn", "displayName": "Last Name", "origin": "jansPerson", "description": "Last Name", "dn": "inum=0C85,ou=attributes,o=jans", "inum": "0C85", "userCanView": true, "userCanEdit": true, "requred": false, "editType": [ "user", "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "family_name", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.5.4.4", "urn": "urn:mace:dir:attribute-def:sn", "oxMultiValuedAttribute": false, "name": "sn", "viewType": [ "user", "admin" ], "baseDn": "inum=0C85,ou=attributes,o=jans", "adminCanView": true, "status": "active", "whitePagesCanView": false }, { "claimName": "jans_backchannel_device_registration_tkn", "displayName": "CIBA Device Registration Token", "origin": "jansPerson", "dataType": "string", "custom": false, "description": "CIBA Device Registration Token", "adminCanAccess": true, "dn": "inum=11AA,ou=attributes,o=jans", "inum": "11AA", "userCanView": true, "urn": "urn:mace:dir:attribute-def:jansBackchannelDeviceRegistrationTkn", "userCanEdit": true, "requred": false, "oxMultiValuedAttribute": false, "name": "jansBackchannelDeviceRegistrationTkn", "viewType": [ "admin", "user" ], "editType": [ "admin", "user" ], "userCanAccess": true, "baseDn": "inum=11AA,ou=attributes,o=jans", "adminCanView": true, "selected": false, "status": "active", "adminCanEdit": true, "whitePagesCanView": false }, { "claimName": "jans_backchannel_usr_code", "displayName": "CIBA User code", "origin": "jansPerson", "dataType": "string", "custom": false, "description": "CIBA User code", "adminCanAccess": true, "dn": "inum=11AB,ou=attributes,o=jans", "inum": "11AB", "userCanView": true, "urn": "urn:mace:dir:attribute-def:jansBackchannelUsrCode", "userCanEdit": true, "requred": false, "oxMultiValuedAttribute": false, "name": "jansBackchannelUsrCode", "viewType": [ "admin", "user" ], "editType": [ "admin", "user" ], "userCanAccess": true, "baseDn": "inum=11AB,ou=attributes,o=jans", "adminCanView": true, "selected": false, "status": "active", "adminCanEdit": true, "whitePagesCanView": false } ], "start": 0, "totalEntriesCount": 45 } 24-11 09:33:18.103 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:18.104 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:18.106 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:18.106 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:18.112 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:18.125 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:18.127 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:18.127 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:18.128 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:18.129 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:18.148 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:18.151 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:18.153 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:18.153 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:18.156 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:18.158 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:18.158 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:18.159 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:18.160 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:18.171 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:18.480 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 3, "entries": [ { "saml1Uri": "urn:mace:dir:attribute-def:eduPersonScopedAffiliation", "displayName": "eduPersonScopedAffiliation", "origin": "eduPerson", "description": "Specifies the person's affiliation within a particular security domainin broad categories such as student, faculty, staff, alum, etc. Thevalues consistof a left and right component separated by an \"@\" sign. The left component is one ofthe values from the eduPersonAffiliation controlledvocabulary.This right-hand side syntaxof eduPersonScopedAffiliation intentionally matches that used for the right-hand sidevalues for eduPersonPrincipalName since both identify a security domain. Multiple \"@\" signsare not recommended, but in any case, the first occurrence of the \"@\" sign starting from theleft is to be taken as the delimiter between components. Thus, user identifier is to the left,security domain to the right of the first \"@\".", "dn": "inum=002A,ou=attributes,o=jans", "inum": "002A", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "edu_person_scoped_affiliation", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.5923.1.1.1.9", "urn": "oid:1.3.6.1.4.1.5923.1.1.1.9", "oxMultiValuedAttribute": false, "name": "eduPersonScopedAffiliation", "viewType": [ "admin" ], "baseDn": "inum=002A,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN", "displayName": "eduPersonPrimaryOrgUnitDN", "origin": "eduPerson", "description": "The distinguished name (DN) of the directory entry representingthe person's primary Organizational Unit(s).", "dn": "inum=0247,ou=attributes,o=jans", "inum": "0247", "userCanView": false, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": false, "selected": false, "adminCanEdit": true, "claimName": "edu_person_primary_org_unit_dn", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:1.3.6.1.4.1.5923.1.1.1.8", "urn": "oid:1.3.6.1.4.1.5923.1.1.1.8", "oxMultiValuedAttribute": false, "name": "eduPersonPrimaryOrgUnitDN", "viewType": [ "admin" ], "baseDn": "inum=0247,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false }, { "saml1Uri": "urn:mace:dir:attribute-def:departmentNumber", "displayName": "Department", "origin": "jansCustomPerson", "description": "Organizational Department", "dn": "inum=08E2,ou=attributes,o=jans", "inum": "08E2", "userCanView": true, "userCanEdit": false, "requred": false, "editType": [ "admin" ], "userCanAccess": true, "selected": false, "adminCanEdit": true, "claimName": "department_number", "dataType": "string", "custom": false, "adminCanAccess": true, "saml2Uri": "urn:oid:2.16.840.1.113730.3.1.2", "urn": "urn:mace:dir:attribute-def:departmentNumber", "oxMultiValuedAttribute": false, "name": "departmentNumber", "viewType": [ "user", "admin" ], "baseDn": "inum=08E2,ou=attributes,o=jans", "adminCanView": true, "status": "inactive", "whitePagesCanView": false } ], "start": 0, "totalEntriesCount": 33 } 24-11 09:33:18.490 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:18.492 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:18.493 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:18.494 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:18.496 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:18.497 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:18.498 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:18.499 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:18.499 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:18.501 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:18.510 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:18.511 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:18.511 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:18.512 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:18.514 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:18.515 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:18.516 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:18.516 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:18.517 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:18.518 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:20.016 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:20.027 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:20.028 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:20.029 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:20.042 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:20.045 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:20.047 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:20.049 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:20.051 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:20.054 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:20.076 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:20.079 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:20.081 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:20.083 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:20.088 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:20.106 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:20.108 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:20.110 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:20.112 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:20.115 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:20.447 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:20.449 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:20.451 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:20.460 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:20.464 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:20.465 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:20.466 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:20.467 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:20.468 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:20.470 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:20.489 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:20.490 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:20.500 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:20.501 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:20.513 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:20.514 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:20.515 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:20.516 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:20.516 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:20.517 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:20.830 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:20.831 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:20.831 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:20.832 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:20.849 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:20.851 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:20.851 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:20.852 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:20.853 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:20.853 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:20.861 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:20.861 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:20.862 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:20.863 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:20.865 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:20.865 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:20.866 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:20.866 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:20.867 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:20.867 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:21.456 INFO com.intuit.karate.Logger Logger.java:104- [print] { "displayName": "Test Attribute", "origin": "jansPerson", "dataType": "string", "custom": false, "description": "Test Attribute", "adminCanAccess": true, "dn": "inum=0a029087-f2f6-4144-9cf7-1fcd4b0a48d0,ou=attributes,o=jans", "inum": "0a029087-f2f6-4144-9cf7-1fcd4b0a48d0", "userCanView": true, "urn": "urn:mace:dir:attribute-def:testAttribute", "jansHideOnDiscovery": true, "userCanEdit": true, "requred": false, "oxMultiValuedAttribute": false, "name": "testAttribute", "viewType": [ "admin", "user" ], "editType": [ "admin", "user" ], "userCanAccess": true, "baseDn": "inum=0a029087-f2f6-4144-9cf7-1fcd4b0a48d0,ou=attributes,o=jans", "adminCanView": true, "selected": false, "status": "active", "adminCanEdit": true, "whitePagesCanView": false } 24-11 09:33:21.464 INFO com.intuit.karate.Logger Logger.java:104- [print] 0a029087-f2f6-4144-9cf7-1fcd4b0a48d0 24-11 09:33:22.367 INFO com.intuit.karate.Runner Runner.java:264- <> feature 1 of 47: src/test/resources/feature/attribute/attributes.feature --------------------------------------------------------- feature: src/test/resources/feature/attribute/attributes.feature report: target/surefire-reports/src.test.resources.feature.attribute.attributes.json scenarios: 11 | passed: 11 | failed: 0 | time: 6.4864 --------------------------------------------------------- 24-11 09:33:22.413 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:22.414 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:22.418 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:22.420 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:22.428 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:22.430 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:22.432 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:22.434 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:22.435 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:22.436 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:22.461 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:22.463 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:22.465 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:22.466 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:22.482 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:22.484 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:22.486 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:22.487 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:22.488 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:22.489 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:22.614 INFO com.intuit.karate.Logger Logger.java:104- [print] ONLY TOKEN BASED AUTHORIZATION IS SUPPORTED! 24-11 09:33:22.628 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:22.628 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:22.629 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:22.630 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:22.632 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:22.632 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:22.633 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:22.633 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:22.634 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:22.635 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:22.642 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:22.643 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:22.643 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:22.644 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:22.646 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:22.647 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:22.647 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:22.648 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:22.648 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:22.650 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:22.991 INFO com.intuit.karate.Logger Logger.java:104- [print] { "keys": [ { "descr": "Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-256", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "deb37228-ac2f-4fa0-b220-cb8c8659b48a_sig_rs256", "x5c": [ "MIIDCTCCAfGgAwIBAgIged0cnMxsVyByqMkowFciCRBPzwMAjz0RAZzeYwoiP8QwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDBaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOSXogCn3O4Fjhiq/Ko7R9++30ZeKPXnt7TGVX1Auga+AwYzNh89sBQML8SlPiLb/l5M2WiClt56OkkxlOornSLJIJUqfBqQmFgeM9aBT2QjaicW0NfKQ2ZaE0Rq8gzqYBbDigQewZrhD+KA2Ll+KZAz7ec0eqpUvXychww+nn/dvuiL+5qSlCEwjlECqLfy7S2LXHlbG2VWQLQf/T8NBKd+RSpuRcXux2bzP3CFLbBb57gaJPo4xHOF2oqwzWxOsLHfVbon3AOTngh/TZAKFGET7bM7LcP8jx4xWvD93JVVr9YvS0SmElv+aXsuyW72j+70PA36uO0f1+GYrOOxQTAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEATM2DauDY49nDNFM/4bxKgwgu+Ch1jNz6QBSsqGspkzH2ZqgfnT2bL4f5wc09QmeJvP5qInaEO9jywPF7a1dwAgDvDPV1XvX3zKxGJp8c5jcohf+SKRgyY9LLTnmUkC//W3zSpTAgBm2Q7ukIOXYe67YTtQSepG7dxTF+laontZFuvbTia2r1xg4m+SzCMN80PxefW283Sx8EJswoCzyuRqVJmy4nFi/4kgUXN1Za3nZ47n/btSZMxrOakjk/l5SuJ9u0HXKIalPvJUe+jKhgPVjvGhSCujKdf1su9gQFSq/92AOs3GeGoX4QaLi6H8jfHNsq7+cyeqbjse5+RK/TAA==" ], "name": "id_token RS256 Sign Key", "exp": 1669453849923, "alg": "RS256", "n": "zkl6IAp9zuBY4YqvyqO0ffvt9GXij157e0xlV9QLoGvgMGMzYfPbAUDC_EpT4i2_5eTNlogpbeejpJMZTqK50iySCVKnwakJhYHjPWgU9kI2onFtDXykNmWhNEavIM6mAWw4oEHsGa4Q_igNi5fimQM-3nNHqqVL18nIcMPp5_3b7oi_uakpQhMI5RAqi38u0ti1x5WxtlVkC0H_0_DQSnfkUqbkXF7sdm8z9whS2wW-e4GiT6OMRzhdqKsM1sTrCx31W6J9wDk54If02QChRhE-2zOy3D_I8eMVrw_dyVVa_WL0tEphJb_ml7Lslu9o_u9DwN-rjtH9fhmKzjsUEw" }, { "descr": "Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-384", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "dc31e80a-25bd-44bc-9bba-3316733cc5c3_sig_rs384", "x5c": [ "MIIDCTCCAfGgAwIBAgIgVQCrzhKafHgbZKiJ2ZbYnYsZAGoXTMq1amakp4iFh58wDQYJKoZIhvcNAQEMBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDFaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1gGOifIn7DW8pRIn/hEvylYnF00gGazYx+uUZ1umIiztXByqQAHgg3p8mcrjZDKaCKbkagUqvIT1xM6x1SXAGwG+oiVG1qutMLH4mYmIHkd4lg90dy3Cft5+05WX3n7SW+eQpOF5uHthG5OcFYhMK8eRqaKu/myTUtamAcL/mdJIey2rn/GkqqAr8qw+0XbQhGYF7jatSjxy4G3Bb/b/hayEobBtohcGr5M4tBYs0KF7ucrm84oc938zpaz4DtINrztWp/eurADzhisHdwV5yNst3wb4gXu0urqa2/+312tyjKDV8PHJ3twzlz1FGpT6KMBNY9v2srl5aeN6Xr/OLAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQwFAAOCAQEAhQx0YCpu3h64rDtt+50jERkEgGpe2p59PIHPypBcJVJQH51nOmbUvQLocq0LOCXyPMyajBMvUFav1TQH01L1wYXhJru2wYvrBWMFVZx1zTjtghCnl42Doe+i2va3A4ezTLe9sJ2S4KTC8GGi6Vyu86So5irZWrjGSUl1gMdcZ0ukRPWm0/m6Mp09vik3ePIN3QYeCZ03srAMVGrsARt04W58K/gYFz/xKtVA2oBxICytDkiN3EdEztbbILVJTaQTnh40kddDEu0GtMau/6cjdG0ew7CrQ7er+0Zkc3n678xfCilkJoDm58Q3LKs36FBB935cxFiCyr67i9b3bOONRw==" ], "name": "id_token RS384 Sign Key", "exp": 1669453849923, "alg": "RS384", "n": "tYBjonyJ-w1vKUSJ_4RL8pWJxdNIBms2MfrlGdbpiIs7VwcqkAB4IN6fJnK42Qymgim5GoFKryE9cTOsdUlwBsBvqIlRtarrTCx-JmJiB5HeJYPdHctwn7eftOVl95-0lvnkKThebh7YRuTnBWITCvHkamirv5sk1LWpgHC_5nSSHstq5_xpKqgK_KsPtF20IRmBe42rUo8cuBtwW_2_4WshKGwbaIXBq-TOLQWLNChe7nK5vOKHPd_M6Ws-A7SDa87Vqf3rqwA84YrB3cFecjbLd8G-IF7tLq6mtv_t9drcoyg1fDxyd7cM5c9RRqU-ijATWPb9rK5eWnjel6_ziw" }, { "descr": "Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-512", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "9289eede-f716-4f23-90c1-9c0cc53bb6fe_sig_rs512", "x5c": [ "MIIDCTCCAfGgAwIBAgIgUL+smQwkNH4K6XPR/dgaSAYZzKk5cY46JMPGsJFFp0kwDQYJKoZIhvcNAQENBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDFaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4+pKUzdR65BCG6RL9Lsumqgm47EE4YyUv8pPJy6HmUlnF2SdDcqPjWKxrtCf//fxeEfHJQaNfpEgBPfzactLfK1QjQa6CaKR95Q/2RSU4Lek1mph6cI4ozOXIBBzjIMf1xhNDeYK62geyZoX9phjbj7OqE/LMUE63O2nLm8LZwnTUR3WLFpnUqePWqQd9UgHuCF8+dtQZKbjRRg4LBVw6u1GWKypHMUGSZjpRGqx9PfFm9fhxtCbtgjxl7y84hjifHuGu25Nzk50DayJkTRai9Zvxg3EtZqhmtj79scoBbqiDozeTXYdYl5qXJSmefjuoMmBbcnqceX8CcolrGf3dAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQ0FAAOCAQEAodRI8ldDbEzwM+PxI2ENbnHHfzBB6MiGfYnEORD2Hl36UEDh447Vfsq2CffZqgo6sFt8zqpDFPDD14qfhECkTbJd20facZ4Ul0RIszzonkuqYMPMRebTJUXqmuALh873GNcoZCBTzB320GD3Gvo3ebG7JZo8FqBBVgrHu0y4QEoO/+KSHtKMVrH5CPhmD7VKdO2hLjtD4eI1UsA1ltpVHQJmQ1SSNGUxOv0zrDQKx/iC7lLgbhdU6bh0qjaHvmSN88rA99SOoO8X2/DS+hQ+9lmQueVgJJTkFhf/rQx6Mf/gLWZ2AXyec7PHxayruY1kBxOi/B+tX7ri+BJQv5uhjA==" ], "name": "id_token RS512 Sign Key", "exp": 1669453849923, "alg": "RS512", "n": "uPqSlM3UeuQQhukS_S7LpqoJuOxBOGMlL_KTycuh5lJZxdknQ3Kj41isa7Qn__38XhHxyUGjX6RIAT382nLS3ytUI0GugmikfeUP9kUlOC3pNZqYenCOKMzlyAQc4yDH9cYTQ3mCutoHsmaF_aYY24-zqhPyzFBOtztpy5vC2cJ01Ed1ixaZ1Knj1qkHfVIB7ghfPnbUGSm40UYOCwVcOrtRlisqRzFBkmY6URqsfT3xZvX4cbQm7YI8Ze8vOIY4nx7hrtuTc5OdA2siZE0WovWb8YNxLWaoZrY-_bHKAW6og6M3k12HWJealyUpnn47qDJgW3J6nHl_AnKJaxn93Q" }, { "descr": "Signature Key: ECDSA using P-256 (secp256r1) and SHA-256", "kty": "EC", "use": "sig", "crv": "P-256", "kid": "7f06cc87-2ad0-4796-87ad-656c04171658_sig_es256", "x5c": [ "MIIBfjCCASSgAwIBAgIhANTO/MVgPOi1bDoMCECchwSq3ZISGeJIf6geFpDGOwM1MAoGCCqGSM49BAMCMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjIxMTI0MDkxMDQxWhcNMjIxMTI2MDkxMDQ5WjAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEG3vFwYS6QC1buvQZnPhCBnEv1a+6EAjBHKSTnqnq6aPCJonhZ8H2WoRAb9MpvGIT9evTm/TagcVl97DHkI+IJaMnMCUwIwYDVR0lBBwwGgYIKwYBBQUHAwEGCCsGAQUFBwMCBgRVHSUAMAoGCCqGSM49BAMCA0gAMEUCIQCHF+kGN0LvtU0cF1EdunZceynil2OVENS1TDXsHVcnDAIgC61b3inR5eIoXseiHIilCcAZkxfSzXgirOkD/CsRA6I=" ], "name": "id_token ES256 Sign Key", "x": "G3vFwYS6QC1buvQZnPhCBnEv1a-6EAjBHKSTnqnq6aM", "y": "wiaJ4WfB9lqEQG_TKbxiE_Xr05v02oHFZfewx5CPiCU", "exp": 1669453849923, "alg": "ES256" }, { "descr": "Signature Key: ECDSA using secp256k1 and SHA-256", "kty": "EC", "use": "sig", "crv": "P-256K", "kid": "974cf9ac-85ee-4537-b2ac-e72ffa80678f_sig_es256k", "x5c": [ "MIIBeTCCASCgAwIBAgIgEV8CZiakB2ZKGU0Ub1OVZdWWOJLa1Vmy0L+5ampNUsswCgYIKoZIzj0EAwIwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDFaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwVjAQBgcqhkjOPQIBBgUrgQQACgNCAARkChSwmO7FenZoBIoF7rQHwZ34rXa/7jZJEo3vYA2q+K4N5RmiIDTBGjjeQHZ0PebVpRMIiuENtluget/gQ6DxoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwCgYIKoZIzj0EAwIDRwAwRAIgaCPcFtZA8ynw+rqP8X8JaH4Lh0iw3Di4Fd6+Aul5vl4CIFOGq6pDXTePqXia+jaFkWKeCq6JW1cQCK5MxsLH4Cec" ], "name": "id_token ES256K Sign Key", "x": "ZAoUsJjuxXp2aASKBe60B8Gd-K12v-42SRKN72ANqvg", "y": "rg3lGaIgNMEaON5AdnQ95tWlEwiK4Q22W6B63-BDoPE", "exp": 1669453849923, "alg": "ES256K" }, { "descr": "Signature Key: ECDSA using P-384 (secp384r1) and SHA-384", "kty": "EC", "use": "sig", "crv": "P-384", "kid": "2f00ae49-ea7b-4f21-b121-5690ba9150f8_sig_es384", "x5c": [ "MIIBuzCCAUCgAwIBAgIgXbteulAtDZpGZqDZ03+2nGug5nicD7Buk9NOG1WW6PUwCgYIKoZIzj0EAwMwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDJaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARKoQsjHJkjH8g4x6BZXv4nd+Id+wufe1pcryRvG8ncuFKwYxRpKZtZIYF+DOda2XfScyvp5fAzlEgiDrxfL3b1ivBpVRzDJ9fxM/AQyDpTJ20X0XzNk1fgewyZ/Peiw5SjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADAKBggqhkjOPQQDAwNpADBmAjEAsbFQX8juH4FQ0IB5YAz0coNf3kAi/F7KrEZTReY5JT7P5Oi5XSPx9BSp9ikgfazHAjEA9nAPIcjpgi7vD3vgknPTTM7CRzueA1wG8/7acpAWK3MNzxZ3pUj+mB0SKf2kJjtc" ], "name": "id_token ES384 Sign Key", "x": "SqELIxyZIx_IOMegWV7-J3fiHfsLn3taXK8kbxvJ3LhSsGMUaSmbWSGBfgznWtl3", "y": "0nMr6eXwM5RIIg68Xy929YrwaVUcwyfX8TPwEMg6UydtF9F8zZNX4HsMmfz3osOU", "exp": 1669453849923, "alg": "ES384" }, { "descr": "Signature Key: ECDSA using P-521 (secp521r1) and SHA-512", "kty": "EC", "use": "sig", "crv": "P-521", "kid": "59c70a16-c46e-495e-8a11-4720926bfc76_sig_es512", "x5c": [ "MIICBDCCAWagAwIBAgIgGsoBXbZLnXfYR9bVxhRnrtQqu7zhOw65Ie/+g3oUkEgwCgYIKoZIzj0EAwQwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDJaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwgZswEAYHKoZIzj0CAQYFK4EEACMDgYYABAD8z0GFvERbTRVbomYd1XBrYejvDEo8f5UUW1aFra7lnaTOVeWSMlEyamC+iFEvW/EXUYELxVFoAz/vggUf/gAgGgD5/jxw9MTMSS4TYKm5IVdGimaXiWN89So/jt+NG5MXNFzpBwvqsBBqnxk6yyX4/kTFgsU2YrF5nFy61+bymPTlUaMnMCUwIwYDVR0lBBwwGgYIKwYBBQUHAwEGCCsGAQUFBwMCBgRVHSUAMAoGCCqGSM49BAMEA4GLADCBhwJCAN+kSY1xYoTdimd77WQVOCyLMw3EXz/D7EbEHbiSj2UENOmvUyeO8eTbiUskTdu5fHIG/XmP9ve2KlFRE5RzXvPxAkEfEkF1EXwf5/CNvTQjUmQ/IZxlYZFG8Kt3VcfdDej8M5/vpc1C0AtL8Sr4MiIXseppHKU89Sry8CjEYxpp+v325g==" ], "name": "id_token ES512 Sign Key", "x": "_M9BhbxEW00VW6JmHdVwa2Ho7wxKPH-VFFtWha2u5Z2kzlXlkjJRMmpgvohRL1vxF1GBC8VRaAM_74IFH_4AIBo", "y": "-f48cPTEzEkuE2CpuSFXRopml4ljfPUqP47fjRuTFzRc6QcL6rAQap8ZOssl-P5ExYLFNmKxeZxcutfm8pj05VE", "exp": 1669453849923, "alg": "ES512" }, { "descr": "Signature Key: RSASSA-PSS using SHA-256 and MGF1 with SHA-256", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "aba8c8d9-428d-4391-a3ec-8a6caca0e5b3_sig_ps256", "x5c": [ "MIIDcTCCAiWgAwIBAgIgLzlOamPjHzsa5Bgwm7j90rWtZkJJw85CtFRKp1PPvgUwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjIxMTI0MDkxMDQyWhcNMjIxMTI2MDkxMDQ5WjAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApD94ZkyAP6jWqDA5LBGO/UtnOgOY4SO1hdqcjHLQ/C9JRSEVzfQ5C8EqHYQ5yVrGHzi7D7MGG+s3k9hO7HWQMH5wZH9ZiTKZ22SVe1bMJVcSRWZvy1uRXLigleC+4K4DY+SI4R04fivMwotjmrm0fXAZhZvEnTXFtNTEN3cdaB5QBN/rbSgLtcOKqQdkrf6xKyKrxGM3RfHzGIfHcQgA36XZFxKzKq6uXBWA21ATNH/CFIPmSDMXDOaW5EcGj3/SZWPp5GLBlwo5f2yXjsK7loXvNtKBIS1yN75XxXN2XyaqWpGTGSl/HEJlGkGs0+mgo3PuC0FyxxtIkNAXRO2Z+QIDAQABoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4IBAQCMm4Tbm/jsY14SmYftnlbHMvxFTEQZ4/GkujOeeM2d/oa0lgUoHp2ErgAeoGz0LCC3y7yJAeYQGzDz2DP6rCVGXdkVybfptd3Bwq+adRSjVDL0RELat9nQB09p3Qk4TH4a/kFhWxQECShOlGx+uCV+FSKjohjftVk2kuQh8qyPrHDhIomMGWH1xsN+W17h5cfxGdGIT5o+szmKbVfxg2En7nVqnJfpYmmZQYoLanLaUd39/pb2I+FgMGIUWVSr23OHjD3YFHnHcBTXkNDXtHdhBKOY3MX6v74L6Iogm1JDbP26mH3YC5E622Fw1qDPjTqynRDZcQUYwfOIsTE3NLD2" ], "name": "id_token PS256 Sign Key", "exp": 1669453849923, "alg": "PS256", "n": "pD94ZkyAP6jWqDA5LBGO_UtnOgOY4SO1hdqcjHLQ_C9JRSEVzfQ5C8EqHYQ5yVrGHzi7D7MGG-s3k9hO7HWQMH5wZH9ZiTKZ22SVe1bMJVcSRWZvy1uRXLigleC-4K4DY-SI4R04fivMwotjmrm0fXAZhZvEnTXFtNTEN3cdaB5QBN_rbSgLtcOKqQdkrf6xKyKrxGM3RfHzGIfHcQgA36XZFxKzKq6uXBWA21ATNH_CFIPmSDMXDOaW5EcGj3_SZWPp5GLBlwo5f2yXjsK7loXvNtKBIS1yN75XxXN2XyaqWpGTGSl_HEJlGkGs0-mgo3PuC0FyxxtIkNAXRO2Z-Q" }, { "descr": "Signature Key: RSASSA-PSS using SHA-384 and MGF1 with SHA-384", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "38ffe65f-3d39-4167-b6d3-5693e7936b50_sig_ps384", "x5c": [ "MIIDcTCCAiWgAwIBAgIgSjJz2eN24/nEpy89IAIeTYxwmQJZK0n9FAWljbDXvWswQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgIFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgIFAKIDAgEwMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjIxMTI0MDkxMDQyWhcNMjIxMTI2MDkxMDQ5WjAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwIVjm8FWgPlcGVJRiKiEZe5KBLmN2Gev2owJGJkkiyIW2XSFnqJVqWK4tG7MgDJufgLd39stRG/AVBBVRAyfyhZEp9PGrMO7Elr3D0IN02sJlNevLwwPkE2YULaTktjd7tfCH+KNXyOEX+cQuKkICNGRO6tHhw7dE5NB87wq5a61SftsEm/yP6orMM5byddhXTWO5a663/Af5XDJ7MknDq6lndXUCU9Q9QHNWcOcJbqHuEnTcsX9xJR8TZ3O+teGhqQs47ET2NKWMd7udLoU+iIcpid27i6Q7MSKiG6ROI4U2lbIDILKfxw85O5CszOMiov5VU72zJ0GNDXtUA3x2wIDAQABoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgIFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgIFAKIDAgEwA4IBAQBz9Et1fgb3JyDSTj9bc5VSyPMVcEEpDVFKwg9JLqDKra92kf6ZdPu3Ap2IzEL0bARIr4/EI/mMlDTMVjNXpqk3u1FVrQ5tRl+0MqqA4eGyuS+Mx42mhZH5DlOKhaxTUMatu5FSDtpYBiq8zJwGVVox8t4/D6/Qa/Jf0F5nx3tH80sGPih5S2lQRy5AsVhF/QSZnUAXjjpbiCsH77WTqrA2+5RlpZzKnQxqKvbsf0oC2hThK8dGnM8ynMhnFuSGW/SmCxhpvhaCEvmF+DAVHXk0BVvie8ueWfPYxtPCLzwc3dnTRahdMUT3wbteW68G6OnPYvO6S+DtcGutX6Xyos9h" ], "name": "id_token PS384 Sign Key", "exp": 1669453849923, "alg": "PS384", "n": "wIVjm8FWgPlcGVJRiKiEZe5KBLmN2Gev2owJGJkkiyIW2XSFnqJVqWK4tG7MgDJufgLd39stRG_AVBBVRAyfyhZEp9PGrMO7Elr3D0IN02sJlNevLwwPkE2YULaTktjd7tfCH-KNXyOEX-cQuKkICNGRO6tHhw7dE5NB87wq5a61SftsEm_yP6orMM5byddhXTWO5a663_Af5XDJ7MknDq6lndXUCU9Q9QHNWcOcJbqHuEnTcsX9xJR8TZ3O-teGhqQs47ET2NKWMd7udLoU-iIcpid27i6Q7MSKiG6ROI4U2lbIDILKfxw85O5CszOMiov5VU72zJ0GNDXtUA3x2w" }, { "descr": "Signature Key: RSASSA-PSS using SHA-512 and MGF1 with SHA-512", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "bc70aa2a-82be-429f-ac78-f5d0259aef75_sig_ps512", "x5c": [ "MIIDcjCCAiagAwIBAgIhANC7kC8SC+nC9bsp0Iwa/pi+We0n9tR60Xha4w41FUdaMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAIDBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIDBQCiAwIBQDAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMB4XDTIyMTEyNDA5MTA0M1oXDTIyMTEyNjA5MTA0OVowJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANnY+5aPZtW/p10ctzM88EqH8gbcQV193iBnFT35GjhpITUoTPf8gjne1menuvVmOJ8vtP74uNow4YzhaR/z5bjzXyQ4pGuq0mulj+8OrGigXMD86s9xtU+v5Gjp8WeJEh7RChmoHwexFj42s880XL/DBGaOVjnKdQ5CLKooXjhbLwN6UUo6QidYi9mKFKIs2HqndV/nQQTzt2BMXSdDzQqe3QcJdVlL+ZEVrcHwekJ/MSWcXueNDvVh6oG//oMmB5rBmp8+L5jlW+/yPFYJhSts+IwWjis+DeICqvZsCI7nJBuKF+3nx/Vi7oEgavewDXkW8Miha/UdydJxNwb4zjECAwEAAaMnMCUwIwYDVR0lBBwwGgYIKwYBBQUHAwEGCCsGAQUFBwMCBgRVHSUAMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAIDBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIDBQCiAwIBQAOCAQEAnE1c3DJQetYESVPCUuUgOOZYcurv0vthZ0wLQj8MaHThu7Gysq02HOtJuRRt48UzUdxEa8GQ6WgM9/aFqVtsQRYcLR1tqKXgUTJ+crlSHXXz7rfbmvTtnbPv30kynMfqa58u87/HjuGt3ZCFm+ha4h8h0Rr6yEUc9sWka6iSkvccIi9osy2pP1zOTL8sn6F5xf+EL1Oj2OqmtKtsn8zgRnV3C424AofebhLoindIXdYcsv1ClMv4slbu5CRnnaRMKedIT5qYD9Km2S8+sDBTXHkAbgN/eAh951ve/evcR2h9KQ6d4RAemucvWMzynkledHeHrF3ScYwmemHk9el+fg==" ], "name": "id_token PS512 Sign Key", "exp": 1669453849923, "alg": "PS512", "n": "2dj7lo9m1b-nXRy3MzzwSofyBtxBXX3eIGcVPfkaOGkhNShM9_yCOd7WZ6e69WY4ny-0_vi42jDhjOFpH_PluPNfJDika6rSa6WP7w6saKBcwPzqz3G1T6_kaOnxZ4kSHtEKGagfB7EWPjazzzRcv8MEZo5WOcp1DkIsqiheOFsvA3pRSjpCJ1iL2YoUoizYeqd1X-dBBPO3YExdJ0PNCp7dBwl1WUv5kRWtwfB6Qn8xJZxe540O9WHqgb_-gyYHmsGanz4vmOVb7_I8VgmFK2z4jBaOKz4N4gKq9mwIjuckG4oX7efH9WLugSBq97ANeRbwyKFr9R3J0nE3BvjOMQ" }, { "descr": "Encryption Key: RSAES-PKCS1-v1_5", "kty": "RSA", "e": "AQAB", "use": "enc", "kid": "f5840e59-f205-4ab5-9db4-6850a6eebe4a_enc_rsa1_5", "x5c": [ "MIIDCTCCAfGgAwIBAgIgFGrDv2JganfapqHzBf4Op0/0LZJpfSaLnRmJkC/fJzwwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDNaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDekmG1oLWi4TnSLCueF8HxtkUp/wEcCFWEJSrggcZFjAlYX7+Et+z2DN2CSdArTNeoMD1u+FyLrmrb+M8tYpOORZUOwQDHkjjrgaBlAC437IxoAffvT/Pt2j9+wv9gaPyxV8Gm8jCir+JKcHPUimiSRJh4oQAuvxucUBN9oneSoZcWAwxbTGNWAGAYCfHuY9nC5KoDxOOjqHF85TIjT8ygm7fvUwkwtUa2UgGhTkSB/RfDdlox/C02oVOOXl1p9BtvTZHXuZR2slQoNj9Nl3/EgwoGg2dBjuXzcWlsFvje/lX8WpAAkpIkCbhjZ71Sl0SAVZ4Q5QwwTa1ipv4BSfGzAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEAiDthgRx+VCYcf3JKT3W0iEIW80vsnO6QYdZ9nwof7ASnA+tGQLStwIxNPkNG6/qCWu4tVztW/X4eU9800ZDP5a1uhI3+N+JyrmkQce70NKuWBjRCd5NCEjO1RNEUqawTwE/x7QI1/6664D2k3JIaCLZ0mK+clj6Q5TgnxK2SKfFJtQbllETtObP6e/o3SKqYTnlTao83SHPZpwwhY15i3DkXFtCqP8LTZPr3BC/7HSMo8rVZsC2slpuUV3aQ1qmLqqVBVUr2zfpbeLvzOQ43bQWXFnw+VhwHNwrpt+o06OU9BIDJyWlM/hxdLOkW4gOibDouVzf02e8/y2PNrQ6m9A==" ], "name": "id_token RSA1_5 Encryption Key", "exp": 1669453849923, "alg": "RSA1_5", "n": "3pJhtaC1ouE50iwrnhfB8bZFKf8BHAhVhCUq4IHGRYwJWF-_hLfs9gzdgknQK0zXqDA9bvhci65q2_jPLWKTjkWVDsEAx5I464GgZQAuN-yMaAH370_z7do_fsL_YGj8sVfBpvIwoq_iSnBz1IpokkSYeKEALr8bnFATfaJ3kqGXFgMMW0xjVgBgGAnx7mPZwuSqA8Tjo6hxfOUyI0_MoJu371MJMLVGtlIBoU5Egf0Xw3ZaMfwtNqFTjl5dafQbb02R17mUdrJUKDY_TZd_xIMKBoNnQY7l83FpbBb43v5V_FqQAJKSJAm4Y2e9UpdEgFWeEOUMME2tYqb-AUnxsw" }, { "descr": "Encryption Key: RSAES OAEP using default parameters", "kty": "RSA", "e": "AQAB", "use": "enc", "kid": "4ca76322-fcfd-425d-974e-320e56f3e6b1_enc_rsa-oaep", "x5c": [ "MIIDCTCCAfGgAwIBAgIgeSysuyHahs0vLwl/R52r3qF8RRAFwn3kJYosQvgFmDAwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDNaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyvTOifACYeY6QYvYimNhASpxMxfEo5kMEGCxmA7675fhRmUZNkijCpz3uiQ6a0ajdrk041Q3MbuU/89V9n8Lb5BBTMrfVKLTw6SGAB3pRVqqrGn1XRljWJerXU3m3iOx6E63jR/9Gsk6OV6X8gT5LdJa2Md8cNtkeZotJlKlf09K8WDeR1ccPEbnVbV9KB2gvlMoqI9SSgTaLJRN/iUIs9flZ624prfE8bV4r5Q3ngehOO85rGzzflx5JZrim+I8nyv4wMfETqu2U2zbm1+HmruI25MdY0RhiEgLdAEQkJViu9159TPUqmCpqK5Jtn0+4w59FTkt2Y+XhnLut5JxdAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEAPg0c9Wk3PmloWGPEjoWhJLpCp4yJpvuA1Quw0h/SHIHXLOWL0LR/zcWwv0kINyf3Q8A3pHmv9YoCKGeZTK4G3PL4VZpv1KzhoSUM6GUSSEXETEJIdgMS3mMSdAu2sRCmkVWglVEz+RRNErMzd0pv7zrL+VTvszP8e8Boq34CXJQR/3079Ea7E0nfD/F27qu9DlXctefmCfrZFt7NynyhWrfUvGFPDy0KOuELYq+zFYKPafiCJuIlRX8MwN+8UZLZut3To672Sr0POwshzQJoktpdx2jh7wAkJO8SyIyQ9BpvZf+7Omso2UdjbiTfELY9V3frmMLvplKCCH70YfB/2g==" ], "name": "id_token RSA-OAEP Encryption Key", "exp": 1669453849923, "alg": "RSA-OAEP", "n": "sr0zonwAmHmOkGL2IpjYQEqcTMXxKOZDBBgsZgO-u-X4UZlGTZIowqc97okOmtGo3a5NONUNzG7lP_PVfZ_C2-QQUzK31Si08OkhgAd6UVaqqxp9V0ZY1iXq11N5t4jsehOt40f_RrJOjlel_IE-S3SWtjHfHDbZHmaLSZSpX9PSvFg3kdXHDxG51W1fSgdoL5TKKiPUkoE2iyUTf4lCLPX5WetuKa3xPG1eK-UN54HoTjvOaxs835ceSWa4pviPJ8r-MDHxE6rtlNs25tfh5q7iNuTHWNEYYhIC3QBEJCVYrvdefUz1KpgqaiuSbZ9PuMOfRU5LdmPl4Zy7reScXQ" }, { "descr": "Encryption Key: Elliptic Curve Diffie-Hellman Ephemeral Static key agreement using Concat KDF", "kty": "EC", "use": "enc", "crv": "P-256", "kid": "b831ac74-5f55-44a7-a4d6-27dc719260b4_enc_ecdh-es", "x5c": [ "MIIBfTCCASOgAwIBAgIgBIQgN6qAFETKlTg27WaubCVcED6gcBHRfqYRjxwAIVIwCgYIKoZIzj0EAwIwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDRaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ+gjebuvFbE2wBEpFWFu0KpdslUsIGwBw8x5MnBIfw/BVEon98mc42CuddOLuD7UxK5VU7C5ynXdrmfghGnn2ToycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwCgYIKoZIzj0EAwIDSAAwRQIgV5qVeBLYVoLIhEd1eEw2bOjtZaQfSnccpovaxvets5QCIQDTjFlIhnskTJ3GxF1XwDKN2agOKgRzIFQETYrQDmFfuA==" ], "name": "id_token ECDH-ES Encryption Key", "x": "PoI3m7rxWxNsARKRVhbtCqXbJVLCBsAcPMeTJwSH8Pw", "y": "FUSif3yZzjYK5104u4PtTErlVTsLnKdd2uZ-CEaefZM", "exp": 1669453849923, "alg": "ECDH-ES" } ] } 24-11 09:33:23.072 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:23.073 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:23.074 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:23.075 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:23.078 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:23.079 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:23.080 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:23.081 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:23.081 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:23.082 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:23.113 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:23.115 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:23.115 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:23.116 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:23.118 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:23.119 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:23.119 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:23.120 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:23.120 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:23.121 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:23.455 INFO com.intuit.karate.Logger Logger.java:104- [print] { "keys": [ { "descr": "Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-256", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "deb37228-ac2f-4fa0-b220-cb8c8659b48a_sig_rs256", "x5c": [ "MIIDCTCCAfGgAwIBAgIged0cnMxsVyByqMkowFciCRBPzwMAjz0RAZzeYwoiP8QwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDBaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOSXogCn3O4Fjhiq/Ko7R9++30ZeKPXnt7TGVX1Auga+AwYzNh89sBQML8SlPiLb/l5M2WiClt56OkkxlOornSLJIJUqfBqQmFgeM9aBT2QjaicW0NfKQ2ZaE0Rq8gzqYBbDigQewZrhD+KA2Ll+KZAz7ec0eqpUvXychww+nn/dvuiL+5qSlCEwjlECqLfy7S2LXHlbG2VWQLQf/T8NBKd+RSpuRcXux2bzP3CFLbBb57gaJPo4xHOF2oqwzWxOsLHfVbon3AOTngh/TZAKFGET7bM7LcP8jx4xWvD93JVVr9YvS0SmElv+aXsuyW72j+70PA36uO0f1+GYrOOxQTAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEATM2DauDY49nDNFM/4bxKgwgu+Ch1jNz6QBSsqGspkzH2ZqgfnT2bL4f5wc09QmeJvP5qInaEO9jywPF7a1dwAgDvDPV1XvX3zKxGJp8c5jcohf+SKRgyY9LLTnmUkC//W3zSpTAgBm2Q7ukIOXYe67YTtQSepG7dxTF+laontZFuvbTia2r1xg4m+SzCMN80PxefW283Sx8EJswoCzyuRqVJmy4nFi/4kgUXN1Za3nZ47n/btSZMxrOakjk/l5SuJ9u0HXKIalPvJUe+jKhgPVjvGhSCujKdf1su9gQFSq/92AOs3GeGoX4QaLi6H8jfHNsq7+cyeqbjse5+RK/TAA==" ], "name": "id_token RS256 Sign Key", "exp": 1669453849923, "alg": "RS256", "n": "zkl6IAp9zuBY4YqvyqO0ffvt9GXij157e0xlV9QLoGvgMGMzYfPbAUDC_EpT4i2_5eTNlogpbeejpJMZTqK50iySCVKnwakJhYHjPWgU9kI2onFtDXykNmWhNEavIM6mAWw4oEHsGa4Q_igNi5fimQM-3nNHqqVL18nIcMPp5_3b7oi_uakpQhMI5RAqi38u0ti1x5WxtlVkC0H_0_DQSnfkUqbkXF7sdm8z9whS2wW-e4GiT6OMRzhdqKsM1sTrCx31W6J9wDk54If02QChRhE-2zOy3D_I8eMVrw_dyVVa_WL0tEphJb_ml7Lslu9o_u9DwN-rjtH9fhmKzjsUEw" }, { "descr": "Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-384", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "dc31e80a-25bd-44bc-9bba-3316733cc5c3_sig_rs384", "x5c": [ "MIIDCTCCAfGgAwIBAgIgVQCrzhKafHgbZKiJ2ZbYnYsZAGoXTMq1amakp4iFh58wDQYJKoZIhvcNAQEMBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDFaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1gGOifIn7DW8pRIn/hEvylYnF00gGazYx+uUZ1umIiztXByqQAHgg3p8mcrjZDKaCKbkagUqvIT1xM6x1SXAGwG+oiVG1qutMLH4mYmIHkd4lg90dy3Cft5+05WX3n7SW+eQpOF5uHthG5OcFYhMK8eRqaKu/myTUtamAcL/mdJIey2rn/GkqqAr8qw+0XbQhGYF7jatSjxy4G3Bb/b/hayEobBtohcGr5M4tBYs0KF7ucrm84oc938zpaz4DtINrztWp/eurADzhisHdwV5yNst3wb4gXu0urqa2/+312tyjKDV8PHJ3twzlz1FGpT6KMBNY9v2srl5aeN6Xr/OLAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQwFAAOCAQEAhQx0YCpu3h64rDtt+50jERkEgGpe2p59PIHPypBcJVJQH51nOmbUvQLocq0LOCXyPMyajBMvUFav1TQH01L1wYXhJru2wYvrBWMFVZx1zTjtghCnl42Doe+i2va3A4ezTLe9sJ2S4KTC8GGi6Vyu86So5irZWrjGSUl1gMdcZ0ukRPWm0/m6Mp09vik3ePIN3QYeCZ03srAMVGrsARt04W58K/gYFz/xKtVA2oBxICytDkiN3EdEztbbILVJTaQTnh40kddDEu0GtMau/6cjdG0ew7CrQ7er+0Zkc3n678xfCilkJoDm58Q3LKs36FBB935cxFiCyr67i9b3bOONRw==" ], "name": "id_token RS384 Sign Key", "exp": 1669453849923, "alg": "RS384", "n": "tYBjonyJ-w1vKUSJ_4RL8pWJxdNIBms2MfrlGdbpiIs7VwcqkAB4IN6fJnK42Qymgim5GoFKryE9cTOsdUlwBsBvqIlRtarrTCx-JmJiB5HeJYPdHctwn7eftOVl95-0lvnkKThebh7YRuTnBWITCvHkamirv5sk1LWpgHC_5nSSHstq5_xpKqgK_KsPtF20IRmBe42rUo8cuBtwW_2_4WshKGwbaIXBq-TOLQWLNChe7nK5vOKHPd_M6Ws-A7SDa87Vqf3rqwA84YrB3cFecjbLd8G-IF7tLq6mtv_t9drcoyg1fDxyd7cM5c9RRqU-ijATWPb9rK5eWnjel6_ziw" }, { "descr": "Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-512", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "9289eede-f716-4f23-90c1-9c0cc53bb6fe_sig_rs512", "x5c": [ "MIIDCTCCAfGgAwIBAgIgUL+smQwkNH4K6XPR/dgaSAYZzKk5cY46JMPGsJFFp0kwDQYJKoZIhvcNAQENBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDFaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4+pKUzdR65BCG6RL9Lsumqgm47EE4YyUv8pPJy6HmUlnF2SdDcqPjWKxrtCf//fxeEfHJQaNfpEgBPfzactLfK1QjQa6CaKR95Q/2RSU4Lek1mph6cI4ozOXIBBzjIMf1xhNDeYK62geyZoX9phjbj7OqE/LMUE63O2nLm8LZwnTUR3WLFpnUqePWqQd9UgHuCF8+dtQZKbjRRg4LBVw6u1GWKypHMUGSZjpRGqx9PfFm9fhxtCbtgjxl7y84hjifHuGu25Nzk50DayJkTRai9Zvxg3EtZqhmtj79scoBbqiDozeTXYdYl5qXJSmefjuoMmBbcnqceX8CcolrGf3dAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQ0FAAOCAQEAodRI8ldDbEzwM+PxI2ENbnHHfzBB6MiGfYnEORD2Hl36UEDh447Vfsq2CffZqgo6sFt8zqpDFPDD14qfhECkTbJd20facZ4Ul0RIszzonkuqYMPMRebTJUXqmuALh873GNcoZCBTzB320GD3Gvo3ebG7JZo8FqBBVgrHu0y4QEoO/+KSHtKMVrH5CPhmD7VKdO2hLjtD4eI1UsA1ltpVHQJmQ1SSNGUxOv0zrDQKx/iC7lLgbhdU6bh0qjaHvmSN88rA99SOoO8X2/DS+hQ+9lmQueVgJJTkFhf/rQx6Mf/gLWZ2AXyec7PHxayruY1kBxOi/B+tX7ri+BJQv5uhjA==" ], "name": "id_token RS512 Sign Key", "exp": 1669453849923, "alg": "RS512", "n": "uPqSlM3UeuQQhukS_S7LpqoJuOxBOGMlL_KTycuh5lJZxdknQ3Kj41isa7Qn__38XhHxyUGjX6RIAT382nLS3ytUI0GugmikfeUP9kUlOC3pNZqYenCOKMzlyAQc4yDH9cYTQ3mCutoHsmaF_aYY24-zqhPyzFBOtztpy5vC2cJ01Ed1ixaZ1Knj1qkHfVIB7ghfPnbUGSm40UYOCwVcOrtRlisqRzFBkmY6URqsfT3xZvX4cbQm7YI8Ze8vOIY4nx7hrtuTc5OdA2siZE0WovWb8YNxLWaoZrY-_bHKAW6og6M3k12HWJealyUpnn47qDJgW3J6nHl_AnKJaxn93Q" }, { "descr": "Signature Key: ECDSA using P-256 (secp256r1) and SHA-256", "kty": "EC", "use": "sig", "crv": "P-256", "kid": "7f06cc87-2ad0-4796-87ad-656c04171658_sig_es256", "x5c": [ "MIIBfjCCASSgAwIBAgIhANTO/MVgPOi1bDoMCECchwSq3ZISGeJIf6geFpDGOwM1MAoGCCqGSM49BAMCMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjIxMTI0MDkxMDQxWhcNMjIxMTI2MDkxMDQ5WjAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEG3vFwYS6QC1buvQZnPhCBnEv1a+6EAjBHKSTnqnq6aPCJonhZ8H2WoRAb9MpvGIT9evTm/TagcVl97DHkI+IJaMnMCUwIwYDVR0lBBwwGgYIKwYBBQUHAwEGCCsGAQUFBwMCBgRVHSUAMAoGCCqGSM49BAMCA0gAMEUCIQCHF+kGN0LvtU0cF1EdunZceynil2OVENS1TDXsHVcnDAIgC61b3inR5eIoXseiHIilCcAZkxfSzXgirOkD/CsRA6I=" ], "name": "id_token ES256 Sign Key", "x": "G3vFwYS6QC1buvQZnPhCBnEv1a-6EAjBHKSTnqnq6aM", "y": "wiaJ4WfB9lqEQG_TKbxiE_Xr05v02oHFZfewx5CPiCU", "exp": 1669453849923, "alg": "ES256" }, { "descr": "Signature Key: ECDSA using secp256k1 and SHA-256", "kty": "EC", "use": "sig", "crv": "P-256K", "kid": "974cf9ac-85ee-4537-b2ac-e72ffa80678f_sig_es256k", "x5c": [ "MIIBeTCCASCgAwIBAgIgEV8CZiakB2ZKGU0Ub1OVZdWWOJLa1Vmy0L+5ampNUsswCgYIKoZIzj0EAwIwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDFaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwVjAQBgcqhkjOPQIBBgUrgQQACgNCAARkChSwmO7FenZoBIoF7rQHwZ34rXa/7jZJEo3vYA2q+K4N5RmiIDTBGjjeQHZ0PebVpRMIiuENtluget/gQ6DxoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwCgYIKoZIzj0EAwIDRwAwRAIgaCPcFtZA8ynw+rqP8X8JaH4Lh0iw3Di4Fd6+Aul5vl4CIFOGq6pDXTePqXia+jaFkWKeCq6JW1cQCK5MxsLH4Cec" ], "name": "id_token ES256K Sign Key", "x": "ZAoUsJjuxXp2aASKBe60B8Gd-K12v-42SRKN72ANqvg", "y": "rg3lGaIgNMEaON5AdnQ95tWlEwiK4Q22W6B63-BDoPE", "exp": 1669453849923, "alg": "ES256K" }, { "descr": "Signature Key: ECDSA using P-384 (secp384r1) and SHA-384", "kty": "EC", "use": "sig", "crv": "P-384", "kid": "2f00ae49-ea7b-4f21-b121-5690ba9150f8_sig_es384", "x5c": [ "MIIBuzCCAUCgAwIBAgIgXbteulAtDZpGZqDZ03+2nGug5nicD7Buk9NOG1WW6PUwCgYIKoZIzj0EAwMwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDJaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARKoQsjHJkjH8g4x6BZXv4nd+Id+wufe1pcryRvG8ncuFKwYxRpKZtZIYF+DOda2XfScyvp5fAzlEgiDrxfL3b1ivBpVRzDJ9fxM/AQyDpTJ20X0XzNk1fgewyZ/Peiw5SjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADAKBggqhkjOPQQDAwNpADBmAjEAsbFQX8juH4FQ0IB5YAz0coNf3kAi/F7KrEZTReY5JT7P5Oi5XSPx9BSp9ikgfazHAjEA9nAPIcjpgi7vD3vgknPTTM7CRzueA1wG8/7acpAWK3MNzxZ3pUj+mB0SKf2kJjtc" ], "name": "id_token ES384 Sign Key", "x": "SqELIxyZIx_IOMegWV7-J3fiHfsLn3taXK8kbxvJ3LhSsGMUaSmbWSGBfgznWtl3", "y": "0nMr6eXwM5RIIg68Xy929YrwaVUcwyfX8TPwEMg6UydtF9F8zZNX4HsMmfz3osOU", "exp": 1669453849923, "alg": "ES384" }, { "descr": "Signature Key: ECDSA using P-521 (secp521r1) and SHA-512", "kty": "EC", "use": "sig", "crv": "P-521", "kid": "59c70a16-c46e-495e-8a11-4720926bfc76_sig_es512", "x5c": [ "MIICBDCCAWagAwIBAgIgGsoBXbZLnXfYR9bVxhRnrtQqu7zhOw65Ie/+g3oUkEgwCgYIKoZIzj0EAwQwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDJaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwgZswEAYHKoZIzj0CAQYFK4EEACMDgYYABAD8z0GFvERbTRVbomYd1XBrYejvDEo8f5UUW1aFra7lnaTOVeWSMlEyamC+iFEvW/EXUYELxVFoAz/vggUf/gAgGgD5/jxw9MTMSS4TYKm5IVdGimaXiWN89So/jt+NG5MXNFzpBwvqsBBqnxk6yyX4/kTFgsU2YrF5nFy61+bymPTlUaMnMCUwIwYDVR0lBBwwGgYIKwYBBQUHAwEGCCsGAQUFBwMCBgRVHSUAMAoGCCqGSM49BAMEA4GLADCBhwJCAN+kSY1xYoTdimd77WQVOCyLMw3EXz/D7EbEHbiSj2UENOmvUyeO8eTbiUskTdu5fHIG/XmP9ve2KlFRE5RzXvPxAkEfEkF1EXwf5/CNvTQjUmQ/IZxlYZFG8Kt3VcfdDej8M5/vpc1C0AtL8Sr4MiIXseppHKU89Sry8CjEYxpp+v325g==" ], "name": "id_token ES512 Sign Key", "x": "_M9BhbxEW00VW6JmHdVwa2Ho7wxKPH-VFFtWha2u5Z2kzlXlkjJRMmpgvohRL1vxF1GBC8VRaAM_74IFH_4AIBo", "y": "-f48cPTEzEkuE2CpuSFXRopml4ljfPUqP47fjRuTFzRc6QcL6rAQap8ZOssl-P5ExYLFNmKxeZxcutfm8pj05VE", "exp": 1669453849923, "alg": "ES512" }, { "descr": "Signature Key: RSASSA-PSS using SHA-256 and MGF1 with SHA-256", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "aba8c8d9-428d-4391-a3ec-8a6caca0e5b3_sig_ps256", "x5c": [ "MIIDcTCCAiWgAwIBAgIgLzlOamPjHzsa5Bgwm7j90rWtZkJJw85CtFRKp1PPvgUwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjIxMTI0MDkxMDQyWhcNMjIxMTI2MDkxMDQ5WjAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApD94ZkyAP6jWqDA5LBGO/UtnOgOY4SO1hdqcjHLQ/C9JRSEVzfQ5C8EqHYQ5yVrGHzi7D7MGG+s3k9hO7HWQMH5wZH9ZiTKZ22SVe1bMJVcSRWZvy1uRXLigleC+4K4DY+SI4R04fivMwotjmrm0fXAZhZvEnTXFtNTEN3cdaB5QBN/rbSgLtcOKqQdkrf6xKyKrxGM3RfHzGIfHcQgA36XZFxKzKq6uXBWA21ATNH/CFIPmSDMXDOaW5EcGj3/SZWPp5GLBlwo5f2yXjsK7loXvNtKBIS1yN75XxXN2XyaqWpGTGSl/HEJlGkGs0+mgo3PuC0FyxxtIkNAXRO2Z+QIDAQABoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4IBAQCMm4Tbm/jsY14SmYftnlbHMvxFTEQZ4/GkujOeeM2d/oa0lgUoHp2ErgAeoGz0LCC3y7yJAeYQGzDz2DP6rCVGXdkVybfptd3Bwq+adRSjVDL0RELat9nQB09p3Qk4TH4a/kFhWxQECShOlGx+uCV+FSKjohjftVk2kuQh8qyPrHDhIomMGWH1xsN+W17h5cfxGdGIT5o+szmKbVfxg2En7nVqnJfpYmmZQYoLanLaUd39/pb2I+FgMGIUWVSr23OHjD3YFHnHcBTXkNDXtHdhBKOY3MX6v74L6Iogm1JDbP26mH3YC5E622Fw1qDPjTqynRDZcQUYwfOIsTE3NLD2" ], "name": "id_token PS256 Sign Key", "exp": 1669453849923, "alg": "PS256", "n": "pD94ZkyAP6jWqDA5LBGO_UtnOgOY4SO1hdqcjHLQ_C9JRSEVzfQ5C8EqHYQ5yVrGHzi7D7MGG-s3k9hO7HWQMH5wZH9ZiTKZ22SVe1bMJVcSRWZvy1uRXLigleC-4K4DY-SI4R04fivMwotjmrm0fXAZhZvEnTXFtNTEN3cdaB5QBN_rbSgLtcOKqQdkrf6xKyKrxGM3RfHzGIfHcQgA36XZFxKzKq6uXBWA21ATNH_CFIPmSDMXDOaW5EcGj3_SZWPp5GLBlwo5f2yXjsK7loXvNtKBIS1yN75XxXN2XyaqWpGTGSl_HEJlGkGs0-mgo3PuC0FyxxtIkNAXRO2Z-Q" }, { "descr": "Signature Key: RSASSA-PSS using SHA-384 and MGF1 with SHA-384", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "38ffe65f-3d39-4167-b6d3-5693e7936b50_sig_ps384", "x5c": [ "MIIDcTCCAiWgAwIBAgIgSjJz2eN24/nEpy89IAIeTYxwmQJZK0n9FAWljbDXvWswQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgIFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgIFAKIDAgEwMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjIxMTI0MDkxMDQyWhcNMjIxMTI2MDkxMDQ5WjAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwIVjm8FWgPlcGVJRiKiEZe5KBLmN2Gev2owJGJkkiyIW2XSFnqJVqWK4tG7MgDJufgLd39stRG/AVBBVRAyfyhZEp9PGrMO7Elr3D0IN02sJlNevLwwPkE2YULaTktjd7tfCH+KNXyOEX+cQuKkICNGRO6tHhw7dE5NB87wq5a61SftsEm/yP6orMM5byddhXTWO5a663/Af5XDJ7MknDq6lndXUCU9Q9QHNWcOcJbqHuEnTcsX9xJR8TZ3O+teGhqQs47ET2NKWMd7udLoU+iIcpid27i6Q7MSKiG6ROI4U2lbIDILKfxw85O5CszOMiov5VU72zJ0GNDXtUA3x2wIDAQABoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgIFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgIFAKIDAgEwA4IBAQBz9Et1fgb3JyDSTj9bc5VSyPMVcEEpDVFKwg9JLqDKra92kf6ZdPu3Ap2IzEL0bARIr4/EI/mMlDTMVjNXpqk3u1FVrQ5tRl+0MqqA4eGyuS+Mx42mhZH5DlOKhaxTUMatu5FSDtpYBiq8zJwGVVox8t4/D6/Qa/Jf0F5nx3tH80sGPih5S2lQRy5AsVhF/QSZnUAXjjpbiCsH77WTqrA2+5RlpZzKnQxqKvbsf0oC2hThK8dGnM8ynMhnFuSGW/SmCxhpvhaCEvmF+DAVHXk0BVvie8ueWfPYxtPCLzwc3dnTRahdMUT3wbteW68G6OnPYvO6S+DtcGutX6Xyos9h" ], "name": "id_token PS384 Sign Key", "exp": 1669453849923, "alg": "PS384", "n": "wIVjm8FWgPlcGVJRiKiEZe5KBLmN2Gev2owJGJkkiyIW2XSFnqJVqWK4tG7MgDJufgLd39stRG_AVBBVRAyfyhZEp9PGrMO7Elr3D0IN02sJlNevLwwPkE2YULaTktjd7tfCH-KNXyOEX-cQuKkICNGRO6tHhw7dE5NB87wq5a61SftsEm_yP6orMM5byddhXTWO5a663_Af5XDJ7MknDq6lndXUCU9Q9QHNWcOcJbqHuEnTcsX9xJR8TZ3O-teGhqQs47ET2NKWMd7udLoU-iIcpid27i6Q7MSKiG6ROI4U2lbIDILKfxw85O5CszOMiov5VU72zJ0GNDXtUA3x2w" }, { "descr": "Signature Key: RSASSA-PSS using SHA-512 and MGF1 with SHA-512", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "bc70aa2a-82be-429f-ac78-f5d0259aef75_sig_ps512", "x5c": [ "MIIDcjCCAiagAwIBAgIhANC7kC8SC+nC9bsp0Iwa/pi+We0n9tR60Xha4w41FUdaMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAIDBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIDBQCiAwIBQDAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMB4XDTIyMTEyNDA5MTA0M1oXDTIyMTEyNjA5MTA0OVowJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANnY+5aPZtW/p10ctzM88EqH8gbcQV193iBnFT35GjhpITUoTPf8gjne1menuvVmOJ8vtP74uNow4YzhaR/z5bjzXyQ4pGuq0mulj+8OrGigXMD86s9xtU+v5Gjp8WeJEh7RChmoHwexFj42s880XL/DBGaOVjnKdQ5CLKooXjhbLwN6UUo6QidYi9mKFKIs2HqndV/nQQTzt2BMXSdDzQqe3QcJdVlL+ZEVrcHwekJ/MSWcXueNDvVh6oG//oMmB5rBmp8+L5jlW+/yPFYJhSts+IwWjis+DeICqvZsCI7nJBuKF+3nx/Vi7oEgavewDXkW8Miha/UdydJxNwb4zjECAwEAAaMnMCUwIwYDVR0lBBwwGgYIKwYBBQUHAwEGCCsGAQUFBwMCBgRVHSUAMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAIDBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIDBQCiAwIBQAOCAQEAnE1c3DJQetYESVPCUuUgOOZYcurv0vthZ0wLQj8MaHThu7Gysq02HOtJuRRt48UzUdxEa8GQ6WgM9/aFqVtsQRYcLR1tqKXgUTJ+crlSHXXz7rfbmvTtnbPv30kynMfqa58u87/HjuGt3ZCFm+ha4h8h0Rr6yEUc9sWka6iSkvccIi9osy2pP1zOTL8sn6F5xf+EL1Oj2OqmtKtsn8zgRnV3C424AofebhLoindIXdYcsv1ClMv4slbu5CRnnaRMKedIT5qYD9Km2S8+sDBTXHkAbgN/eAh951ve/evcR2h9KQ6d4RAemucvWMzynkledHeHrF3ScYwmemHk9el+fg==" ], "name": "id_token PS512 Sign Key", "exp": 1669453849923, "alg": "PS512", "n": "2dj7lo9m1b-nXRy3MzzwSofyBtxBXX3eIGcVPfkaOGkhNShM9_yCOd7WZ6e69WY4ny-0_vi42jDhjOFpH_PluPNfJDika6rSa6WP7w6saKBcwPzqz3G1T6_kaOnxZ4kSHtEKGagfB7EWPjazzzRcv8MEZo5WOcp1DkIsqiheOFsvA3pRSjpCJ1iL2YoUoizYeqd1X-dBBPO3YExdJ0PNCp7dBwl1WUv5kRWtwfB6Qn8xJZxe540O9WHqgb_-gyYHmsGanz4vmOVb7_I8VgmFK2z4jBaOKz4N4gKq9mwIjuckG4oX7efH9WLugSBq97ANeRbwyKFr9R3J0nE3BvjOMQ" }, { "descr": "Encryption Key: RSAES-PKCS1-v1_5", "kty": "RSA", "e": "AQAB", "use": "enc", "kid": "f5840e59-f205-4ab5-9db4-6850a6eebe4a_enc_rsa1_5", "x5c": [ "MIIDCTCCAfGgAwIBAgIgFGrDv2JganfapqHzBf4Op0/0LZJpfSaLnRmJkC/fJzwwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDNaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDekmG1oLWi4TnSLCueF8HxtkUp/wEcCFWEJSrggcZFjAlYX7+Et+z2DN2CSdArTNeoMD1u+FyLrmrb+M8tYpOORZUOwQDHkjjrgaBlAC437IxoAffvT/Pt2j9+wv9gaPyxV8Gm8jCir+JKcHPUimiSRJh4oQAuvxucUBN9oneSoZcWAwxbTGNWAGAYCfHuY9nC5KoDxOOjqHF85TIjT8ygm7fvUwkwtUa2UgGhTkSB/RfDdlox/C02oVOOXl1p9BtvTZHXuZR2slQoNj9Nl3/EgwoGg2dBjuXzcWlsFvje/lX8WpAAkpIkCbhjZ71Sl0SAVZ4Q5QwwTa1ipv4BSfGzAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEAiDthgRx+VCYcf3JKT3W0iEIW80vsnO6QYdZ9nwof7ASnA+tGQLStwIxNPkNG6/qCWu4tVztW/X4eU9800ZDP5a1uhI3+N+JyrmkQce70NKuWBjRCd5NCEjO1RNEUqawTwE/x7QI1/6664D2k3JIaCLZ0mK+clj6Q5TgnxK2SKfFJtQbllETtObP6e/o3SKqYTnlTao83SHPZpwwhY15i3DkXFtCqP8LTZPr3BC/7HSMo8rVZsC2slpuUV3aQ1qmLqqVBVUr2zfpbeLvzOQ43bQWXFnw+VhwHNwrpt+o06OU9BIDJyWlM/hxdLOkW4gOibDouVzf02e8/y2PNrQ6m9A==" ], "name": "id_token RSA1_5 Encryption Key", "exp": 1669453849923, "alg": "RSA1_5", "n": "3pJhtaC1ouE50iwrnhfB8bZFKf8BHAhVhCUq4IHGRYwJWF-_hLfs9gzdgknQK0zXqDA9bvhci65q2_jPLWKTjkWVDsEAx5I464GgZQAuN-yMaAH370_z7do_fsL_YGj8sVfBpvIwoq_iSnBz1IpokkSYeKEALr8bnFATfaJ3kqGXFgMMW0xjVgBgGAnx7mPZwuSqA8Tjo6hxfOUyI0_MoJu371MJMLVGtlIBoU5Egf0Xw3ZaMfwtNqFTjl5dafQbb02R17mUdrJUKDY_TZd_xIMKBoNnQY7l83FpbBb43v5V_FqQAJKSJAm4Y2e9UpdEgFWeEOUMME2tYqb-AUnxsw" }, { "descr": "Encryption Key: RSAES OAEP using default parameters", "kty": "RSA", "e": "AQAB", "use": "enc", "kid": "4ca76322-fcfd-425d-974e-320e56f3e6b1_enc_rsa-oaep", "x5c": [ "MIIDCTCCAfGgAwIBAgIgeSysuyHahs0vLwl/R52r3qF8RRAFwn3kJYosQvgFmDAwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDNaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyvTOifACYeY6QYvYimNhASpxMxfEo5kMEGCxmA7675fhRmUZNkijCpz3uiQ6a0ajdrk041Q3MbuU/89V9n8Lb5BBTMrfVKLTw6SGAB3pRVqqrGn1XRljWJerXU3m3iOx6E63jR/9Gsk6OV6X8gT5LdJa2Md8cNtkeZotJlKlf09K8WDeR1ccPEbnVbV9KB2gvlMoqI9SSgTaLJRN/iUIs9flZ624prfE8bV4r5Q3ngehOO85rGzzflx5JZrim+I8nyv4wMfETqu2U2zbm1+HmruI25MdY0RhiEgLdAEQkJViu9159TPUqmCpqK5Jtn0+4w59FTkt2Y+XhnLut5JxdAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEAPg0c9Wk3PmloWGPEjoWhJLpCp4yJpvuA1Quw0h/SHIHXLOWL0LR/zcWwv0kINyf3Q8A3pHmv9YoCKGeZTK4G3PL4VZpv1KzhoSUM6GUSSEXETEJIdgMS3mMSdAu2sRCmkVWglVEz+RRNErMzd0pv7zrL+VTvszP8e8Boq34CXJQR/3079Ea7E0nfD/F27qu9DlXctefmCfrZFt7NynyhWrfUvGFPDy0KOuELYq+zFYKPafiCJuIlRX8MwN+8UZLZut3To672Sr0POwshzQJoktpdx2jh7wAkJO8SyIyQ9BpvZf+7Omso2UdjbiTfELY9V3frmMLvplKCCH70YfB/2g==" ], "name": "id_token RSA-OAEP Encryption Key", "exp": 1669453849923, "alg": "RSA-OAEP", "n": "sr0zonwAmHmOkGL2IpjYQEqcTMXxKOZDBBgsZgO-u-X4UZlGTZIowqc97okOmtGo3a5NONUNzG7lP_PVfZ_C2-QQUzK31Si08OkhgAd6UVaqqxp9V0ZY1iXq11N5t4jsehOt40f_RrJOjlel_IE-S3SWtjHfHDbZHmaLSZSpX9PSvFg3kdXHDxG51W1fSgdoL5TKKiPUkoE2iyUTf4lCLPX5WetuKa3xPG1eK-UN54HoTjvOaxs835ceSWa4pviPJ8r-MDHxE6rtlNs25tfh5q7iNuTHWNEYYhIC3QBEJCVYrvdefUz1KpgqaiuSbZ9PuMOfRU5LdmPl4Zy7reScXQ" }, { "descr": "Encryption Key: Elliptic Curve Diffie-Hellman Ephemeral Static key agreement using Concat KDF", "kty": "EC", "use": "enc", "crv": "P-256", "kid": "b831ac74-5f55-44a7-a4d6-27dc719260b4_enc_ecdh-es", "x5c": [ "MIIBfTCCASOgAwIBAgIgBIQgN6qAFETKlTg27WaubCVcED6gcBHRfqYRjxwAIVIwCgYIKoZIzj0EAwIwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDRaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ+gjebuvFbE2wBEpFWFu0KpdslUsIGwBw8x5MnBIfw/BVEon98mc42CuddOLuD7UxK5VU7C5ynXdrmfghGnn2ToycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwCgYIKoZIzj0EAwIDSAAwRQIgV5qVeBLYVoLIhEd1eEw2bOjtZaQfSnccpovaxvets5QCIQDTjFlIhnskTJ3GxF1XwDKN2agOKgRzIFQETYrQDmFfuA==" ], "name": "id_token ECDH-ES Encryption Key", "x": "PoI3m7rxWxNsARKRVhbtCqXbJVLCBsAcPMeTJwSH8Pw", "y": "FUSif3yZzjYK5104u4PtTErlVTsLnKdd2uZ-CEaefZM", "exp": 1669453849923, "alg": "ECDH-ES" } ] } 24-11 09:33:23.557 INFO com.intuit.karate.Logger Logger.java:104- [print] 1669453849923 24-11 09:33:23.612 INFO com.intuit.karate.Logger Logger.java:104- [print] 24-11 09:33:24.088 INFO com.intuit.karate.Logger Logger.java:104- [print] { "keys": [ { "descr": "Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-256", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "deb37228-ac2f-4fa0-b220-cb8c8659b48a_sig_rs256", "x5c": [ "MIIDCTCCAfGgAwIBAgIged0cnMxsVyByqMkowFciCRBPzwMAjz0RAZzeYwoiP8QwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDBaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOSXogCn3O4Fjhiq/Ko7R9++30ZeKPXnt7TGVX1Auga+AwYzNh89sBQML8SlPiLb/l5M2WiClt56OkkxlOornSLJIJUqfBqQmFgeM9aBT2QjaicW0NfKQ2ZaE0Rq8gzqYBbDigQewZrhD+KA2Ll+KZAz7ec0eqpUvXychww+nn/dvuiL+5qSlCEwjlECqLfy7S2LXHlbG2VWQLQf/T8NBKd+RSpuRcXux2bzP3CFLbBb57gaJPo4xHOF2oqwzWxOsLHfVbon3AOTngh/TZAKFGET7bM7LcP8jx4xWvD93JVVr9YvS0SmElv+aXsuyW72j+70PA36uO0f1+GYrOOxQTAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEATM2DauDY49nDNFM/4bxKgwgu+Ch1jNz6QBSsqGspkzH2ZqgfnT2bL4f5wc09QmeJvP5qInaEO9jywPF7a1dwAgDvDPV1XvX3zKxGJp8c5jcohf+SKRgyY9LLTnmUkC//W3zSpTAgBm2Q7ukIOXYe67YTtQSepG7dxTF+laontZFuvbTia2r1xg4m+SzCMN80PxefW283Sx8EJswoCzyuRqVJmy4nFi/4kgUXN1Za3nZ47n/btSZMxrOakjk/l5SuJ9u0HXKIalPvJUe+jKhgPVjvGhSCujKdf1su9gQFSq/92AOs3GeGoX4QaLi6H8jfHNsq7+cyeqbjse5+RK/TAA==" ], "name": "id_token RS256 Sign Key", "exp": 1669453849923, "alg": "RS256", "n": "zkl6IAp9zuBY4YqvyqO0ffvt9GXij157e0xlV9QLoGvgMGMzYfPbAUDC_EpT4i2_5eTNlogpbeejpJMZTqK50iySCVKnwakJhYHjPWgU9kI2onFtDXykNmWhNEavIM6mAWw4oEHsGa4Q_igNi5fimQM-3nNHqqVL18nIcMPp5_3b7oi_uakpQhMI5RAqi38u0ti1x5WxtlVkC0H_0_DQSnfkUqbkXF7sdm8z9whS2wW-e4GiT6OMRzhdqKsM1sTrCx31W6J9wDk54If02QChRhE-2zOy3D_I8eMVrw_dyVVa_WL0tEphJb_ml7Lslu9o_u9DwN-rjtH9fhmKzjsUEw" }, { "descr": "Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-384", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "dc31e80a-25bd-44bc-9bba-3316733cc5c3_sig_rs384", "x5c": [ "MIIDCTCCAfGgAwIBAgIgVQCrzhKafHgbZKiJ2ZbYnYsZAGoXTMq1amakp4iFh58wDQYJKoZIhvcNAQEMBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDFaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1gGOifIn7DW8pRIn/hEvylYnF00gGazYx+uUZ1umIiztXByqQAHgg3p8mcrjZDKaCKbkagUqvIT1xM6x1SXAGwG+oiVG1qutMLH4mYmIHkd4lg90dy3Cft5+05WX3n7SW+eQpOF5uHthG5OcFYhMK8eRqaKu/myTUtamAcL/mdJIey2rn/GkqqAr8qw+0XbQhGYF7jatSjxy4G3Bb/b/hayEobBtohcGr5M4tBYs0KF7ucrm84oc938zpaz4DtINrztWp/eurADzhisHdwV5yNst3wb4gXu0urqa2/+312tyjKDV8PHJ3twzlz1FGpT6KMBNY9v2srl5aeN6Xr/OLAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQwFAAOCAQEAhQx0YCpu3h64rDtt+50jERkEgGpe2p59PIHPypBcJVJQH51nOmbUvQLocq0LOCXyPMyajBMvUFav1TQH01L1wYXhJru2wYvrBWMFVZx1zTjtghCnl42Doe+i2va3A4ezTLe9sJ2S4KTC8GGi6Vyu86So5irZWrjGSUl1gMdcZ0ukRPWm0/m6Mp09vik3ePIN3QYeCZ03srAMVGrsARt04W58K/gYFz/xKtVA2oBxICytDkiN3EdEztbbILVJTaQTnh40kddDEu0GtMau/6cjdG0ew7CrQ7er+0Zkc3n678xfCilkJoDm58Q3LKs36FBB935cxFiCyr67i9b3bOONRw==" ], "name": "id_token RS384 Sign Key", "exp": 1669453849923, "alg": "RS384", "n": "tYBjonyJ-w1vKUSJ_4RL8pWJxdNIBms2MfrlGdbpiIs7VwcqkAB4IN6fJnK42Qymgim5GoFKryE9cTOsdUlwBsBvqIlRtarrTCx-JmJiB5HeJYPdHctwn7eftOVl95-0lvnkKThebh7YRuTnBWITCvHkamirv5sk1LWpgHC_5nSSHstq5_xpKqgK_KsPtF20IRmBe42rUo8cuBtwW_2_4WshKGwbaIXBq-TOLQWLNChe7nK5vOKHPd_M6Ws-A7SDa87Vqf3rqwA84YrB3cFecjbLd8G-IF7tLq6mtv_t9drcoyg1fDxyd7cM5c9RRqU-ijATWPb9rK5eWnjel6_ziw" }, { "descr": "Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-512", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "9289eede-f716-4f23-90c1-9c0cc53bb6fe_sig_rs512", "x5c": [ "MIIDCTCCAfGgAwIBAgIgUL+smQwkNH4K6XPR/dgaSAYZzKk5cY46JMPGsJFFp0kwDQYJKoZIhvcNAQENBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDFaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4+pKUzdR65BCG6RL9Lsumqgm47EE4YyUv8pPJy6HmUlnF2SdDcqPjWKxrtCf//fxeEfHJQaNfpEgBPfzactLfK1QjQa6CaKR95Q/2RSU4Lek1mph6cI4ozOXIBBzjIMf1xhNDeYK62geyZoX9phjbj7OqE/LMUE63O2nLm8LZwnTUR3WLFpnUqePWqQd9UgHuCF8+dtQZKbjRRg4LBVw6u1GWKypHMUGSZjpRGqx9PfFm9fhxtCbtgjxl7y84hjifHuGu25Nzk50DayJkTRai9Zvxg3EtZqhmtj79scoBbqiDozeTXYdYl5qXJSmefjuoMmBbcnqceX8CcolrGf3dAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQ0FAAOCAQEAodRI8ldDbEzwM+PxI2ENbnHHfzBB6MiGfYnEORD2Hl36UEDh447Vfsq2CffZqgo6sFt8zqpDFPDD14qfhECkTbJd20facZ4Ul0RIszzonkuqYMPMRebTJUXqmuALh873GNcoZCBTzB320GD3Gvo3ebG7JZo8FqBBVgrHu0y4QEoO/+KSHtKMVrH5CPhmD7VKdO2hLjtD4eI1UsA1ltpVHQJmQ1SSNGUxOv0zrDQKx/iC7lLgbhdU6bh0qjaHvmSN88rA99SOoO8X2/DS+hQ+9lmQueVgJJTkFhf/rQx6Mf/gLWZ2AXyec7PHxayruY1kBxOi/B+tX7ri+BJQv5uhjA==" ], "name": "id_token RS512 Sign Key", "exp": 1669453849923, "alg": "RS512", "n": "uPqSlM3UeuQQhukS_S7LpqoJuOxBOGMlL_KTycuh5lJZxdknQ3Kj41isa7Qn__38XhHxyUGjX6RIAT382nLS3ytUI0GugmikfeUP9kUlOC3pNZqYenCOKMzlyAQc4yDH9cYTQ3mCutoHsmaF_aYY24-zqhPyzFBOtztpy5vC2cJ01Ed1ixaZ1Knj1qkHfVIB7ghfPnbUGSm40UYOCwVcOrtRlisqRzFBkmY6URqsfT3xZvX4cbQm7YI8Ze8vOIY4nx7hrtuTc5OdA2siZE0WovWb8YNxLWaoZrY-_bHKAW6og6M3k12HWJealyUpnn47qDJgW3J6nHl_AnKJaxn93Q" }, { "descr": "Signature Key: ECDSA using P-256 (secp256r1) and SHA-256", "kty": "EC", "use": "sig", "crv": "P-256", "kid": "7f06cc87-2ad0-4796-87ad-656c04171658_sig_es256", "x5c": [ "MIIBfjCCASSgAwIBAgIhANTO/MVgPOi1bDoMCECchwSq3ZISGeJIf6geFpDGOwM1MAoGCCqGSM49BAMCMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjIxMTI0MDkxMDQxWhcNMjIxMTI2MDkxMDQ5WjAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEG3vFwYS6QC1buvQZnPhCBnEv1a+6EAjBHKSTnqnq6aPCJonhZ8H2WoRAb9MpvGIT9evTm/TagcVl97DHkI+IJaMnMCUwIwYDVR0lBBwwGgYIKwYBBQUHAwEGCCsGAQUFBwMCBgRVHSUAMAoGCCqGSM49BAMCA0gAMEUCIQCHF+kGN0LvtU0cF1EdunZceynil2OVENS1TDXsHVcnDAIgC61b3inR5eIoXseiHIilCcAZkxfSzXgirOkD/CsRA6I=" ], "name": "id_token ES256 Sign Key", "x": "G3vFwYS6QC1buvQZnPhCBnEv1a-6EAjBHKSTnqnq6aM", "y": "wiaJ4WfB9lqEQG_TKbxiE_Xr05v02oHFZfewx5CPiCU", "exp": 1669453849923, "alg": "ES256" }, { "descr": "Signature Key: ECDSA using secp256k1 and SHA-256", "kty": "EC", "use": "sig", "crv": "P-256K", "kid": "974cf9ac-85ee-4537-b2ac-e72ffa80678f_sig_es256k", "x5c": [ "MIIBeTCCASCgAwIBAgIgEV8CZiakB2ZKGU0Ub1OVZdWWOJLa1Vmy0L+5ampNUsswCgYIKoZIzj0EAwIwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDFaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwVjAQBgcqhkjOPQIBBgUrgQQACgNCAARkChSwmO7FenZoBIoF7rQHwZ34rXa/7jZJEo3vYA2q+K4N5RmiIDTBGjjeQHZ0PebVpRMIiuENtluget/gQ6DxoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwCgYIKoZIzj0EAwIDRwAwRAIgaCPcFtZA8ynw+rqP8X8JaH4Lh0iw3Di4Fd6+Aul5vl4CIFOGq6pDXTePqXia+jaFkWKeCq6JW1cQCK5MxsLH4Cec" ], "name": "id_token ES256K Sign Key", "x": "ZAoUsJjuxXp2aASKBe60B8Gd-K12v-42SRKN72ANqvg", "y": "rg3lGaIgNMEaON5AdnQ95tWlEwiK4Q22W6B63-BDoPE", "exp": 1669453849923, "alg": "ES256K" }, { "descr": "Signature Key: ECDSA using P-384 (secp384r1) and SHA-384", "kty": "EC", "use": "sig", "crv": "P-384", "kid": "2f00ae49-ea7b-4f21-b121-5690ba9150f8_sig_es384", "x5c": [ "MIIBuzCCAUCgAwIBAgIgXbteulAtDZpGZqDZ03+2nGug5nicD7Buk9NOG1WW6PUwCgYIKoZIzj0EAwMwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDJaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARKoQsjHJkjH8g4x6BZXv4nd+Id+wufe1pcryRvG8ncuFKwYxRpKZtZIYF+DOda2XfScyvp5fAzlEgiDrxfL3b1ivBpVRzDJ9fxM/AQyDpTJ20X0XzNk1fgewyZ/Peiw5SjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADAKBggqhkjOPQQDAwNpADBmAjEAsbFQX8juH4FQ0IB5YAz0coNf3kAi/F7KrEZTReY5JT7P5Oi5XSPx9BSp9ikgfazHAjEA9nAPIcjpgi7vD3vgknPTTM7CRzueA1wG8/7acpAWK3MNzxZ3pUj+mB0SKf2kJjtc" ], "name": "id_token ES384 Sign Key", "x": "SqELIxyZIx_IOMegWV7-J3fiHfsLn3taXK8kbxvJ3LhSsGMUaSmbWSGBfgznWtl3", "y": "0nMr6eXwM5RIIg68Xy929YrwaVUcwyfX8TPwEMg6UydtF9F8zZNX4HsMmfz3osOU", "exp": 1669453849923, "alg": "ES384" }, { "descr": "Signature Key: ECDSA using P-521 (secp521r1) and SHA-512", "kty": "EC", "use": "sig", "crv": "P-521", "kid": "59c70a16-c46e-495e-8a11-4720926bfc76_sig_es512", "x5c": [ "MIICBDCCAWagAwIBAgIgGsoBXbZLnXfYR9bVxhRnrtQqu7zhOw65Ie/+g3oUkEgwCgYIKoZIzj0EAwQwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDJaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwgZswEAYHKoZIzj0CAQYFK4EEACMDgYYABAD8z0GFvERbTRVbomYd1XBrYejvDEo8f5UUW1aFra7lnaTOVeWSMlEyamC+iFEvW/EXUYELxVFoAz/vggUf/gAgGgD5/jxw9MTMSS4TYKm5IVdGimaXiWN89So/jt+NG5MXNFzpBwvqsBBqnxk6yyX4/kTFgsU2YrF5nFy61+bymPTlUaMnMCUwIwYDVR0lBBwwGgYIKwYBBQUHAwEGCCsGAQUFBwMCBgRVHSUAMAoGCCqGSM49BAMEA4GLADCBhwJCAN+kSY1xYoTdimd77WQVOCyLMw3EXz/D7EbEHbiSj2UENOmvUyeO8eTbiUskTdu5fHIG/XmP9ve2KlFRE5RzXvPxAkEfEkF1EXwf5/CNvTQjUmQ/IZxlYZFG8Kt3VcfdDej8M5/vpc1C0AtL8Sr4MiIXseppHKU89Sry8CjEYxpp+v325g==" ], "name": "id_token ES512 Sign Key", "x": "_M9BhbxEW00VW6JmHdVwa2Ho7wxKPH-VFFtWha2u5Z2kzlXlkjJRMmpgvohRL1vxF1GBC8VRaAM_74IFH_4AIBo", "y": "-f48cPTEzEkuE2CpuSFXRopml4ljfPUqP47fjRuTFzRc6QcL6rAQap8ZOssl-P5ExYLFNmKxeZxcutfm8pj05VE", "exp": 1669453849923, "alg": "ES512" }, { "descr": "Signature Key: RSASSA-PSS using SHA-256 and MGF1 with SHA-256", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "aba8c8d9-428d-4391-a3ec-8a6caca0e5b3_sig_ps256", "x5c": [ "MIIDcTCCAiWgAwIBAgIgLzlOamPjHzsa5Bgwm7j90rWtZkJJw85CtFRKp1PPvgUwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjIxMTI0MDkxMDQyWhcNMjIxMTI2MDkxMDQ5WjAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApD94ZkyAP6jWqDA5LBGO/UtnOgOY4SO1hdqcjHLQ/C9JRSEVzfQ5C8EqHYQ5yVrGHzi7D7MGG+s3k9hO7HWQMH5wZH9ZiTKZ22SVe1bMJVcSRWZvy1uRXLigleC+4K4DY+SI4R04fivMwotjmrm0fXAZhZvEnTXFtNTEN3cdaB5QBN/rbSgLtcOKqQdkrf6xKyKrxGM3RfHzGIfHcQgA36XZFxKzKq6uXBWA21ATNH/CFIPmSDMXDOaW5EcGj3/SZWPp5GLBlwo5f2yXjsK7loXvNtKBIS1yN75XxXN2XyaqWpGTGSl/HEJlGkGs0+mgo3PuC0FyxxtIkNAXRO2Z+QIDAQABoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4IBAQCMm4Tbm/jsY14SmYftnlbHMvxFTEQZ4/GkujOeeM2d/oa0lgUoHp2ErgAeoGz0LCC3y7yJAeYQGzDz2DP6rCVGXdkVybfptd3Bwq+adRSjVDL0RELat9nQB09p3Qk4TH4a/kFhWxQECShOlGx+uCV+FSKjohjftVk2kuQh8qyPrHDhIomMGWH1xsN+W17h5cfxGdGIT5o+szmKbVfxg2En7nVqnJfpYmmZQYoLanLaUd39/pb2I+FgMGIUWVSr23OHjD3YFHnHcBTXkNDXtHdhBKOY3MX6v74L6Iogm1JDbP26mH3YC5E622Fw1qDPjTqynRDZcQUYwfOIsTE3NLD2" ], "name": "id_token PS256 Sign Key", "exp": 1669453849923, "alg": "PS256", "n": "pD94ZkyAP6jWqDA5LBGO_UtnOgOY4SO1hdqcjHLQ_C9JRSEVzfQ5C8EqHYQ5yVrGHzi7D7MGG-s3k9hO7HWQMH5wZH9ZiTKZ22SVe1bMJVcSRWZvy1uRXLigleC-4K4DY-SI4R04fivMwotjmrm0fXAZhZvEnTXFtNTEN3cdaB5QBN_rbSgLtcOKqQdkrf6xKyKrxGM3RfHzGIfHcQgA36XZFxKzKq6uXBWA21ATNH_CFIPmSDMXDOaW5EcGj3_SZWPp5GLBlwo5f2yXjsK7loXvNtKBIS1yN75XxXN2XyaqWpGTGSl_HEJlGkGs0-mgo3PuC0FyxxtIkNAXRO2Z-Q" }, { "descr": "Signature Key: RSASSA-PSS using SHA-384 and MGF1 with SHA-384", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "38ffe65f-3d39-4167-b6d3-5693e7936b50_sig_ps384", "x5c": [ "MIIDcTCCAiWgAwIBAgIgSjJz2eN24/nEpy89IAIeTYxwmQJZK0n9FAWljbDXvWswQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgIFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgIFAKIDAgEwMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjIxMTI0MDkxMDQyWhcNMjIxMTI2MDkxMDQ5WjAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwIVjm8FWgPlcGVJRiKiEZe5KBLmN2Gev2owJGJkkiyIW2XSFnqJVqWK4tG7MgDJufgLd39stRG/AVBBVRAyfyhZEp9PGrMO7Elr3D0IN02sJlNevLwwPkE2YULaTktjd7tfCH+KNXyOEX+cQuKkICNGRO6tHhw7dE5NB87wq5a61SftsEm/yP6orMM5byddhXTWO5a663/Af5XDJ7MknDq6lndXUCU9Q9QHNWcOcJbqHuEnTcsX9xJR8TZ3O+teGhqQs47ET2NKWMd7udLoU+iIcpid27i6Q7MSKiG6ROI4U2lbIDILKfxw85O5CszOMiov5VU72zJ0GNDXtUA3x2wIDAQABoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgIFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgIFAKIDAgEwA4IBAQBz9Et1fgb3JyDSTj9bc5VSyPMVcEEpDVFKwg9JLqDKra92kf6ZdPu3Ap2IzEL0bARIr4/EI/mMlDTMVjNXpqk3u1FVrQ5tRl+0MqqA4eGyuS+Mx42mhZH5DlOKhaxTUMatu5FSDtpYBiq8zJwGVVox8t4/D6/Qa/Jf0F5nx3tH80sGPih5S2lQRy5AsVhF/QSZnUAXjjpbiCsH77WTqrA2+5RlpZzKnQxqKvbsf0oC2hThK8dGnM8ynMhnFuSGW/SmCxhpvhaCEvmF+DAVHXk0BVvie8ueWfPYxtPCLzwc3dnTRahdMUT3wbteW68G6OnPYvO6S+DtcGutX6Xyos9h" ], "name": "id_token PS384 Sign Key", "exp": 1669453849923, "alg": "PS384", "n": "wIVjm8FWgPlcGVJRiKiEZe5KBLmN2Gev2owJGJkkiyIW2XSFnqJVqWK4tG7MgDJufgLd39stRG_AVBBVRAyfyhZEp9PGrMO7Elr3D0IN02sJlNevLwwPkE2YULaTktjd7tfCH-KNXyOEX-cQuKkICNGRO6tHhw7dE5NB87wq5a61SftsEm_yP6orMM5byddhXTWO5a663_Af5XDJ7MknDq6lndXUCU9Q9QHNWcOcJbqHuEnTcsX9xJR8TZ3O-teGhqQs47ET2NKWMd7udLoU-iIcpid27i6Q7MSKiG6ROI4U2lbIDILKfxw85O5CszOMiov5VU72zJ0GNDXtUA3x2w" }, { "descr": "Signature Key: RSASSA-PSS using SHA-512 and MGF1 with SHA-512", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "bc70aa2a-82be-429f-ac78-f5d0259aef75_sig_ps512", "x5c": [ "MIIDcjCCAiagAwIBAgIhANC7kC8SC+nC9bsp0Iwa/pi+We0n9tR60Xha4w41FUdaMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAIDBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIDBQCiAwIBQDAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMB4XDTIyMTEyNDA5MTA0M1oXDTIyMTEyNjA5MTA0OVowJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANnY+5aPZtW/p10ctzM88EqH8gbcQV193iBnFT35GjhpITUoTPf8gjne1menuvVmOJ8vtP74uNow4YzhaR/z5bjzXyQ4pGuq0mulj+8OrGigXMD86s9xtU+v5Gjp8WeJEh7RChmoHwexFj42s880XL/DBGaOVjnKdQ5CLKooXjhbLwN6UUo6QidYi9mKFKIs2HqndV/nQQTzt2BMXSdDzQqe3QcJdVlL+ZEVrcHwekJ/MSWcXueNDvVh6oG//oMmB5rBmp8+L5jlW+/yPFYJhSts+IwWjis+DeICqvZsCI7nJBuKF+3nx/Vi7oEgavewDXkW8Miha/UdydJxNwb4zjECAwEAAaMnMCUwIwYDVR0lBBwwGgYIKwYBBQUHAwEGCCsGAQUFBwMCBgRVHSUAMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAIDBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIDBQCiAwIBQAOCAQEAnE1c3DJQetYESVPCUuUgOOZYcurv0vthZ0wLQj8MaHThu7Gysq02HOtJuRRt48UzUdxEa8GQ6WgM9/aFqVtsQRYcLR1tqKXgUTJ+crlSHXXz7rfbmvTtnbPv30kynMfqa58u87/HjuGt3ZCFm+ha4h8h0Rr6yEUc9sWka6iSkvccIi9osy2pP1zOTL8sn6F5xf+EL1Oj2OqmtKtsn8zgRnV3C424AofebhLoindIXdYcsv1ClMv4slbu5CRnnaRMKedIT5qYD9Km2S8+sDBTXHkAbgN/eAh951ve/evcR2h9KQ6d4RAemucvWMzynkledHeHrF3ScYwmemHk9el+fg==" ], "name": "id_token PS512 Sign Key", "exp": 1669453849923, "alg": "PS512", "n": "2dj7lo9m1b-nXRy3MzzwSofyBtxBXX3eIGcVPfkaOGkhNShM9_yCOd7WZ6e69WY4ny-0_vi42jDhjOFpH_PluPNfJDika6rSa6WP7w6saKBcwPzqz3G1T6_kaOnxZ4kSHtEKGagfB7EWPjazzzRcv8MEZo5WOcp1DkIsqiheOFsvA3pRSjpCJ1iL2YoUoizYeqd1X-dBBPO3YExdJ0PNCp7dBwl1WUv5kRWtwfB6Qn8xJZxe540O9WHqgb_-gyYHmsGanz4vmOVb7_I8VgmFK2z4jBaOKz4N4gKq9mwIjuckG4oX7efH9WLugSBq97ANeRbwyKFr9R3J0nE3BvjOMQ" }, { "descr": "Encryption Key: RSAES-PKCS1-v1_5", "kty": "RSA", "e": "AQAB", "use": "enc", "kid": "f5840e59-f205-4ab5-9db4-6850a6eebe4a_enc_rsa1_5", "x5c": [ "MIIDCTCCAfGgAwIBAgIgFGrDv2JganfapqHzBf4Op0/0LZJpfSaLnRmJkC/fJzwwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDNaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDekmG1oLWi4TnSLCueF8HxtkUp/wEcCFWEJSrggcZFjAlYX7+Et+z2DN2CSdArTNeoMD1u+FyLrmrb+M8tYpOORZUOwQDHkjjrgaBlAC437IxoAffvT/Pt2j9+wv9gaPyxV8Gm8jCir+JKcHPUimiSRJh4oQAuvxucUBN9oneSoZcWAwxbTGNWAGAYCfHuY9nC5KoDxOOjqHF85TIjT8ygm7fvUwkwtUa2UgGhTkSB/RfDdlox/C02oVOOXl1p9BtvTZHXuZR2slQoNj9Nl3/EgwoGg2dBjuXzcWlsFvje/lX8WpAAkpIkCbhjZ71Sl0SAVZ4Q5QwwTa1ipv4BSfGzAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEAiDthgRx+VCYcf3JKT3W0iEIW80vsnO6QYdZ9nwof7ASnA+tGQLStwIxNPkNG6/qCWu4tVztW/X4eU9800ZDP5a1uhI3+N+JyrmkQce70NKuWBjRCd5NCEjO1RNEUqawTwE/x7QI1/6664D2k3JIaCLZ0mK+clj6Q5TgnxK2SKfFJtQbllETtObP6e/o3SKqYTnlTao83SHPZpwwhY15i3DkXFtCqP8LTZPr3BC/7HSMo8rVZsC2slpuUV3aQ1qmLqqVBVUr2zfpbeLvzOQ43bQWXFnw+VhwHNwrpt+o06OU9BIDJyWlM/hxdLOkW4gOibDouVzf02e8/y2PNrQ6m9A==" ], "name": "id_token RSA1_5 Encryption Key", "exp": 1669453849923, "alg": "RSA1_5", "n": "3pJhtaC1ouE50iwrnhfB8bZFKf8BHAhVhCUq4IHGRYwJWF-_hLfs9gzdgknQK0zXqDA9bvhci65q2_jPLWKTjkWVDsEAx5I464GgZQAuN-yMaAH370_z7do_fsL_YGj8sVfBpvIwoq_iSnBz1IpokkSYeKEALr8bnFATfaJ3kqGXFgMMW0xjVgBgGAnx7mPZwuSqA8Tjo6hxfOUyI0_MoJu371MJMLVGtlIBoU5Egf0Xw3ZaMfwtNqFTjl5dafQbb02R17mUdrJUKDY_TZd_xIMKBoNnQY7l83FpbBb43v5V_FqQAJKSJAm4Y2e9UpdEgFWeEOUMME2tYqb-AUnxsw" }, { "descr": "Encryption Key: RSAES OAEP using default parameters", "kty": "RSA", "e": "AQAB", "use": "enc", "kid": "4ca76322-fcfd-425d-974e-320e56f3e6b1_enc_rsa-oaep", "x5c": [ "MIIDCTCCAfGgAwIBAgIgeSysuyHahs0vLwl/R52r3qF8RRAFwn3kJYosQvgFmDAwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDNaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyvTOifACYeY6QYvYimNhASpxMxfEo5kMEGCxmA7675fhRmUZNkijCpz3uiQ6a0ajdrk041Q3MbuU/89V9n8Lb5BBTMrfVKLTw6SGAB3pRVqqrGn1XRljWJerXU3m3iOx6E63jR/9Gsk6OV6X8gT5LdJa2Md8cNtkeZotJlKlf09K8WDeR1ccPEbnVbV9KB2gvlMoqI9SSgTaLJRN/iUIs9flZ624prfE8bV4r5Q3ngehOO85rGzzflx5JZrim+I8nyv4wMfETqu2U2zbm1+HmruI25MdY0RhiEgLdAEQkJViu9159TPUqmCpqK5Jtn0+4w59FTkt2Y+XhnLut5JxdAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEAPg0c9Wk3PmloWGPEjoWhJLpCp4yJpvuA1Quw0h/SHIHXLOWL0LR/zcWwv0kINyf3Q8A3pHmv9YoCKGeZTK4G3PL4VZpv1KzhoSUM6GUSSEXETEJIdgMS3mMSdAu2sRCmkVWglVEz+RRNErMzd0pv7zrL+VTvszP8e8Boq34CXJQR/3079Ea7E0nfD/F27qu9DlXctefmCfrZFt7NynyhWrfUvGFPDy0KOuELYq+zFYKPafiCJuIlRX8MwN+8UZLZut3To672Sr0POwshzQJoktpdx2jh7wAkJO8SyIyQ9BpvZf+7Omso2UdjbiTfELY9V3frmMLvplKCCH70YfB/2g==" ], "name": "id_token RSA-OAEP Encryption Key", "exp": 1669453849923, "alg": "RSA-OAEP", "n": "sr0zonwAmHmOkGL2IpjYQEqcTMXxKOZDBBgsZgO-u-X4UZlGTZIowqc97okOmtGo3a5NONUNzG7lP_PVfZ_C2-QQUzK31Si08OkhgAd6UVaqqxp9V0ZY1iXq11N5t4jsehOt40f_RrJOjlel_IE-S3SWtjHfHDbZHmaLSZSpX9PSvFg3kdXHDxG51W1fSgdoL5TKKiPUkoE2iyUTf4lCLPX5WetuKa3xPG1eK-UN54HoTjvOaxs835ceSWa4pviPJ8r-MDHxE6rtlNs25tfh5q7iNuTHWNEYYhIC3QBEJCVYrvdefUz1KpgqaiuSbZ9PuMOfRU5LdmPl4Zy7reScXQ" }, { "descr": "Encryption Key: Elliptic Curve Diffie-Hellman Ephemeral Static key agreement using Concat KDF", "kty": "EC", "use": "enc", "crv": "P-256", "kid": "b831ac74-5f55-44a7-a4d6-27dc719260b4_enc_ecdh-es", "x5c": [ "MIIBfTCCASOgAwIBAgIgBIQgN6qAFETKlTg27WaubCVcED6gcBHRfqYRjxwAIVIwCgYIKoZIzj0EAwIwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDRaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ+gjebuvFbE2wBEpFWFu0KpdslUsIGwBw8x5MnBIfw/BVEon98mc42CuddOLuD7UxK5VU7C5ynXdrmfghGnn2ToycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwCgYIKoZIzj0EAwIDSAAwRQIgV5qVeBLYVoLIhEd1eEw2bOjtZaQfSnccpovaxvets5QCIQDTjFlIhnskTJ3GxF1XwDKN2agOKgRzIFQETYrQDmFfuA==" ], "name": "id_token ECDH-ES Encryption Key", "x": "PoI3m7rxWxNsARKRVhbtCqXbJVLCBsAcPMeTJwSH8Pw", "y": "FUSif3yZzjYK5104u4PtTErlVTsLnKdd2uZ-CEaefZM", "exp": 1669453849923, "alg": "ECDH-ES" } ] } 24-11 09:33:24.127 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:24.128 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:24.129 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:24.129 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:24.163 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:24.193 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:24.194 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:24.197 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:24.198 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:24.199 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:24.235 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:24.244 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:24.245 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:24.245 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:24.247 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:24.248 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:24.248 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:24.249 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:24.249 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:24.250 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:24.555 INFO com.intuit.karate.Logger Logger.java:104- [print] { "keys": [ { "descr": "Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-256", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "deb37228-ac2f-4fa0-b220-cb8c8659b48a_sig_rs256", "x5c": [ "MIIDCTCCAfGgAwIBAgIged0cnMxsVyByqMkowFciCRBPzwMAjz0RAZzeYwoiP8QwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDBaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOSXogCn3O4Fjhiq/Ko7R9++30ZeKPXnt7TGVX1Auga+AwYzNh89sBQML8SlPiLb/l5M2WiClt56OkkxlOornSLJIJUqfBqQmFgeM9aBT2QjaicW0NfKQ2ZaE0Rq8gzqYBbDigQewZrhD+KA2Ll+KZAz7ec0eqpUvXychww+nn/dvuiL+5qSlCEwjlECqLfy7S2LXHlbG2VWQLQf/T8NBKd+RSpuRcXux2bzP3CFLbBb57gaJPo4xHOF2oqwzWxOsLHfVbon3AOTngh/TZAKFGET7bM7LcP8jx4xWvD93JVVr9YvS0SmElv+aXsuyW72j+70PA36uO0f1+GYrOOxQTAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEATM2DauDY49nDNFM/4bxKgwgu+Ch1jNz6QBSsqGspkzH2ZqgfnT2bL4f5wc09QmeJvP5qInaEO9jywPF7a1dwAgDvDPV1XvX3zKxGJp8c5jcohf+SKRgyY9LLTnmUkC//W3zSpTAgBm2Q7ukIOXYe67YTtQSepG7dxTF+laontZFuvbTia2r1xg4m+SzCMN80PxefW283Sx8EJswoCzyuRqVJmy4nFi/4kgUXN1Za3nZ47n/btSZMxrOakjk/l5SuJ9u0HXKIalPvJUe+jKhgPVjvGhSCujKdf1su9gQFSq/92AOs3GeGoX4QaLi6H8jfHNsq7+cyeqbjse5+RK/TAA==" ], "name": "id_token RS256 Sign Key", "exp": 1669453849923, "alg": "RS256", "n": "zkl6IAp9zuBY4YqvyqO0ffvt9GXij157e0xlV9QLoGvgMGMzYfPbAUDC_EpT4i2_5eTNlogpbeejpJMZTqK50iySCVKnwakJhYHjPWgU9kI2onFtDXykNmWhNEavIM6mAWw4oEHsGa4Q_igNi5fimQM-3nNHqqVL18nIcMPp5_3b7oi_uakpQhMI5RAqi38u0ti1x5WxtlVkC0H_0_DQSnfkUqbkXF7sdm8z9whS2wW-e4GiT6OMRzhdqKsM1sTrCx31W6J9wDk54If02QChRhE-2zOy3D_I8eMVrw_dyVVa_WL0tEphJb_ml7Lslu9o_u9DwN-rjtH9fhmKzjsUEw" }, { "descr": "Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-384", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "dc31e80a-25bd-44bc-9bba-3316733cc5c3_sig_rs384", "x5c": [ "MIIDCTCCAfGgAwIBAgIgVQCrzhKafHgbZKiJ2ZbYnYsZAGoXTMq1amakp4iFh58wDQYJKoZIhvcNAQEMBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDFaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1gGOifIn7DW8pRIn/hEvylYnF00gGazYx+uUZ1umIiztXByqQAHgg3p8mcrjZDKaCKbkagUqvIT1xM6x1SXAGwG+oiVG1qutMLH4mYmIHkd4lg90dy3Cft5+05WX3n7SW+eQpOF5uHthG5OcFYhMK8eRqaKu/myTUtamAcL/mdJIey2rn/GkqqAr8qw+0XbQhGYF7jatSjxy4G3Bb/b/hayEobBtohcGr5M4tBYs0KF7ucrm84oc938zpaz4DtINrztWp/eurADzhisHdwV5yNst3wb4gXu0urqa2/+312tyjKDV8PHJ3twzlz1FGpT6KMBNY9v2srl5aeN6Xr/OLAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQwFAAOCAQEAhQx0YCpu3h64rDtt+50jERkEgGpe2p59PIHPypBcJVJQH51nOmbUvQLocq0LOCXyPMyajBMvUFav1TQH01L1wYXhJru2wYvrBWMFVZx1zTjtghCnl42Doe+i2va3A4ezTLe9sJ2S4KTC8GGi6Vyu86So5irZWrjGSUl1gMdcZ0ukRPWm0/m6Mp09vik3ePIN3QYeCZ03srAMVGrsARt04W58K/gYFz/xKtVA2oBxICytDkiN3EdEztbbILVJTaQTnh40kddDEu0GtMau/6cjdG0ew7CrQ7er+0Zkc3n678xfCilkJoDm58Q3LKs36FBB935cxFiCyr67i9b3bOONRw==" ], "name": "id_token RS384 Sign Key", "exp": 1669453849923, "alg": "RS384", "n": "tYBjonyJ-w1vKUSJ_4RL8pWJxdNIBms2MfrlGdbpiIs7VwcqkAB4IN6fJnK42Qymgim5GoFKryE9cTOsdUlwBsBvqIlRtarrTCx-JmJiB5HeJYPdHctwn7eftOVl95-0lvnkKThebh7YRuTnBWITCvHkamirv5sk1LWpgHC_5nSSHstq5_xpKqgK_KsPtF20IRmBe42rUo8cuBtwW_2_4WshKGwbaIXBq-TOLQWLNChe7nK5vOKHPd_M6Ws-A7SDa87Vqf3rqwA84YrB3cFecjbLd8G-IF7tLq6mtv_t9drcoyg1fDxyd7cM5c9RRqU-ijATWPb9rK5eWnjel6_ziw" }, { "descr": "Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-512", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "9289eede-f716-4f23-90c1-9c0cc53bb6fe_sig_rs512", "x5c": [ "MIIDCTCCAfGgAwIBAgIgUL+smQwkNH4K6XPR/dgaSAYZzKk5cY46JMPGsJFFp0kwDQYJKoZIhvcNAQENBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDFaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4+pKUzdR65BCG6RL9Lsumqgm47EE4YyUv8pPJy6HmUlnF2SdDcqPjWKxrtCf//fxeEfHJQaNfpEgBPfzactLfK1QjQa6CaKR95Q/2RSU4Lek1mph6cI4ozOXIBBzjIMf1xhNDeYK62geyZoX9phjbj7OqE/LMUE63O2nLm8LZwnTUR3WLFpnUqePWqQd9UgHuCF8+dtQZKbjRRg4LBVw6u1GWKypHMUGSZjpRGqx9PfFm9fhxtCbtgjxl7y84hjifHuGu25Nzk50DayJkTRai9Zvxg3EtZqhmtj79scoBbqiDozeTXYdYl5qXJSmefjuoMmBbcnqceX8CcolrGf3dAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQ0FAAOCAQEAodRI8ldDbEzwM+PxI2ENbnHHfzBB6MiGfYnEORD2Hl36UEDh447Vfsq2CffZqgo6sFt8zqpDFPDD14qfhECkTbJd20facZ4Ul0RIszzonkuqYMPMRebTJUXqmuALh873GNcoZCBTzB320GD3Gvo3ebG7JZo8FqBBVgrHu0y4QEoO/+KSHtKMVrH5CPhmD7VKdO2hLjtD4eI1UsA1ltpVHQJmQ1SSNGUxOv0zrDQKx/iC7lLgbhdU6bh0qjaHvmSN88rA99SOoO8X2/DS+hQ+9lmQueVgJJTkFhf/rQx6Mf/gLWZ2AXyec7PHxayruY1kBxOi/B+tX7ri+BJQv5uhjA==" ], "name": "id_token RS512 Sign Key", "exp": 1669453849923, "alg": "RS512", "n": "uPqSlM3UeuQQhukS_S7LpqoJuOxBOGMlL_KTycuh5lJZxdknQ3Kj41isa7Qn__38XhHxyUGjX6RIAT382nLS3ytUI0GugmikfeUP9kUlOC3pNZqYenCOKMzlyAQc4yDH9cYTQ3mCutoHsmaF_aYY24-zqhPyzFBOtztpy5vC2cJ01Ed1ixaZ1Knj1qkHfVIB7ghfPnbUGSm40UYOCwVcOrtRlisqRzFBkmY6URqsfT3xZvX4cbQm7YI8Ze8vOIY4nx7hrtuTc5OdA2siZE0WovWb8YNxLWaoZrY-_bHKAW6og6M3k12HWJealyUpnn47qDJgW3J6nHl_AnKJaxn93Q" }, { "descr": "Signature Key: ECDSA using P-256 (secp256r1) and SHA-256", "kty": "EC", "use": "sig", "crv": "P-256", "kid": "7f06cc87-2ad0-4796-87ad-656c04171658_sig_es256", "x5c": [ "MIIBfjCCASSgAwIBAgIhANTO/MVgPOi1bDoMCECchwSq3ZISGeJIf6geFpDGOwM1MAoGCCqGSM49BAMCMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjIxMTI0MDkxMDQxWhcNMjIxMTI2MDkxMDQ5WjAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEG3vFwYS6QC1buvQZnPhCBnEv1a+6EAjBHKSTnqnq6aPCJonhZ8H2WoRAb9MpvGIT9evTm/TagcVl97DHkI+IJaMnMCUwIwYDVR0lBBwwGgYIKwYBBQUHAwEGCCsGAQUFBwMCBgRVHSUAMAoGCCqGSM49BAMCA0gAMEUCIQCHF+kGN0LvtU0cF1EdunZceynil2OVENS1TDXsHVcnDAIgC61b3inR5eIoXseiHIilCcAZkxfSzXgirOkD/CsRA6I=" ], "name": "id_token ES256 Sign Key", "x": "G3vFwYS6QC1buvQZnPhCBnEv1a-6EAjBHKSTnqnq6aM", "y": "wiaJ4WfB9lqEQG_TKbxiE_Xr05v02oHFZfewx5CPiCU", "exp": 1669453849923, "alg": "ES256" }, { "descr": "Signature Key: ECDSA using secp256k1 and SHA-256", "kty": "EC", "use": "sig", "crv": "P-256K", "kid": "974cf9ac-85ee-4537-b2ac-e72ffa80678f_sig_es256k", "x5c": [ "MIIBeTCCASCgAwIBAgIgEV8CZiakB2ZKGU0Ub1OVZdWWOJLa1Vmy0L+5ampNUsswCgYIKoZIzj0EAwIwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDFaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwVjAQBgcqhkjOPQIBBgUrgQQACgNCAARkChSwmO7FenZoBIoF7rQHwZ34rXa/7jZJEo3vYA2q+K4N5RmiIDTBGjjeQHZ0PebVpRMIiuENtluget/gQ6DxoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwCgYIKoZIzj0EAwIDRwAwRAIgaCPcFtZA8ynw+rqP8X8JaH4Lh0iw3Di4Fd6+Aul5vl4CIFOGq6pDXTePqXia+jaFkWKeCq6JW1cQCK5MxsLH4Cec" ], "name": "id_token ES256K Sign Key", "x": "ZAoUsJjuxXp2aASKBe60B8Gd-K12v-42SRKN72ANqvg", "y": "rg3lGaIgNMEaON5AdnQ95tWlEwiK4Q22W6B63-BDoPE", "exp": 1669453849923, "alg": "ES256K" }, { "descr": "Signature Key: ECDSA using P-384 (secp384r1) and SHA-384", "kty": "EC", "use": "sig", "crv": "P-384", "kid": "2f00ae49-ea7b-4f21-b121-5690ba9150f8_sig_es384", "x5c": [ "MIIBuzCCAUCgAwIBAgIgXbteulAtDZpGZqDZ03+2nGug5nicD7Buk9NOG1WW6PUwCgYIKoZIzj0EAwMwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDJaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARKoQsjHJkjH8g4x6BZXv4nd+Id+wufe1pcryRvG8ncuFKwYxRpKZtZIYF+DOda2XfScyvp5fAzlEgiDrxfL3b1ivBpVRzDJ9fxM/AQyDpTJ20X0XzNk1fgewyZ/Peiw5SjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADAKBggqhkjOPQQDAwNpADBmAjEAsbFQX8juH4FQ0IB5YAz0coNf3kAi/F7KrEZTReY5JT7P5Oi5XSPx9BSp9ikgfazHAjEA9nAPIcjpgi7vD3vgknPTTM7CRzueA1wG8/7acpAWK3MNzxZ3pUj+mB0SKf2kJjtc" ], "name": "id_token ES384 Sign Key", "x": "SqELIxyZIx_IOMegWV7-J3fiHfsLn3taXK8kbxvJ3LhSsGMUaSmbWSGBfgznWtl3", "y": "0nMr6eXwM5RIIg68Xy929YrwaVUcwyfX8TPwEMg6UydtF9F8zZNX4HsMmfz3osOU", "exp": 1669453849923, "alg": "ES384" }, { "descr": "Signature Key: ECDSA using P-521 (secp521r1) and SHA-512", "kty": "EC", "use": "sig", "crv": "P-521", "kid": "59c70a16-c46e-495e-8a11-4720926bfc76_sig_es512", "x5c": [ "MIICBDCCAWagAwIBAgIgGsoBXbZLnXfYR9bVxhRnrtQqu7zhOw65Ie/+g3oUkEgwCgYIKoZIzj0EAwQwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDJaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwgZswEAYHKoZIzj0CAQYFK4EEACMDgYYABAD8z0GFvERbTRVbomYd1XBrYejvDEo8f5UUW1aFra7lnaTOVeWSMlEyamC+iFEvW/EXUYELxVFoAz/vggUf/gAgGgD5/jxw9MTMSS4TYKm5IVdGimaXiWN89So/jt+NG5MXNFzpBwvqsBBqnxk6yyX4/kTFgsU2YrF5nFy61+bymPTlUaMnMCUwIwYDVR0lBBwwGgYIKwYBBQUHAwEGCCsGAQUFBwMCBgRVHSUAMAoGCCqGSM49BAMEA4GLADCBhwJCAN+kSY1xYoTdimd77WQVOCyLMw3EXz/D7EbEHbiSj2UENOmvUyeO8eTbiUskTdu5fHIG/XmP9ve2KlFRE5RzXvPxAkEfEkF1EXwf5/CNvTQjUmQ/IZxlYZFG8Kt3VcfdDej8M5/vpc1C0AtL8Sr4MiIXseppHKU89Sry8CjEYxpp+v325g==" ], "name": "id_token ES512 Sign Key", "x": "_M9BhbxEW00VW6JmHdVwa2Ho7wxKPH-VFFtWha2u5Z2kzlXlkjJRMmpgvohRL1vxF1GBC8VRaAM_74IFH_4AIBo", "y": "-f48cPTEzEkuE2CpuSFXRopml4ljfPUqP47fjRuTFzRc6QcL6rAQap8ZOssl-P5ExYLFNmKxeZxcutfm8pj05VE", "exp": 1669453849923, "alg": "ES512" }, { "descr": "Signature Key: RSASSA-PSS using SHA-256 and MGF1 with SHA-256", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "aba8c8d9-428d-4391-a3ec-8a6caca0e5b3_sig_ps256", "x5c": [ "MIIDcTCCAiWgAwIBAgIgLzlOamPjHzsa5Bgwm7j90rWtZkJJw85CtFRKp1PPvgUwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjIxMTI0MDkxMDQyWhcNMjIxMTI2MDkxMDQ5WjAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApD94ZkyAP6jWqDA5LBGO/UtnOgOY4SO1hdqcjHLQ/C9JRSEVzfQ5C8EqHYQ5yVrGHzi7D7MGG+s3k9hO7HWQMH5wZH9ZiTKZ22SVe1bMJVcSRWZvy1uRXLigleC+4K4DY+SI4R04fivMwotjmrm0fXAZhZvEnTXFtNTEN3cdaB5QBN/rbSgLtcOKqQdkrf6xKyKrxGM3RfHzGIfHcQgA36XZFxKzKq6uXBWA21ATNH/CFIPmSDMXDOaW5EcGj3/SZWPp5GLBlwo5f2yXjsK7loXvNtKBIS1yN75XxXN2XyaqWpGTGSl/HEJlGkGs0+mgo3PuC0FyxxtIkNAXRO2Z+QIDAQABoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4IBAQCMm4Tbm/jsY14SmYftnlbHMvxFTEQZ4/GkujOeeM2d/oa0lgUoHp2ErgAeoGz0LCC3y7yJAeYQGzDz2DP6rCVGXdkVybfptd3Bwq+adRSjVDL0RELat9nQB09p3Qk4TH4a/kFhWxQECShOlGx+uCV+FSKjohjftVk2kuQh8qyPrHDhIomMGWH1xsN+W17h5cfxGdGIT5o+szmKbVfxg2En7nVqnJfpYmmZQYoLanLaUd39/pb2I+FgMGIUWVSr23OHjD3YFHnHcBTXkNDXtHdhBKOY3MX6v74L6Iogm1JDbP26mH3YC5E622Fw1qDPjTqynRDZcQUYwfOIsTE3NLD2" ], "name": "id_token PS256 Sign Key", "exp": 1669453849923, "alg": "PS256", "n": "pD94ZkyAP6jWqDA5LBGO_UtnOgOY4SO1hdqcjHLQ_C9JRSEVzfQ5C8EqHYQ5yVrGHzi7D7MGG-s3k9hO7HWQMH5wZH9ZiTKZ22SVe1bMJVcSRWZvy1uRXLigleC-4K4DY-SI4R04fivMwotjmrm0fXAZhZvEnTXFtNTEN3cdaB5QBN_rbSgLtcOKqQdkrf6xKyKrxGM3RfHzGIfHcQgA36XZFxKzKq6uXBWA21ATNH_CFIPmSDMXDOaW5EcGj3_SZWPp5GLBlwo5f2yXjsK7loXvNtKBIS1yN75XxXN2XyaqWpGTGSl_HEJlGkGs0-mgo3PuC0FyxxtIkNAXRO2Z-Q" }, { "descr": "Signature Key: RSASSA-PSS using SHA-384 and MGF1 with SHA-384", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "38ffe65f-3d39-4167-b6d3-5693e7936b50_sig_ps384", "x5c": [ "MIIDcTCCAiWgAwIBAgIgSjJz2eN24/nEpy89IAIeTYxwmQJZK0n9FAWljbDXvWswQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgIFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgIFAKIDAgEwMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjIxMTI0MDkxMDQyWhcNMjIxMTI2MDkxMDQ5WjAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwIVjm8FWgPlcGVJRiKiEZe5KBLmN2Gev2owJGJkkiyIW2XSFnqJVqWK4tG7MgDJufgLd39stRG/AVBBVRAyfyhZEp9PGrMO7Elr3D0IN02sJlNevLwwPkE2YULaTktjd7tfCH+KNXyOEX+cQuKkICNGRO6tHhw7dE5NB87wq5a61SftsEm/yP6orMM5byddhXTWO5a663/Af5XDJ7MknDq6lndXUCU9Q9QHNWcOcJbqHuEnTcsX9xJR8TZ3O+teGhqQs47ET2NKWMd7udLoU+iIcpid27i6Q7MSKiG6ROI4U2lbIDILKfxw85O5CszOMiov5VU72zJ0GNDXtUA3x2wIDAQABoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgIFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgIFAKIDAgEwA4IBAQBz9Et1fgb3JyDSTj9bc5VSyPMVcEEpDVFKwg9JLqDKra92kf6ZdPu3Ap2IzEL0bARIr4/EI/mMlDTMVjNXpqk3u1FVrQ5tRl+0MqqA4eGyuS+Mx42mhZH5DlOKhaxTUMatu5FSDtpYBiq8zJwGVVox8t4/D6/Qa/Jf0F5nx3tH80sGPih5S2lQRy5AsVhF/QSZnUAXjjpbiCsH77WTqrA2+5RlpZzKnQxqKvbsf0oC2hThK8dGnM8ynMhnFuSGW/SmCxhpvhaCEvmF+DAVHXk0BVvie8ueWfPYxtPCLzwc3dnTRahdMUT3wbteW68G6OnPYvO6S+DtcGutX6Xyos9h" ], "name": "id_token PS384 Sign Key", "exp": 1669453849923, "alg": "PS384", "n": "wIVjm8FWgPlcGVJRiKiEZe5KBLmN2Gev2owJGJkkiyIW2XSFnqJVqWK4tG7MgDJufgLd39stRG_AVBBVRAyfyhZEp9PGrMO7Elr3D0IN02sJlNevLwwPkE2YULaTktjd7tfCH-KNXyOEX-cQuKkICNGRO6tHhw7dE5NB87wq5a61SftsEm_yP6orMM5byddhXTWO5a663_Af5XDJ7MknDq6lndXUCU9Q9QHNWcOcJbqHuEnTcsX9xJR8TZ3O-teGhqQs47ET2NKWMd7udLoU-iIcpid27i6Q7MSKiG6ROI4U2lbIDILKfxw85O5CszOMiov5VU72zJ0GNDXtUA3x2w" }, { "descr": "Signature Key: RSASSA-PSS using SHA-512 and MGF1 with SHA-512", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "bc70aa2a-82be-429f-ac78-f5d0259aef75_sig_ps512", "x5c": [ "MIIDcjCCAiagAwIBAgIhANC7kC8SC+nC9bsp0Iwa/pi+We0n9tR60Xha4w41FUdaMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAIDBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIDBQCiAwIBQDAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMB4XDTIyMTEyNDA5MTA0M1oXDTIyMTEyNjA5MTA0OVowJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANnY+5aPZtW/p10ctzM88EqH8gbcQV193iBnFT35GjhpITUoTPf8gjne1menuvVmOJ8vtP74uNow4YzhaR/z5bjzXyQ4pGuq0mulj+8OrGigXMD86s9xtU+v5Gjp8WeJEh7RChmoHwexFj42s880XL/DBGaOVjnKdQ5CLKooXjhbLwN6UUo6QidYi9mKFKIs2HqndV/nQQTzt2BMXSdDzQqe3QcJdVlL+ZEVrcHwekJ/MSWcXueNDvVh6oG//oMmB5rBmp8+L5jlW+/yPFYJhSts+IwWjis+DeICqvZsCI7nJBuKF+3nx/Vi7oEgavewDXkW8Miha/UdydJxNwb4zjECAwEAAaMnMCUwIwYDVR0lBBwwGgYIKwYBBQUHAwEGCCsGAQUFBwMCBgRVHSUAMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAIDBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIDBQCiAwIBQAOCAQEAnE1c3DJQetYESVPCUuUgOOZYcurv0vthZ0wLQj8MaHThu7Gysq02HOtJuRRt48UzUdxEa8GQ6WgM9/aFqVtsQRYcLR1tqKXgUTJ+crlSHXXz7rfbmvTtnbPv30kynMfqa58u87/HjuGt3ZCFm+ha4h8h0Rr6yEUc9sWka6iSkvccIi9osy2pP1zOTL8sn6F5xf+EL1Oj2OqmtKtsn8zgRnV3C424AofebhLoindIXdYcsv1ClMv4slbu5CRnnaRMKedIT5qYD9Km2S8+sDBTXHkAbgN/eAh951ve/evcR2h9KQ6d4RAemucvWMzynkledHeHrF3ScYwmemHk9el+fg==" ], "name": "id_token PS512 Sign Key", "exp": 1669453849923, "alg": "PS512", "n": "2dj7lo9m1b-nXRy3MzzwSofyBtxBXX3eIGcVPfkaOGkhNShM9_yCOd7WZ6e69WY4ny-0_vi42jDhjOFpH_PluPNfJDika6rSa6WP7w6saKBcwPzqz3G1T6_kaOnxZ4kSHtEKGagfB7EWPjazzzRcv8MEZo5WOcp1DkIsqiheOFsvA3pRSjpCJ1iL2YoUoizYeqd1X-dBBPO3YExdJ0PNCp7dBwl1WUv5kRWtwfB6Qn8xJZxe540O9WHqgb_-gyYHmsGanz4vmOVb7_I8VgmFK2z4jBaOKz4N4gKq9mwIjuckG4oX7efH9WLugSBq97ANeRbwyKFr9R3J0nE3BvjOMQ" }, { "descr": "Encryption Key: RSAES-PKCS1-v1_5", "kty": "RSA", "e": "AQAB", "use": "enc", "kid": "f5840e59-f205-4ab5-9db4-6850a6eebe4a_enc_rsa1_5", "x5c": [ "MIIDCTCCAfGgAwIBAgIgFGrDv2JganfapqHzBf4Op0/0LZJpfSaLnRmJkC/fJzwwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDNaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDekmG1oLWi4TnSLCueF8HxtkUp/wEcCFWEJSrggcZFjAlYX7+Et+z2DN2CSdArTNeoMD1u+FyLrmrb+M8tYpOORZUOwQDHkjjrgaBlAC437IxoAffvT/Pt2j9+wv9gaPyxV8Gm8jCir+JKcHPUimiSRJh4oQAuvxucUBN9oneSoZcWAwxbTGNWAGAYCfHuY9nC5KoDxOOjqHF85TIjT8ygm7fvUwkwtUa2UgGhTkSB/RfDdlox/C02oVOOXl1p9BtvTZHXuZR2slQoNj9Nl3/EgwoGg2dBjuXzcWlsFvje/lX8WpAAkpIkCbhjZ71Sl0SAVZ4Q5QwwTa1ipv4BSfGzAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEAiDthgRx+VCYcf3JKT3W0iEIW80vsnO6QYdZ9nwof7ASnA+tGQLStwIxNPkNG6/qCWu4tVztW/X4eU9800ZDP5a1uhI3+N+JyrmkQce70NKuWBjRCd5NCEjO1RNEUqawTwE/x7QI1/6664D2k3JIaCLZ0mK+clj6Q5TgnxK2SKfFJtQbllETtObP6e/o3SKqYTnlTao83SHPZpwwhY15i3DkXFtCqP8LTZPr3BC/7HSMo8rVZsC2slpuUV3aQ1qmLqqVBVUr2zfpbeLvzOQ43bQWXFnw+VhwHNwrpt+o06OU9BIDJyWlM/hxdLOkW4gOibDouVzf02e8/y2PNrQ6m9A==" ], "name": "id_token RSA1_5 Encryption Key", "exp": 1669453849923, "alg": "RSA1_5", "n": "3pJhtaC1ouE50iwrnhfB8bZFKf8BHAhVhCUq4IHGRYwJWF-_hLfs9gzdgknQK0zXqDA9bvhci65q2_jPLWKTjkWVDsEAx5I464GgZQAuN-yMaAH370_z7do_fsL_YGj8sVfBpvIwoq_iSnBz1IpokkSYeKEALr8bnFATfaJ3kqGXFgMMW0xjVgBgGAnx7mPZwuSqA8Tjo6hxfOUyI0_MoJu371MJMLVGtlIBoU5Egf0Xw3ZaMfwtNqFTjl5dafQbb02R17mUdrJUKDY_TZd_xIMKBoNnQY7l83FpbBb43v5V_FqQAJKSJAm4Y2e9UpdEgFWeEOUMME2tYqb-AUnxsw" }, { "descr": "Encryption Key: RSAES OAEP using default parameters", "kty": "RSA", "e": "AQAB", "use": "enc", "kid": "4ca76322-fcfd-425d-974e-320e56f3e6b1_enc_rsa-oaep", "x5c": [ "MIIDCTCCAfGgAwIBAgIgeSysuyHahs0vLwl/R52r3qF8RRAFwn3kJYosQvgFmDAwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDNaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyvTOifACYeY6QYvYimNhASpxMxfEo5kMEGCxmA7675fhRmUZNkijCpz3uiQ6a0ajdrk041Q3MbuU/89V9n8Lb5BBTMrfVKLTw6SGAB3pRVqqrGn1XRljWJerXU3m3iOx6E63jR/9Gsk6OV6X8gT5LdJa2Md8cNtkeZotJlKlf09K8WDeR1ccPEbnVbV9KB2gvlMoqI9SSgTaLJRN/iUIs9flZ624prfE8bV4r5Q3ngehOO85rGzzflx5JZrim+I8nyv4wMfETqu2U2zbm1+HmruI25MdY0RhiEgLdAEQkJViu9159TPUqmCpqK5Jtn0+4w59FTkt2Y+XhnLut5JxdAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEAPg0c9Wk3PmloWGPEjoWhJLpCp4yJpvuA1Quw0h/SHIHXLOWL0LR/zcWwv0kINyf3Q8A3pHmv9YoCKGeZTK4G3PL4VZpv1KzhoSUM6GUSSEXETEJIdgMS3mMSdAu2sRCmkVWglVEz+RRNErMzd0pv7zrL+VTvszP8e8Boq34CXJQR/3079Ea7E0nfD/F27qu9DlXctefmCfrZFt7NynyhWrfUvGFPDy0KOuELYq+zFYKPafiCJuIlRX8MwN+8UZLZut3To672Sr0POwshzQJoktpdx2jh7wAkJO8SyIyQ9BpvZf+7Omso2UdjbiTfELY9V3frmMLvplKCCH70YfB/2g==" ], "name": "id_token RSA-OAEP Encryption Key", "exp": 1669453849923, "alg": "RSA-OAEP", "n": "sr0zonwAmHmOkGL2IpjYQEqcTMXxKOZDBBgsZgO-u-X4UZlGTZIowqc97okOmtGo3a5NONUNzG7lP_PVfZ_C2-QQUzK31Si08OkhgAd6UVaqqxp9V0ZY1iXq11N5t4jsehOt40f_RrJOjlel_IE-S3SWtjHfHDbZHmaLSZSpX9PSvFg3kdXHDxG51W1fSgdoL5TKKiPUkoE2iyUTf4lCLPX5WetuKa3xPG1eK-UN54HoTjvOaxs835ceSWa4pviPJ8r-MDHxE6rtlNs25tfh5q7iNuTHWNEYYhIC3QBEJCVYrvdefUz1KpgqaiuSbZ9PuMOfRU5LdmPl4Zy7reScXQ" }, { "descr": "Encryption Key: Elliptic Curve Diffie-Hellman Ephemeral Static key agreement using Concat KDF", "kty": "EC", "use": "enc", "crv": "P-256", "kid": "b831ac74-5f55-44a7-a4d6-27dc719260b4_enc_ecdh-es", "x5c": [ "MIIBfTCCASOgAwIBAgIgBIQgN6qAFETKlTg27WaubCVcED6gcBHRfqYRjxwAIVIwCgYIKoZIzj0EAwIwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDRaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ+gjebuvFbE2wBEpFWFu0KpdslUsIGwBw8x5MnBIfw/BVEon98mc42CuddOLuD7UxK5VU7C5ynXdrmfghGnn2ToycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwCgYIKoZIzj0EAwIDSAAwRQIgV5qVeBLYVoLIhEd1eEw2bOjtZaQfSnccpovaxvets5QCIQDTjFlIhnskTJ3GxF1XwDKN2agOKgRzIFQETYrQDmFfuA==" ], "name": "id_token ECDH-ES Encryption Key", "x": "PoI3m7rxWxNsARKRVhbtCqXbJVLCBsAcPMeTJwSH8Pw", "y": "FUSif3yZzjYK5104u4PtTErlVTsLnKdd2uZ-CEaefZM", "exp": 1669453849923, "alg": "ECDH-ES" } ] } 24-11 09:33:24.930 INFO com.intuit.karate.Logger Logger.java:104- [print] { "keys": [ { "descr": "Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-256", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "deb37228-ac2f-4fa0-b220-cb8c8659b48a_sig_rs256", "x5c": [ "MIIDCTCCAfGgAwIBAgIged0cnMxsVyByqMkowFciCRBPzwMAjz0RAZzeYwoiP8QwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDBaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOSXogCn3O4Fjhiq/Ko7R9++30ZeKPXnt7TGVX1Auga+AwYzNh89sBQML8SlPiLb/l5M2WiClt56OkkxlOornSLJIJUqfBqQmFgeM9aBT2QjaicW0NfKQ2ZaE0Rq8gzqYBbDigQewZrhD+KA2Ll+KZAz7ec0eqpUvXychww+nn/dvuiL+5qSlCEwjlECqLfy7S2LXHlbG2VWQLQf/T8NBKd+RSpuRcXux2bzP3CFLbBb57gaJPo4xHOF2oqwzWxOsLHfVbon3AOTngh/TZAKFGET7bM7LcP8jx4xWvD93JVVr9YvS0SmElv+aXsuyW72j+70PA36uO0f1+GYrOOxQTAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEATM2DauDY49nDNFM/4bxKgwgu+Ch1jNz6QBSsqGspkzH2ZqgfnT2bL4f5wc09QmeJvP5qInaEO9jywPF7a1dwAgDvDPV1XvX3zKxGJp8c5jcohf+SKRgyY9LLTnmUkC//W3zSpTAgBm2Q7ukIOXYe67YTtQSepG7dxTF+laontZFuvbTia2r1xg4m+SzCMN80PxefW283Sx8EJswoCzyuRqVJmy4nFi/4kgUXN1Za3nZ47n/btSZMxrOakjk/l5SuJ9u0HXKIalPvJUe+jKhgPVjvGhSCujKdf1su9gQFSq/92AOs3GeGoX4QaLi6H8jfHNsq7+cyeqbjse5+RK/TAA==" ], "name": "id_token RS256 Sign Key", "exp": 1669453849923, "alg": "RS256", "n": "zkl6IAp9zuBY4YqvyqO0ffvt9GXij157e0xlV9QLoGvgMGMzYfPbAUDC_EpT4i2_5eTNlogpbeejpJMZTqK50iySCVKnwakJhYHjPWgU9kI2onFtDXykNmWhNEavIM6mAWw4oEHsGa4Q_igNi5fimQM-3nNHqqVL18nIcMPp5_3b7oi_uakpQhMI5RAqi38u0ti1x5WxtlVkC0H_0_DQSnfkUqbkXF7sdm8z9whS2wW-e4GiT6OMRzhdqKsM1sTrCx31W6J9wDk54If02QChRhE-2zOy3D_I8eMVrw_dyVVa_WL0tEphJb_ml7Lslu9o_u9DwN-rjtH9fhmKzjsUEw" }, { "descr": "Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-384", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "dc31e80a-25bd-44bc-9bba-3316733cc5c3_sig_rs384", "x5c": [ "MIIDCTCCAfGgAwIBAgIgVQCrzhKafHgbZKiJ2ZbYnYsZAGoXTMq1amakp4iFh58wDQYJKoZIhvcNAQEMBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDFaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1gGOifIn7DW8pRIn/hEvylYnF00gGazYx+uUZ1umIiztXByqQAHgg3p8mcrjZDKaCKbkagUqvIT1xM6x1SXAGwG+oiVG1qutMLH4mYmIHkd4lg90dy3Cft5+05WX3n7SW+eQpOF5uHthG5OcFYhMK8eRqaKu/myTUtamAcL/mdJIey2rn/GkqqAr8qw+0XbQhGYF7jatSjxy4G3Bb/b/hayEobBtohcGr5M4tBYs0KF7ucrm84oc938zpaz4DtINrztWp/eurADzhisHdwV5yNst3wb4gXu0urqa2/+312tyjKDV8PHJ3twzlz1FGpT6KMBNY9v2srl5aeN6Xr/OLAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQwFAAOCAQEAhQx0YCpu3h64rDtt+50jERkEgGpe2p59PIHPypBcJVJQH51nOmbUvQLocq0LOCXyPMyajBMvUFav1TQH01L1wYXhJru2wYvrBWMFVZx1zTjtghCnl42Doe+i2va3A4ezTLe9sJ2S4KTC8GGi6Vyu86So5irZWrjGSUl1gMdcZ0ukRPWm0/m6Mp09vik3ePIN3QYeCZ03srAMVGrsARt04W58K/gYFz/xKtVA2oBxICytDkiN3EdEztbbILVJTaQTnh40kddDEu0GtMau/6cjdG0ew7CrQ7er+0Zkc3n678xfCilkJoDm58Q3LKs36FBB935cxFiCyr67i9b3bOONRw==" ], "name": "id_token RS384 Sign Key", "exp": 1669453849923, "alg": "RS384", "n": "tYBjonyJ-w1vKUSJ_4RL8pWJxdNIBms2MfrlGdbpiIs7VwcqkAB4IN6fJnK42Qymgim5GoFKryE9cTOsdUlwBsBvqIlRtarrTCx-JmJiB5HeJYPdHctwn7eftOVl95-0lvnkKThebh7YRuTnBWITCvHkamirv5sk1LWpgHC_5nSSHstq5_xpKqgK_KsPtF20IRmBe42rUo8cuBtwW_2_4WshKGwbaIXBq-TOLQWLNChe7nK5vOKHPd_M6Ws-A7SDa87Vqf3rqwA84YrB3cFecjbLd8G-IF7tLq6mtv_t9drcoyg1fDxyd7cM5c9RRqU-ijATWPb9rK5eWnjel6_ziw" }, { "descr": "Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-512", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "9289eede-f716-4f23-90c1-9c0cc53bb6fe_sig_rs512", "x5c": [ "MIIDCTCCAfGgAwIBAgIgUL+smQwkNH4K6XPR/dgaSAYZzKk5cY46JMPGsJFFp0kwDQYJKoZIhvcNAQENBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDFaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4+pKUzdR65BCG6RL9Lsumqgm47EE4YyUv8pPJy6HmUlnF2SdDcqPjWKxrtCf//fxeEfHJQaNfpEgBPfzactLfK1QjQa6CaKR95Q/2RSU4Lek1mph6cI4ozOXIBBzjIMf1xhNDeYK62geyZoX9phjbj7OqE/LMUE63O2nLm8LZwnTUR3WLFpnUqePWqQd9UgHuCF8+dtQZKbjRRg4LBVw6u1GWKypHMUGSZjpRGqx9PfFm9fhxtCbtgjxl7y84hjifHuGu25Nzk50DayJkTRai9Zvxg3EtZqhmtj79scoBbqiDozeTXYdYl5qXJSmefjuoMmBbcnqceX8CcolrGf3dAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQ0FAAOCAQEAodRI8ldDbEzwM+PxI2ENbnHHfzBB6MiGfYnEORD2Hl36UEDh447Vfsq2CffZqgo6sFt8zqpDFPDD14qfhECkTbJd20facZ4Ul0RIszzonkuqYMPMRebTJUXqmuALh873GNcoZCBTzB320GD3Gvo3ebG7JZo8FqBBVgrHu0y4QEoO/+KSHtKMVrH5CPhmD7VKdO2hLjtD4eI1UsA1ltpVHQJmQ1SSNGUxOv0zrDQKx/iC7lLgbhdU6bh0qjaHvmSN88rA99SOoO8X2/DS+hQ+9lmQueVgJJTkFhf/rQx6Mf/gLWZ2AXyec7PHxayruY1kBxOi/B+tX7ri+BJQv5uhjA==" ], "name": "id_token RS512 Sign Key", "exp": 1669453849923, "alg": "RS512", "n": "uPqSlM3UeuQQhukS_S7LpqoJuOxBOGMlL_KTycuh5lJZxdknQ3Kj41isa7Qn__38XhHxyUGjX6RIAT382nLS3ytUI0GugmikfeUP9kUlOC3pNZqYenCOKMzlyAQc4yDH9cYTQ3mCutoHsmaF_aYY24-zqhPyzFBOtztpy5vC2cJ01Ed1ixaZ1Knj1qkHfVIB7ghfPnbUGSm40UYOCwVcOrtRlisqRzFBkmY6URqsfT3xZvX4cbQm7YI8Ze8vOIY4nx7hrtuTc5OdA2siZE0WovWb8YNxLWaoZrY-_bHKAW6og6M3k12HWJealyUpnn47qDJgW3J6nHl_AnKJaxn93Q" }, { "descr": "Signature Key: ECDSA using P-256 (secp256r1) and SHA-256", "kty": "EC", "use": "sig", "crv": "P-256", "kid": "7f06cc87-2ad0-4796-87ad-656c04171658_sig_es256", "x5c": [ "MIIBfjCCASSgAwIBAgIhANTO/MVgPOi1bDoMCECchwSq3ZISGeJIf6geFpDGOwM1MAoGCCqGSM49BAMCMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjIxMTI0MDkxMDQxWhcNMjIxMTI2MDkxMDQ5WjAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEG3vFwYS6QC1buvQZnPhCBnEv1a+6EAjBHKSTnqnq6aPCJonhZ8H2WoRAb9MpvGIT9evTm/TagcVl97DHkI+IJaMnMCUwIwYDVR0lBBwwGgYIKwYBBQUHAwEGCCsGAQUFBwMCBgRVHSUAMAoGCCqGSM49BAMCA0gAMEUCIQCHF+kGN0LvtU0cF1EdunZceynil2OVENS1TDXsHVcnDAIgC61b3inR5eIoXseiHIilCcAZkxfSzXgirOkD/CsRA6I=" ], "name": "id_token ES256 Sign Key", "x": "G3vFwYS6QC1buvQZnPhCBnEv1a-6EAjBHKSTnqnq6aM", "y": "wiaJ4WfB9lqEQG_TKbxiE_Xr05v02oHFZfewx5CPiCU", "exp": 1669453849923, "alg": "ES256" }, { "descr": "Signature Key: ECDSA using secp256k1 and SHA-256", "kty": "EC", "use": "sig", "crv": "P-256K", "kid": "974cf9ac-85ee-4537-b2ac-e72ffa80678f_sig_es256k", "x5c": [ "MIIBeTCCASCgAwIBAgIgEV8CZiakB2ZKGU0Ub1OVZdWWOJLa1Vmy0L+5ampNUsswCgYIKoZIzj0EAwIwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDFaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwVjAQBgcqhkjOPQIBBgUrgQQACgNCAARkChSwmO7FenZoBIoF7rQHwZ34rXa/7jZJEo3vYA2q+K4N5RmiIDTBGjjeQHZ0PebVpRMIiuENtluget/gQ6DxoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwCgYIKoZIzj0EAwIDRwAwRAIgaCPcFtZA8ynw+rqP8X8JaH4Lh0iw3Di4Fd6+Aul5vl4CIFOGq6pDXTePqXia+jaFkWKeCq6JW1cQCK5MxsLH4Cec" ], "name": "id_token ES256K Sign Key", "x": "ZAoUsJjuxXp2aASKBe60B8Gd-K12v-42SRKN72ANqvg", "y": "rg3lGaIgNMEaON5AdnQ95tWlEwiK4Q22W6B63-BDoPE", "exp": 1669453849923, "alg": "ES256K" }, { "descr": "Signature Key: ECDSA using P-384 (secp384r1) and SHA-384", "kty": "EC", "use": "sig", "crv": "P-384", "kid": "2f00ae49-ea7b-4f21-b121-5690ba9150f8_sig_es384", "x5c": [ "MIIBuzCCAUCgAwIBAgIgXbteulAtDZpGZqDZ03+2nGug5nicD7Buk9NOG1WW6PUwCgYIKoZIzj0EAwMwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDJaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARKoQsjHJkjH8g4x6BZXv4nd+Id+wufe1pcryRvG8ncuFKwYxRpKZtZIYF+DOda2XfScyvp5fAzlEgiDrxfL3b1ivBpVRzDJ9fxM/AQyDpTJ20X0XzNk1fgewyZ/Peiw5SjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADAKBggqhkjOPQQDAwNpADBmAjEAsbFQX8juH4FQ0IB5YAz0coNf3kAi/F7KrEZTReY5JT7P5Oi5XSPx9BSp9ikgfazHAjEA9nAPIcjpgi7vD3vgknPTTM7CRzueA1wG8/7acpAWK3MNzxZ3pUj+mB0SKf2kJjtc" ], "name": "id_token ES384 Sign Key", "x": "SqELIxyZIx_IOMegWV7-J3fiHfsLn3taXK8kbxvJ3LhSsGMUaSmbWSGBfgznWtl3", "y": "0nMr6eXwM5RIIg68Xy929YrwaVUcwyfX8TPwEMg6UydtF9F8zZNX4HsMmfz3osOU", "exp": 1669453849923, "alg": "ES384" }, { "descr": "Signature Key: ECDSA using P-521 (secp521r1) and SHA-512", "kty": "EC", "use": "sig", "crv": "P-521", "kid": "59c70a16-c46e-495e-8a11-4720926bfc76_sig_es512", "x5c": [ "MIICBDCCAWagAwIBAgIgGsoBXbZLnXfYR9bVxhRnrtQqu7zhOw65Ie/+g3oUkEgwCgYIKoZIzj0EAwQwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDJaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwgZswEAYHKoZIzj0CAQYFK4EEACMDgYYABAD8z0GFvERbTRVbomYd1XBrYejvDEo8f5UUW1aFra7lnaTOVeWSMlEyamC+iFEvW/EXUYELxVFoAz/vggUf/gAgGgD5/jxw9MTMSS4TYKm5IVdGimaXiWN89So/jt+NG5MXNFzpBwvqsBBqnxk6yyX4/kTFgsU2YrF5nFy61+bymPTlUaMnMCUwIwYDVR0lBBwwGgYIKwYBBQUHAwEGCCsGAQUFBwMCBgRVHSUAMAoGCCqGSM49BAMEA4GLADCBhwJCAN+kSY1xYoTdimd77WQVOCyLMw3EXz/D7EbEHbiSj2UENOmvUyeO8eTbiUskTdu5fHIG/XmP9ve2KlFRE5RzXvPxAkEfEkF1EXwf5/CNvTQjUmQ/IZxlYZFG8Kt3VcfdDej8M5/vpc1C0AtL8Sr4MiIXseppHKU89Sry8CjEYxpp+v325g==" ], "name": "id_token ES512 Sign Key", "x": "_M9BhbxEW00VW6JmHdVwa2Ho7wxKPH-VFFtWha2u5Z2kzlXlkjJRMmpgvohRL1vxF1GBC8VRaAM_74IFH_4AIBo", "y": "-f48cPTEzEkuE2CpuSFXRopml4ljfPUqP47fjRuTFzRc6QcL6rAQap8ZOssl-P5ExYLFNmKxeZxcutfm8pj05VE", "exp": 1669453849923, "alg": "ES512" }, { "descr": "Signature Key: RSASSA-PSS using SHA-256 and MGF1 with SHA-256", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "aba8c8d9-428d-4391-a3ec-8a6caca0e5b3_sig_ps256", "x5c": [ "MIIDcTCCAiWgAwIBAgIgLzlOamPjHzsa5Bgwm7j90rWtZkJJw85CtFRKp1PPvgUwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjIxMTI0MDkxMDQyWhcNMjIxMTI2MDkxMDQ5WjAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApD94ZkyAP6jWqDA5LBGO/UtnOgOY4SO1hdqcjHLQ/C9JRSEVzfQ5C8EqHYQ5yVrGHzi7D7MGG+s3k9hO7HWQMH5wZH9ZiTKZ22SVe1bMJVcSRWZvy1uRXLigleC+4K4DY+SI4R04fivMwotjmrm0fXAZhZvEnTXFtNTEN3cdaB5QBN/rbSgLtcOKqQdkrf6xKyKrxGM3RfHzGIfHcQgA36XZFxKzKq6uXBWA21ATNH/CFIPmSDMXDOaW5EcGj3/SZWPp5GLBlwo5f2yXjsK7loXvNtKBIS1yN75XxXN2XyaqWpGTGSl/HEJlGkGs0+mgo3PuC0FyxxtIkNAXRO2Z+QIDAQABoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4IBAQCMm4Tbm/jsY14SmYftnlbHMvxFTEQZ4/GkujOeeM2d/oa0lgUoHp2ErgAeoGz0LCC3y7yJAeYQGzDz2DP6rCVGXdkVybfptd3Bwq+adRSjVDL0RELat9nQB09p3Qk4TH4a/kFhWxQECShOlGx+uCV+FSKjohjftVk2kuQh8qyPrHDhIomMGWH1xsN+W17h5cfxGdGIT5o+szmKbVfxg2En7nVqnJfpYmmZQYoLanLaUd39/pb2I+FgMGIUWVSr23OHjD3YFHnHcBTXkNDXtHdhBKOY3MX6v74L6Iogm1JDbP26mH3YC5E622Fw1qDPjTqynRDZcQUYwfOIsTE3NLD2" ], "name": "id_token PS256 Sign Key", "exp": 1669453849923, "alg": "PS256", "n": "pD94ZkyAP6jWqDA5LBGO_UtnOgOY4SO1hdqcjHLQ_C9JRSEVzfQ5C8EqHYQ5yVrGHzi7D7MGG-s3k9hO7HWQMH5wZH9ZiTKZ22SVe1bMJVcSRWZvy1uRXLigleC-4K4DY-SI4R04fivMwotjmrm0fXAZhZvEnTXFtNTEN3cdaB5QBN_rbSgLtcOKqQdkrf6xKyKrxGM3RfHzGIfHcQgA36XZFxKzKq6uXBWA21ATNH_CFIPmSDMXDOaW5EcGj3_SZWPp5GLBlwo5f2yXjsK7loXvNtKBIS1yN75XxXN2XyaqWpGTGSl_HEJlGkGs0-mgo3PuC0FyxxtIkNAXRO2Z-Q" }, { "descr": "Signature Key: RSASSA-PSS using SHA-384 and MGF1 with SHA-384", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "38ffe65f-3d39-4167-b6d3-5693e7936b50_sig_ps384", "x5c": [ "MIIDcTCCAiWgAwIBAgIgSjJz2eN24/nEpy89IAIeTYxwmQJZK0n9FAWljbDXvWswQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgIFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgIFAKIDAgEwMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjIxMTI0MDkxMDQyWhcNMjIxMTI2MDkxMDQ5WjAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwIVjm8FWgPlcGVJRiKiEZe5KBLmN2Gev2owJGJkkiyIW2XSFnqJVqWK4tG7MgDJufgLd39stRG/AVBBVRAyfyhZEp9PGrMO7Elr3D0IN02sJlNevLwwPkE2YULaTktjd7tfCH+KNXyOEX+cQuKkICNGRO6tHhw7dE5NB87wq5a61SftsEm/yP6orMM5byddhXTWO5a663/Af5XDJ7MknDq6lndXUCU9Q9QHNWcOcJbqHuEnTcsX9xJR8TZ3O+teGhqQs47ET2NKWMd7udLoU+iIcpid27i6Q7MSKiG6ROI4U2lbIDILKfxw85O5CszOMiov5VU72zJ0GNDXtUA3x2wIDAQABoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgIFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgIFAKIDAgEwA4IBAQBz9Et1fgb3JyDSTj9bc5VSyPMVcEEpDVFKwg9JLqDKra92kf6ZdPu3Ap2IzEL0bARIr4/EI/mMlDTMVjNXpqk3u1FVrQ5tRl+0MqqA4eGyuS+Mx42mhZH5DlOKhaxTUMatu5FSDtpYBiq8zJwGVVox8t4/D6/Qa/Jf0F5nx3tH80sGPih5S2lQRy5AsVhF/QSZnUAXjjpbiCsH77WTqrA2+5RlpZzKnQxqKvbsf0oC2hThK8dGnM8ynMhnFuSGW/SmCxhpvhaCEvmF+DAVHXk0BVvie8ueWfPYxtPCLzwc3dnTRahdMUT3wbteW68G6OnPYvO6S+DtcGutX6Xyos9h" ], "name": "id_token PS384 Sign Key", "exp": 1669453849923, "alg": "PS384", "n": "wIVjm8FWgPlcGVJRiKiEZe5KBLmN2Gev2owJGJkkiyIW2XSFnqJVqWK4tG7MgDJufgLd39stRG_AVBBVRAyfyhZEp9PGrMO7Elr3D0IN02sJlNevLwwPkE2YULaTktjd7tfCH-KNXyOEX-cQuKkICNGRO6tHhw7dE5NB87wq5a61SftsEm_yP6orMM5byddhXTWO5a663_Af5XDJ7MknDq6lndXUCU9Q9QHNWcOcJbqHuEnTcsX9xJR8TZ3O-teGhqQs47ET2NKWMd7udLoU-iIcpid27i6Q7MSKiG6ROI4U2lbIDILKfxw85O5CszOMiov5VU72zJ0GNDXtUA3x2w" }, { "descr": "Signature Key: RSASSA-PSS using SHA-512 and MGF1 with SHA-512", "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "bc70aa2a-82be-429f-ac78-f5d0259aef75_sig_ps512", "x5c": [ "MIIDcjCCAiagAwIBAgIhANC7kC8SC+nC9bsp0Iwa/pi+We0n9tR60Xha4w41FUdaMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAIDBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIDBQCiAwIBQDAkMSIwIAYDVQQDDBlKYW5zIEF1dGggQ0EgQ2VydGlmaWNhdGVzMB4XDTIyMTEyNDA5MTA0M1oXDTIyMTEyNjA5MTA0OVowJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANnY+5aPZtW/p10ctzM88EqH8gbcQV193iBnFT35GjhpITUoTPf8gjne1menuvVmOJ8vtP74uNow4YzhaR/z5bjzXyQ4pGuq0mulj+8OrGigXMD86s9xtU+v5Gjp8WeJEh7RChmoHwexFj42s880XL/DBGaOVjnKdQ5CLKooXjhbLwN6UUo6QidYi9mKFKIs2HqndV/nQQTzt2BMXSdDzQqe3QcJdVlL+ZEVrcHwekJ/MSWcXueNDvVh6oG//oMmB5rBmp8+L5jlW+/yPFYJhSts+IwWjis+DeICqvZsCI7nJBuKF+3nx/Vi7oEgavewDXkW8Miha/UdydJxNwb4zjECAwEAAaMnMCUwIwYDVR0lBBwwGgYIKwYBBQUHAwEGCCsGAQUFBwMCBgRVHSUAMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAIDBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIDBQCiAwIBQAOCAQEAnE1c3DJQetYESVPCUuUgOOZYcurv0vthZ0wLQj8MaHThu7Gysq02HOtJuRRt48UzUdxEa8GQ6WgM9/aFqVtsQRYcLR1tqKXgUTJ+crlSHXXz7rfbmvTtnbPv30kynMfqa58u87/HjuGt3ZCFm+ha4h8h0Rr6yEUc9sWka6iSkvccIi9osy2pP1zOTL8sn6F5xf+EL1Oj2OqmtKtsn8zgRnV3C424AofebhLoindIXdYcsv1ClMv4slbu5CRnnaRMKedIT5qYD9Km2S8+sDBTXHkAbgN/eAh951ve/evcR2h9KQ6d4RAemucvWMzynkledHeHrF3ScYwmemHk9el+fg==" ], "name": "id_token PS512 Sign Key", "exp": 1669453849923, "alg": "PS512", "n": "2dj7lo9m1b-nXRy3MzzwSofyBtxBXX3eIGcVPfkaOGkhNShM9_yCOd7WZ6e69WY4ny-0_vi42jDhjOFpH_PluPNfJDika6rSa6WP7w6saKBcwPzqz3G1T6_kaOnxZ4kSHtEKGagfB7EWPjazzzRcv8MEZo5WOcp1DkIsqiheOFsvA3pRSjpCJ1iL2YoUoizYeqd1X-dBBPO3YExdJ0PNCp7dBwl1WUv5kRWtwfB6Qn8xJZxe540O9WHqgb_-gyYHmsGanz4vmOVb7_I8VgmFK2z4jBaOKz4N4gKq9mwIjuckG4oX7efH9WLugSBq97ANeRbwyKFr9R3J0nE3BvjOMQ" }, { "descr": "Encryption Key: RSAES-PKCS1-v1_5", "kty": "RSA", "e": "AQAB", "use": "enc", "kid": "f5840e59-f205-4ab5-9db4-6850a6eebe4a_enc_rsa1_5", "x5c": [ "MIIDCTCCAfGgAwIBAgIgFGrDv2JganfapqHzBf4Op0/0LZJpfSaLnRmJkC/fJzwwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDNaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDekmG1oLWi4TnSLCueF8HxtkUp/wEcCFWEJSrggcZFjAlYX7+Et+z2DN2CSdArTNeoMD1u+FyLrmrb+M8tYpOORZUOwQDHkjjrgaBlAC437IxoAffvT/Pt2j9+wv9gaPyxV8Gm8jCir+JKcHPUimiSRJh4oQAuvxucUBN9oneSoZcWAwxbTGNWAGAYCfHuY9nC5KoDxOOjqHF85TIjT8ygm7fvUwkwtUa2UgGhTkSB/RfDdlox/C02oVOOXl1p9BtvTZHXuZR2slQoNj9Nl3/EgwoGg2dBjuXzcWlsFvje/lX8WpAAkpIkCbhjZ71Sl0SAVZ4Q5QwwTa1ipv4BSfGzAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEAiDthgRx+VCYcf3JKT3W0iEIW80vsnO6QYdZ9nwof7ASnA+tGQLStwIxNPkNG6/qCWu4tVztW/X4eU9800ZDP5a1uhI3+N+JyrmkQce70NKuWBjRCd5NCEjO1RNEUqawTwE/x7QI1/6664D2k3JIaCLZ0mK+clj6Q5TgnxK2SKfFJtQbllETtObP6e/o3SKqYTnlTao83SHPZpwwhY15i3DkXFtCqP8LTZPr3BC/7HSMo8rVZsC2slpuUV3aQ1qmLqqVBVUr2zfpbeLvzOQ43bQWXFnw+VhwHNwrpt+o06OU9BIDJyWlM/hxdLOkW4gOibDouVzf02e8/y2PNrQ6m9A==" ], "name": "id_token RSA1_5 Encryption Key", "exp": 1669453849923, "alg": "RSA1_5", "n": "3pJhtaC1ouE50iwrnhfB8bZFKf8BHAhVhCUq4IHGRYwJWF-_hLfs9gzdgknQK0zXqDA9bvhci65q2_jPLWKTjkWVDsEAx5I464GgZQAuN-yMaAH370_z7do_fsL_YGj8sVfBpvIwoq_iSnBz1IpokkSYeKEALr8bnFATfaJ3kqGXFgMMW0xjVgBgGAnx7mPZwuSqA8Tjo6hxfOUyI0_MoJu371MJMLVGtlIBoU5Egf0Xw3ZaMfwtNqFTjl5dafQbb02R17mUdrJUKDY_TZd_xIMKBoNnQY7l83FpbBb43v5V_FqQAJKSJAm4Y2e9UpdEgFWeEOUMME2tYqb-AUnxsw" }, { "descr": "Encryption Key: RSAES OAEP using default parameters", "kty": "RSA", "e": "AQAB", "use": "enc", "kid": "4ca76322-fcfd-425d-974e-320e56f3e6b1_enc_rsa-oaep", "x5c": [ "MIIDCTCCAfGgAwIBAgIgeSysuyHahs0vLwl/R52r3qF8RRAFwn3kJYosQvgFmDAwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDNaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyvTOifACYeY6QYvYimNhASpxMxfEo5kMEGCxmA7675fhRmUZNkijCpz3uiQ6a0ajdrk041Q3MbuU/89V9n8Lb5BBTMrfVKLTw6SGAB3pRVqqrGn1XRljWJerXU3m3iOx6E63jR/9Gsk6OV6X8gT5LdJa2Md8cNtkeZotJlKlf09K8WDeR1ccPEbnVbV9KB2gvlMoqI9SSgTaLJRN/iUIs9flZ624prfE8bV4r5Q3ngehOO85rGzzflx5JZrim+I8nyv4wMfETqu2U2zbm1+HmruI25MdY0RhiEgLdAEQkJViu9159TPUqmCpqK5Jtn0+4w59FTkt2Y+XhnLut5JxdAgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEAPg0c9Wk3PmloWGPEjoWhJLpCp4yJpvuA1Quw0h/SHIHXLOWL0LR/zcWwv0kINyf3Q8A3pHmv9YoCKGeZTK4G3PL4VZpv1KzhoSUM6GUSSEXETEJIdgMS3mMSdAu2sRCmkVWglVEz+RRNErMzd0pv7zrL+VTvszP8e8Boq34CXJQR/3079Ea7E0nfD/F27qu9DlXctefmCfrZFt7NynyhWrfUvGFPDy0KOuELYq+zFYKPafiCJuIlRX8MwN+8UZLZut3To672Sr0POwshzQJoktpdx2jh7wAkJO8SyIyQ9BpvZf+7Omso2UdjbiTfELY9V3frmMLvplKCCH70YfB/2g==" ], "name": "id_token RSA-OAEP Encryption Key", "exp": 1669453849923, "alg": "RSA-OAEP", "n": "sr0zonwAmHmOkGL2IpjYQEqcTMXxKOZDBBgsZgO-u-X4UZlGTZIowqc97okOmtGo3a5NONUNzG7lP_PVfZ_C2-QQUzK31Si08OkhgAd6UVaqqxp9V0ZY1iXq11N5t4jsehOt40f_RrJOjlel_IE-S3SWtjHfHDbZHmaLSZSpX9PSvFg3kdXHDxG51W1fSgdoL5TKKiPUkoE2iyUTf4lCLPX5WetuKa3xPG1eK-UN54HoTjvOaxs835ceSWa4pviPJ8r-MDHxE6rtlNs25tfh5q7iNuTHWNEYYhIC3QBEJCVYrvdefUz1KpgqaiuSbZ9PuMOfRU5LdmPl4Zy7reScXQ" }, { "descr": "Encryption Key: Elliptic Curve Diffie-Hellman Ephemeral Static key agreement using Concat KDF", "kty": "EC", "use": "enc", "crv": "P-256", "kid": "b831ac74-5f55-44a7-a4d6-27dc719260b4_enc_ecdh-es", "x5c": [ "MIIBfTCCASOgAwIBAgIgBIQgN6qAFETKlTg27WaubCVcED6gcBHRfqYRjxwAIVIwCgYIKoZIzj0EAwIwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMjExMjQwOTEwNDRaFw0yMjExMjYwOTEwNDlaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ+gjebuvFbE2wBEpFWFu0KpdslUsIGwBw8x5MnBIfw/BVEon98mc42CuddOLuD7UxK5VU7C5ynXdrmfghGnn2ToycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwCgYIKoZIzj0EAwIDSAAwRQIgV5qVeBLYVoLIhEd1eEw2bOjtZaQfSnccpovaxvets5QCIQDTjFlIhnskTJ3GxF1XwDKN2agOKgRzIFQETYrQDmFfuA==" ], "name": "id_token ECDH-ES Encryption Key", "x": "PoI3m7rxWxNsARKRVhbtCqXbJVLCBsAcPMeTJwSH8Pw", "y": "FUSif3yZzjYK5104u4PtTErlVTsLnKdd2uZ-CEaefZM", "exp": 1669453849923, "alg": "ECDH-ES" } ] } 24-11 09:33:25.010 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:25.024 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:25.026 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:25.030 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:25.034 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:25.035 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:25.036 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:25.037 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:25.037 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:25.038 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:25.064 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:25.065 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:25.065 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:25.066 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:25.067 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:25.087 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:25.088 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:25.088 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:25.089 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:25.090 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:25.514 INFO com.intuit.karate.Logger Logger.java:104- [print] { "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "test12345-66f1-4b4a-92ec-d969522f4cbc_sig_rs256", "x5c": [ "MIIDCTCCAfGgAwIBAgIgTN/ufyTSP6YI3xSN3Gv/z0eh6D+NiVjAgoHilvQmJzQwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMTAyMjQxMzEwMjlaFw0yMTAyMjYxMzEwMzhaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyowxR94xQfv9qlTjtMutSLY3wKWIorgnzKZzAyEscNxqke6YwE+DsZ9OM5Zo3nk5LZpyJzJKk0jgL3ZR616j5j5d6tCmKt2DCQjnkeJjSRZz9A0XAE2RLW1taX37zKhtTNE9LJ4Wr/P3EioiW7Ax0w6QpBxbGFNmJ+HhzQrR8sXv8TtB47e1a/Zx/4lSx96VaVxaN8JQNGOlE5xcxUyzLZ64gdOEq8Igvt8R520jxMnguS5cNWR9ooZdyz13ujc+YYw2axFfTL96FDOUK5syXT52mF0XLcwPX2YTcKkTrIESiPNiSODqQMIxjs9MvJBEcJn8elBjrbltyb0yjBpV/AgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEAEBQVhijiNBC90nU0WNVsWeuoady7/XgQ0an0CKrmvrRTw+nVRWa8UxS5LJu6I+/GIsHs5P8NBN9/slUZJQ2+tAai2ZNyxm+c63Y3KY5Tth9bxVugJzFKNpbFh7zqQ9mlTkYierrhyzwk5iXRmtkDoRANwCcs0yvPN3aC0ZF+ESpUk+FlHKOzb0hpip7NumHPAHbLXpdk1SNLvr4kdYQ9ZQSuIZETBwr2bbQF8KxMEqQMY1nJuJvPLdkFS7Eg+LkfJbpKMXUwUOdOtU/HoO1njwPWhVN4xOoXalpQmTowu0yc7H2vtZPEIyKJcURgYekZGKiBWin9Z7gD6C14JB4kKg==" ], "exp": 1614345038838, "alg": "RS256", "n": "sqMMUfeMUH7_apU47TLrUi2N8CliKK4J8ymcwMhLHDcapHumMBPg7GfTjOWaN55OS2acicySpNI4C92Ueteo-Y-XerQpirdgwkI55HiY0kWc_QNFwBNkS1tbWl9-8yobUzRPSyeFq_z9xIqIluwMdMOkKQcWxhTZifh4c0K0fLF7_E7QeO3tWv2cf-JUsfelWlcWjfCUDRjpROcXMVMsy2euIHThKvCIL7fEedtI8TJ4LkuXDVkfaKGXcs9d7o3PmGMNmsRX0y_ehQzlCubMl0-dphdFy3MD19mE3CpE6yBEojzYkjg6kDCMY7PTLyQRHCZ_HpQY625bcm9MowaVfw" } 24-11 09:33:25.764 INFO com.intuit.karate.Logger Logger.java:104- [print] { "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "test12345-66f1-4b4a-92ec-d969522f4cbc_sig_rs256", "x5c": [ "MIIDCTCCAfGgAwIBAgIgTN/ufyTSP6YI3xSN3Gv/z0eh6D+NiVjAgoHilvQmJzQwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMTAyMjQxMzEwMjlaFw0yMTAyMjYxMzEwMzhaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyowxR94xQfv9qlTjtMutSLY3wKWIorgnzKZzAyEscNxqke6YwE+DsZ9OM5Zo3nk5LZpyJzJKk0jgL3ZR616j5j5d6tCmKt2DCQjnkeJjSRZz9A0XAE2RLW1taX37zKhtTNE9LJ4Wr/P3EioiW7Ax0w6QpBxbGFNmJ+HhzQrR8sXv8TtB47e1a/Zx/4lSx96VaVxaN8JQNGOlE5xcxUyzLZ64gdOEq8Igvt8R520jxMnguS5cNWR9ooZdyz13ujc+YYw2axFfTL96FDOUK5syXT52mF0XLcwPX2YTcKkTrIESiPNiSODqQMIxjs9MvJBEcJn8elBjrbltyb0yjBpV/AgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEAEBQVhijiNBC90nU0WNVsWeuoady7/XgQ0an0CKrmvrRTw+nVRWa8UxS5LJu6I+/GIsHs5P8NBN9/slUZJQ2+tAai2ZNyxm+c63Y3KY5Tth9bxVugJzFKNpbFh7zqQ9mlTkYierrhyzwk5iXRmtkDoRANwCcs0yvPN3aC0ZF+ESpUk+FlHKOzb0hpip7NumHPAHbLXpdk1SNLvr4kdYQ9ZQSuIZETBwr2bbQF8KxMEqQMY1nJuJvPLdkFS7Eg+LkfJbpKMXUwUOdOtU/HoO1njwPWhVN4xOoXalpQmTowu0yc7H2vtZPEIyKJcURgYekZGKiBWin9Z7gD6C14JB4kKg==" ], "exp": 1614345038838, "alg": "RS256", "n": "sqMMUfeMUH7_apU47TLrUi2N8CliKK4J8ymcwMhLHDcapHumMBPg7GfTjOWaN55OS2acicySpNI4C92Ueteo-Y-XerQpirdgwkI55HiY0kWc_QNFwBNkS1tbWl9-8yobUzRPSyeFq_z9xIqIluwMdMOkKQcWxhTZifh4c0K0fLF7_E7QeO3tWv2cf-JUsfelWlcWjfCUDRjpROcXMVMsy2euIHThKvCIL7fEedtI8TJ4LkuXDVkfaKGXcs9d7o3PmGMNmsRX0y_ehQzlCubMl0-dphdFy3MD19mE3CpE6yBEojzYkjg6kDCMY7PTLyQRHCZ_HpQY625bcm9MowaVfw" } 24-11 09:33:25.771 INFO com.intuit.karate.Logger Logger.java:104- [print] 1614345038838 24-11 09:33:25.778 INFO com.intuit.karate.Logger Logger.java:104- [print] 24-11 09:33:26.137 INFO com.intuit.karate.Logger Logger.java:104- [print] { "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "test12345-66f1-4b4a-92ec-d969522f4cbc_sig_rs256", "x5c": [ "MIIDCTCCAfGgAwIBAgIgTN/ufyTSP6YI3xSN3Gv/z0eh6D+NiVjAgoHilvQmJzQwDQYJKoZIhvcNAQELBQAwJDEiMCAGA1UEAwwZSmFucyBBdXRoIENBIENlcnRpZmljYXRlczAeFw0yMTAyMjQxMzEwMjlaFw0yMTAyMjYxMzEwMzhaMCQxIjAgBgNVBAMMGUphbnMgQXV0aCBDQSBDZXJ0aWZpY2F0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyowxR94xQfv9qlTjtMutSLY3wKWIorgnzKZzAyEscNxqke6YwE+DsZ9OM5Zo3nk5LZpyJzJKk0jgL3ZR616j5j5d6tCmKt2DCQjnkeJjSRZz9A0XAE2RLW1taX37zKhtTNE9LJ4Wr/P3EioiW7Ax0w6QpBxbGFNmJ+HhzQrR8sXv8TtB47e1a/Zx/4lSx96VaVxaN8JQNGOlE5xcxUyzLZ64gdOEq8Igvt8R520jxMnguS5cNWR9ooZdyz13ujc+YYw2axFfTL96FDOUK5syXT52mF0XLcwPX2YTcKkTrIESiPNiSODqQMIxjs9MvJBEcJn8elBjrbltyb0yjBpV/AgMBAAGjJzAlMCMGA1UdJQQcMBoGCCsGAQUFBwMBBggrBgEFBQcDAgYEVR0lADANBgkqhkiG9w0BAQsFAAOCAQEAEBQVhijiNBC90nU0WNVsWeuoady7/XgQ0an0CKrmvrRTw+nVRWa8UxS5LJu6I+/GIsHs5P8NBN9/slUZJQ2+tAai2ZNyxm+c63Y3KY5Tth9bxVugJzFKNpbFh7zqQ9mlTkYierrhyzwk5iXRmtkDoRANwCcs0yvPN3aC0ZF+ESpUk+FlHKOzb0hpip7NumHPAHbLXpdk1SNLvr4kdYQ9ZQSuIZETBwr2bbQF8KxMEqQMY1nJuJvPLdkFS7Eg+LkfJbpKMXUwUOdOtU/HoO1njwPWhVN4xOoXalpQmTowu0yc7H2vtZPEIyKJcURgYekZGKiBWin9Z7gD6C14JB4kKg==" ], "exp": 1614345038838, "alg": "RS256", "n": "sqMMUfeMUH7_apU47TLrUi2N8CliKK4J8ymcwMhLHDcapHumMBPg7GfTjOWaN55OS2acicySpNI4C92Ueteo-Y-XerQpirdgwkI55HiY0kWc_QNFwBNkS1tbWl9-8yobUzRPSyeFq_z9xIqIluwMdMOkKQcWxhTZifh4c0K0fLF7_E7QeO3tWv2cf-JUsfelWlcWjfCUDRjpROcXMVMsy2euIHThKvCIL7fEedtI8TJ4LkuXDVkfaKGXcs9d7o3PmGMNmsRX0y_ehQzlCubMl0-dphdFy3MD19mE3CpE6yBEojzYkjg6kDCMY7PTLyQRHCZ_HpQY625bcm9MowaVfw" } 24-11 09:33:26.512 INFO com.intuit.karate.Runner Runner.java:264- <> feature 3 of 47: src/test/resources/feature/config/jwks/jwks.feature --------------------------------------------------------- feature: src/test/resources/feature/config/jwks/jwks.feature report: target/surefire-reports/src.test.resources.feature.config.jwks.jwks.json scenarios: 5 | passed: 5 | failed: 0 | time: 3.4578 --------------------------------------------------------- 24-11 09:33:26.551 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:26.551 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:26.552 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:26.552 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:26.553 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:26.554 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:26.555 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:26.556 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:26.556 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:26.557 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:26.572 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:26.572 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:26.573 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:26.573 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:26.581 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:26.581 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:26.582 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:26.582 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:26.583 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:26.583 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:26.663 INFO com.intuit.karate.Logger Logger.java:104- [print] ONLY TOKEN BASED AUTHORIZATION IS SUPPORTED! 24-11 09:33:26.683 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:26.683 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:26.684 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:26.684 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:26.686 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:26.687 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:26.687 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:26.688 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:26.688 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:26.689 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:26.696 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:26.696 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:26.697 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:26.697 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:26.699 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:26.699 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:26.700 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:26.700 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:26.701 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:26.701 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:26.977 INFO com.intuit.karate.Logger Logger.java:104- [print] { "cacheProviderType": "NATIVE_PERSISTENCE", "nativePersistenceConfiguration": { "deleteExpiredOnGetRequest": false, "defaultCleanupBatchSize": 10000, "disableAttemptUpdateBeforeInsert": false, "defaultPutExpiration": 60 }, "inMemoryConfiguration": { "defaultPutExpiration": 60 }, "redisConfiguration": { "servers": "localhost:6379", "maxTotalConnections": 500, "redisProviderType": "STANDALONE", "maxIdleConnections": 10, "connectionTimeout": 3000, "soTimeout": 3000, "defaultPutExpiration": 60, "useSSL": false, "maxRetryAttempts": 5 }, "memcachedConfiguration": { "connectionFactoryType": "DEFAULT", "servers": "localhost:11211", "maxOperationQueueLength": 100000, "bufferSize": 32768, "defaultPutExpiration": 60 } } 24-11 09:33:26.986 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:26.987 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:26.987 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:26.987 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:26.989 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:26.989 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:26.989 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:26.990 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:26.990 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:26.990 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:26.994 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:26.995 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:26.995 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:26.995 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:26.997 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:26.997 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:26.997 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:26.998 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:26.998 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:26.998 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:27.268 INFO com.intuit.karate.Logger Logger.java:104- [print] { "cacheProviderType": "NATIVE_PERSISTENCE", "nativePersistenceConfiguration": { "deleteExpiredOnGetRequest": false, "defaultCleanupBatchSize": 10000, "disableAttemptUpdateBeforeInsert": false, "defaultPutExpiration": 60 }, "inMemoryConfiguration": { "defaultPutExpiration": 60 }, "redisConfiguration": { "servers": "localhost:6379", "maxTotalConnections": 500, "redisProviderType": "STANDALONE", "maxIdleConnections": 10, "connectionTimeout": 3000, "soTimeout": 3000, "defaultPutExpiration": 60, "useSSL": false, "maxRetryAttempts": 5 }, "memcachedConfiguration": { "connectionFactoryType": "DEFAULT", "servers": "localhost:11211", "maxOperationQueueLength": 100000, "bufferSize": 32768, "defaultPutExpiration": 60 } } 24-11 09:33:27.274 INFO com.intuit.karate.Logger Logger.java:104- [print] NATIVE_PERSISTENCE 24-11 09:33:27.281 INFO com.intuit.karate.Logger Logger.java:104- [print] 24-11 09:33:27.587 INFO com.intuit.karate.Logger Logger.java:104- [print] { "cacheProviderType": "NATIVE_PERSISTENCE", "nativePersistenceConfiguration": { "deleteExpiredOnGetRequest": false, "defaultCleanupBatchSize": 10000, "disableAttemptUpdateBeforeInsert": false, "defaultPutExpiration": 60 }, "inMemoryConfiguration": { "defaultPutExpiration": 60 }, "redisConfiguration": { "servers": "localhost:6379", "maxTotalConnections": 500, "redisProviderType": "STANDALONE", "maxIdleConnections": 10, "connectionTimeout": 3000, "soTimeout": 3000, "defaultPutExpiration": 60, "useSSL": false, "maxRetryAttempts": 5 }, "memcachedConfiguration": { "connectionFactoryType": "DEFAULT", "servers": "localhost:11211", "maxOperationQueueLength": 100000, "bufferSize": 32768, "defaultPutExpiration": 60 } } 24-11 09:33:27.596 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:27.597 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:27.597 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:27.597 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:27.598 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:27.599 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:27.599 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:27.599 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:27.599 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:27.599 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:27.603 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:27.603 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:27.603 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:27.604 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:27.605 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:27.605 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:27.605 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:27.605 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:27.606 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:27.606 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:27.893 INFO com.intuit.karate.Logger Logger.java:104- [print] { "cacheProviderType": "NATIVE_PERSISTENCE", "nativePersistenceConfiguration": { "deleteExpiredOnGetRequest": false, "defaultCleanupBatchSize": 10000, "disableAttemptUpdateBeforeInsert": false, "defaultPutExpiration": 60 }, "inMemoryConfiguration": { "defaultPutExpiration": 60 }, "redisConfiguration": { "servers": "localhost:6379", "maxTotalConnections": 500, "redisProviderType": "STANDALONE", "maxIdleConnections": 10, "connectionTimeout": 3000, "soTimeout": 3000, "defaultPutExpiration": 60, "useSSL": false, "maxRetryAttempts": 5 }, "memcachedConfiguration": { "connectionFactoryType": "DEFAULT", "servers": "localhost:11211", "maxOperationQueueLength": 100000, "bufferSize": 32768, "defaultPutExpiration": 60 } } 24-11 09:33:27.899 INFO com.intuit.karate.Logger Logger.java:104- [print] { "deleteExpiredOnGetRequest": false, "defaultCleanupBatchSize": 10000, "disableAttemptUpdateBeforeInsert": false, "defaultPutExpiration": 60 } 24-11 09:33:27.906 INFO com.intuit.karate.Logger Logger.java:104- [print] 24-11 09:33:28.218 INFO com.intuit.karate.Logger Logger.java:104- [print] { "cacheProviderType": "NATIVE_PERSISTENCE", "nativePersistenceConfiguration": { "deleteExpiredOnGetRequest": false, "defaultCleanupBatchSize": 10000, "disableAttemptUpdateBeforeInsert": false, "defaultPutExpiration": 60 }, "inMemoryConfiguration": { "defaultPutExpiration": 60 }, "redisConfiguration": { "servers": "localhost:6379", "maxTotalConnections": 500, "redisProviderType": "STANDALONE", "maxIdleConnections": 10, "connectionTimeout": 3000, "soTimeout": 3000, "defaultPutExpiration": 60, "useSSL": false, "maxRetryAttempts": 5 }, "memcachedConfiguration": { "connectionFactoryType": "DEFAULT", "servers": "localhost:11211", "maxOperationQueueLength": 100000, "bufferSize": 32768, "defaultPutExpiration": 60 } } 24-11 09:33:28.230 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:28.231 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:28.231 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:28.231 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:28.234 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:28.236 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:28.236 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:28.237 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:28.237 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:28.237 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:28.242 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:28.243 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:28.243 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:28.244 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:28.245 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:28.246 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:28.246 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:28.246 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:28.247 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:28.247 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:28.508 INFO com.intuit.karate.Logger Logger.java:104- [print] { "cacheProviderType": "NATIVE_PERSISTENCE", "nativePersistenceConfiguration": { "deleteExpiredOnGetRequest": false, "defaultCleanupBatchSize": 10000, "disableAttemptUpdateBeforeInsert": false, "defaultPutExpiration": 60 }, "inMemoryConfiguration": { "defaultPutExpiration": 60 }, "redisConfiguration": { "servers": "localhost:6379", "maxTotalConnections": 500, "redisProviderType": "STANDALONE", "maxIdleConnections": 10, "connectionTimeout": 3000, "soTimeout": 3000, "defaultPutExpiration": 60, "useSSL": false, "maxRetryAttempts": 5 }, "memcachedConfiguration": { "connectionFactoryType": "DEFAULT", "servers": "localhost:11211", "maxOperationQueueLength": 100000, "bufferSize": 32768, "defaultPutExpiration": 60 } } 24-11 09:33:28.513 INFO com.intuit.karate.Logger Logger.java:104- [print] { "defaultPutExpiration": 60 } 24-11 09:33:28.525 INFO com.intuit.karate.Logger Logger.java:104- [print] 24-11 09:33:28.824 INFO com.intuit.karate.Logger Logger.java:104- [print] { "cacheProviderType": "NATIVE_PERSISTENCE", "nativePersistenceConfiguration": { "deleteExpiredOnGetRequest": false, "defaultCleanupBatchSize": 10000, "disableAttemptUpdateBeforeInsert": false, "defaultPutExpiration": 60 }, "inMemoryConfiguration": { "defaultPutExpiration": 60 }, "redisConfiguration": { "servers": "localhost:6379", "maxTotalConnections": 500, "redisProviderType": "STANDALONE", "maxIdleConnections": 10, "connectionTimeout": 3000, "soTimeout": 3000, "defaultPutExpiration": 60, "useSSL": false, "maxRetryAttempts": 5 }, "memcachedConfiguration": { "connectionFactoryType": "DEFAULT", "servers": "localhost:11211", "maxOperationQueueLength": 100000, "bufferSize": 32768, "defaultPutExpiration": 60 } } 24-11 09:33:28.832 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:28.833 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:28.833 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:28.833 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:28.838 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:28.838 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:28.839 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:28.839 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:28.839 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:28.844 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:28.851 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:28.852 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:28.852 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:28.852 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:28.853 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:28.854 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:28.854 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:28.854 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:28.855 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:28.855 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:29.134 INFO com.intuit.karate.Logger Logger.java:104- [print] { "cacheProviderType": "NATIVE_PERSISTENCE", "nativePersistenceConfiguration": { "deleteExpiredOnGetRequest": false, "defaultCleanupBatchSize": 10000, "disableAttemptUpdateBeforeInsert": false, "defaultPutExpiration": 60 }, "inMemoryConfiguration": { "defaultPutExpiration": 60 }, "redisConfiguration": { "servers": "localhost:6379", "maxTotalConnections": 500, "redisProviderType": "STANDALONE", "maxIdleConnections": 10, "connectionTimeout": 3000, "soTimeout": 3000, "defaultPutExpiration": 60, "useSSL": false, "maxRetryAttempts": 5 }, "memcachedConfiguration": { "connectionFactoryType": "DEFAULT", "servers": "localhost:11211", "maxOperationQueueLength": 100000, "bufferSize": 32768, "defaultPutExpiration": 60 } } 24-11 09:33:29.141 INFO com.intuit.karate.Logger Logger.java:104- [print] { "servers": "localhost:6379", "maxTotalConnections": 500, "redisProviderType": "STANDALONE", "maxIdleConnections": 10, "connectionTimeout": 3000, "soTimeout": 3000, "defaultPutExpiration": 60, "useSSL": false, "maxRetryAttempts": 5 } 24-11 09:33:29.146 INFO com.intuit.karate.Logger Logger.java:104- [print] 24-11 09:33:29.440 INFO com.intuit.karate.Logger Logger.java:104- [print] { "cacheProviderType": "NATIVE_PERSISTENCE", "nativePersistenceConfiguration": { "deleteExpiredOnGetRequest": false, "defaultCleanupBatchSize": 10000, "disableAttemptUpdateBeforeInsert": false, "defaultPutExpiration": 60 }, "inMemoryConfiguration": { "defaultPutExpiration": 60 }, "redisConfiguration": { "servers": "localhost:6379", "maxTotalConnections": 500, "redisProviderType": "STANDALONE", "maxIdleConnections": 10, "connectionTimeout": 3000, "soTimeout": 3000, "defaultPutExpiration": 60, "useSSL": false, "maxRetryAttempts": 5 }, "memcachedConfiguration": { "connectionFactoryType": "DEFAULT", "servers": "localhost:11211", "maxOperationQueueLength": 100000, "bufferSize": 32768, "defaultPutExpiration": 60 } } 24-11 09:33:29.449 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:29.449 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:29.450 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:29.450 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:29.451 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:29.451 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:29.451 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:29.452 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:29.452 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:29.452 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:29.456 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:29.456 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:29.456 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:29.457 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:29.458 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:29.458 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:29.459 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:29.459 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:29.459 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:29.460 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:29.711 INFO com.intuit.karate.Logger Logger.java:104- [print] { "cacheProviderType": "NATIVE_PERSISTENCE", "nativePersistenceConfiguration": { "deleteExpiredOnGetRequest": false, "defaultCleanupBatchSize": 10000, "disableAttemptUpdateBeforeInsert": false, "defaultPutExpiration": 60 }, "inMemoryConfiguration": { "defaultPutExpiration": 60 }, "redisConfiguration": { "servers": "localhost:6379", "maxTotalConnections": 500, "redisProviderType": "STANDALONE", "maxIdleConnections": 10, "connectionTimeout": 3000, "soTimeout": 3000, "defaultPutExpiration": 60, "useSSL": false, "maxRetryAttempts": 5 }, "memcachedConfiguration": { "connectionFactoryType": "DEFAULT", "servers": "localhost:11211", "maxOperationQueueLength": 100000, "bufferSize": 32768, "defaultPutExpiration": 60 } } 24-11 09:33:29.718 INFO com.intuit.karate.Logger Logger.java:104- [print] { "connectionFactoryType": "DEFAULT", "servers": "localhost:11211", "maxOperationQueueLength": 100000, "bufferSize": 32768, "defaultPutExpiration": 60 } 24-11 09:33:29.727 INFO com.intuit.karate.Logger Logger.java:104- [print] 24-11 09:33:30.019 INFO com.intuit.karate.Logger Logger.java:104- [print] { "cacheProviderType": "NATIVE_PERSISTENCE", "nativePersistenceConfiguration": { "deleteExpiredOnGetRequest": false, "defaultCleanupBatchSize": 10000, "disableAttemptUpdateBeforeInsert": false, "defaultPutExpiration": 60 }, "inMemoryConfiguration": { "defaultPutExpiration": 60 }, "redisConfiguration": { "servers": "localhost:6379", "maxTotalConnections": 500, "redisProviderType": "STANDALONE", "maxIdleConnections": 10, "connectionTimeout": 3000, "soTimeout": 3000, "defaultPutExpiration": 60, "useSSL": false, "maxRetryAttempts": 5 }, "memcachedConfiguration": { "connectionFactoryType": "DEFAULT", "servers": "localhost:11211", "maxOperationQueueLength": 100000, "bufferSize": 32768, "defaultPutExpiration": 60 } } 24-11 09:33:30.030 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:30.032 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:30.032 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:30.032 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:30.034 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:30.035 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:30.035 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:30.035 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:30.036 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:30.036 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:30.042 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:30.042 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:30.042 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:30.043 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:30.044 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:30.044 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:30.045 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:30.045 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:30.045 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:30.054 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:30.320 INFO com.intuit.karate.Logger Logger.java:104- [print] { "servers": "localhost:6379", "maxTotalConnections": 500, "redisProviderType": "STANDALONE", "maxIdleConnections": 10, "connectionTimeout": 3000, "soTimeout": 3000, "defaultPutExpiration": 60, "useSSL": false, "maxRetryAttempts": 5 } 24-11 09:33:30.331 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:30.331 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:30.331 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:30.331 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:30.333 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:30.333 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:30.334 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:30.334 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:30.334 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:30.335 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:30.340 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:30.340 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:30.340 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:30.341 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:30.342 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:30.342 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:30.343 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:30.343 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:30.343 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:30.344 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:30.597 INFO com.intuit.karate.Logger Logger.java:104- [print] { "servers": "localhost:6379", "maxTotalConnections": 500, "redisProviderType": "STANDALONE", "maxIdleConnections": 10, "connectionTimeout": 3000, "soTimeout": 3000, "defaultPutExpiration": 60, "useSSL": false, "maxRetryAttempts": 5 } 24-11 09:33:30.902 INFO com.intuit.karate.Logger Logger.java:104- [print] { "servers": "localhost:6379", "maxTotalConnections": 500, "redisProviderType": "STANDALONE", "maxIdleConnections": 10, "connectionTimeout": 3000, "soTimeout": 3000, "defaultPutExpiration": 60, "useSSL": false, "maxRetryAttempts": 5 } 24-11 09:33:30.914 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:30.914 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:30.914 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:30.915 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:30.916 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:30.916 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:30.916 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:30.917 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:30.917 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:30.917 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:30.925 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:30.925 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:30.926 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:30.926 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:30.927 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:30.928 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:30.928 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:30.928 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:30.929 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:30.929 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:31.189 INFO com.intuit.karate.Logger Logger.java:104- [print] { "servers": "localhost:6379", "maxTotalConnections": 500, "redisProviderType": "STANDALONE", "maxIdleConnections": 10, "connectionTimeout": 3000, "soTimeout": 3000, "defaultPutExpiration": 60, "useSSL": false, "maxRetryAttempts": 5 } 24-11 09:33:31.198 INFO com.intuit.karate.Logger Logger.java:104- [print] 24-11 09:33:31.610 INFO com.intuit.karate.Logger Logger.java:104- [print] { "servers": "localhost:6379", "maxTotalConnections": 500, "redisProviderType": "STANDALONE", "maxIdleConnections": 10, "connectionTimeout": 3000, "soTimeout": 3000, "defaultPutExpiration": 60, "useSSL": false, "maxRetryAttempts": 5 } 24-11 09:33:31.620 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:31.620 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:31.620 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:31.620 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:31.622 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:31.622 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:31.622 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:31.623 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:31.623 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:31.623 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:31.645 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:31.645 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:31.646 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:31.646 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:31.647 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:31.648 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:31.648 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:31.648 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:31.649 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:31.649 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:31.915 INFO com.intuit.karate.Logger Logger.java:104- [print] { "defaultPutExpiration": 60 } 24-11 09:33:31.926 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:31.926 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:31.926 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:31.926 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:31.927 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:31.928 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:31.928 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:31.928 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:31.928 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:31.929 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:31.938 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:31.939 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:31.939 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:31.939 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:31.940 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:31.941 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:31.941 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:31.941 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:31.941 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:31.942 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:32.218 INFO com.intuit.karate.Logger Logger.java:104- [print] { "defaultPutExpiration": 60 } 24-11 09:33:32.511 INFO com.intuit.karate.Logger Logger.java:104- [print] { "defaultPutExpiration": 60 } 24-11 09:33:32.528 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:32.528 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:32.528 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:32.529 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:32.530 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:32.530 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:32.531 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:32.531 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:32.531 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:32.531 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:32.546 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:32.547 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:32.547 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:32.547 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:32.548 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:32.548 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:32.549 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:32.549 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:32.549 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:32.549 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:32.811 INFO com.intuit.karate.Logger Logger.java:104- [print] { "defaultPutExpiration": 60 } 24-11 09:33:32.822 INFO com.intuit.karate.Logger Logger.java:104- [print] 24-11 09:33:33.164 INFO com.intuit.karate.Logger Logger.java:104- [print] { "defaultPutExpiration": 60 } 24-11 09:33:33.176 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:33.177 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:33.177 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:33.177 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:33.179 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:33.180 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:33.180 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:33.180 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:33.180 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:33.181 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:33.187 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:33.187 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:33.187 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:33.188 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:33.189 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:33.189 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:33.190 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:33.190 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:33.190 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:33.191 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:33.458 INFO com.intuit.karate.Logger Logger.java:104- [print] { "deleteExpiredOnGetRequest": false, "defaultCleanupBatchSize": 10000, "disableAttemptUpdateBeforeInsert": false, "defaultPutExpiration": 60 } 24-11 09:33:33.470 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:33.470 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:33.470 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:33.471 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:33.473 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:33.473 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:33.474 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:33.474 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:33.474 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:33.475 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:33.482 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:33.482 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:33.483 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:33.483 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:33.485 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:33.485 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:33.485 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:33.486 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:33.486 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:33.486 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:33.744 INFO com.intuit.karate.Logger Logger.java:104- [print] { "deleteExpiredOnGetRequest": false, "defaultCleanupBatchSize": 10000, "disableAttemptUpdateBeforeInsert": false, "defaultPutExpiration": 60 } 24-11 09:33:34.023 INFO com.intuit.karate.Logger Logger.java:104- [print] { "deleteExpiredOnGetRequest": false, "defaultCleanupBatchSize": 10000, "disableAttemptUpdateBeforeInsert": false, "defaultPutExpiration": 60 } 24-11 09:33:34.032 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:34.032 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:34.032 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:34.032 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:34.033 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:34.033 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:34.033 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:34.034 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:34.034 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:34.034 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:34.037 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:34.037 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:34.038 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:34.038 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:34.039 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:34.039 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:34.039 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:34.039 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:34.040 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:34.040 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:34.291 INFO com.intuit.karate.Logger Logger.java:104- [print] { "deleteExpiredOnGetRequest": false, "defaultCleanupBatchSize": 10000, "disableAttemptUpdateBeforeInsert": false, "defaultPutExpiration": 60 } 24-11 09:33:34.294 INFO com.intuit.karate.Logger Logger.java:104- [print] 24-11 09:33:34.640 INFO com.intuit.karate.Logger Logger.java:104- [print] { "deleteExpiredOnGetRequest": false, "defaultCleanupBatchSize": 10000, "disableAttemptUpdateBeforeInsert": false, "defaultPutExpiration": 60 } 24-11 09:33:34.648 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:34.649 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:34.649 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:34.649 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:34.650 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:34.651 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:34.651 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:34.651 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:34.652 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:34.652 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:34.655 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:34.656 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:34.656 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:34.656 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:34.657 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:34.658 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:34.658 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:34.658 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:34.659 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:34.659 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:34.912 INFO com.intuit.karate.Logger Logger.java:104- [print] { "connectionFactoryType": "DEFAULT", "servers": "localhost:11211", "maxOperationQueueLength": 100000, "bufferSize": 32768, "defaultPutExpiration": 60 } 24-11 09:33:34.920 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:34.920 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:34.921 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:34.921 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:34.921 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:34.922 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:34.922 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:34.922 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:34.922 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:34.923 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:34.926 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:34.926 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:34.926 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:34.926 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:34.927 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:34.928 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:34.928 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:34.928 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:34.928 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:34.928 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:35.177 INFO com.intuit.karate.Logger Logger.java:104- [print] { "connectionFactoryType": "DEFAULT", "servers": "localhost:11211", "maxOperationQueueLength": 100000, "bufferSize": 32768, "defaultPutExpiration": 60 } 24-11 09:33:35.456 INFO com.intuit.karate.Logger Logger.java:104- [print] { "connectionFactoryType": "DEFAULT", "servers": "localhost:11211", "maxOperationQueueLength": 100000, "bufferSize": 32768, "defaultPutExpiration": 60 } 24-11 09:33:35.463 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:35.463 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:35.464 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:35.464 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:35.465 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:35.465 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:35.465 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:35.465 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:35.466 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:35.466 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:35.473 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:35.474 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:35.474 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:35.474 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:35.476 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:35.476 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:35.477 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:35.477 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:35.477 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:35.477 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:35.727 INFO com.intuit.karate.Logger Logger.java:104- [print] { "connectionFactoryType": "DEFAULT", "servers": "localhost:11211", "maxOperationQueueLength": 100000, "bufferSize": 32768, "defaultPutExpiration": 60 } 24-11 09:33:35.730 INFO com.intuit.karate.Logger Logger.java:104- [print] 24-11 09:33:36.070 INFO com.intuit.karate.Logger Logger.java:104- [print] { "connectionFactoryType": "DEFAULT", "servers": "localhost:11211", "maxOperationQueueLength": 100000, "bufferSize": 32768, "defaultPutExpiration": 60 } 24-11 09:33:36.128 INFO com.intuit.karate.Runner Runner.java:264- <> feature 4 of 47: src/test/resources/feature/config/cache/cache.feature --------------------------------------------------------- feature: src/test/resources/feature/config/cache/cache.feature report: target/surefire-reports/src.test.resources.feature.config.cache.cache.json scenarios: 19 | passed: 19 | failed: 0 | time: 8.9560 --------------------------------------------------------- 24-11 09:33:36.136 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:36.136 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:36.137 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:36.137 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:36.137 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:36.138 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:36.138 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:36.138 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:36.138 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:36.138 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:36.141 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:36.141 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:36.141 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:36.141 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:36.142 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:36.153 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:36.153 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:36.153 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:36.153 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:36.153 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:36.429 INFO com.intuit.karate.Logger Logger.java:104- [print] [ { "bindPassword": "cYUlZmqTcrk3faFR3+J5F0kL+ZC8XMiF", "level": 0, "localPrimaryKey": "uid", "version": 0, "enabled": false, "useSSL": true, "bindDN": "cn=directory manager", "servers": [ "localhost:1636" ], "baseDNs": [ "ou=people,o=jans" ], "configId": "auth_ldap_server", "useAnonymousBind": false, "maxConnections": 1000, "primaryKey": "uid" } ] 24-11 09:33:36.466 INFO com.intuit.karate.Runner Runner.java:264- <> feature 5 of 47: src/test/resources/feature/config/database/ldap/get-ldap-config.feature --------------------------------------------------------- feature: src/test/resources/feature/config/database/ldap/get-ldap-config.feature report: target/surefire-reports/src.test.resources.feature.config.database.ldap.get-ldap-config.json scenarios: 1 | passed: 1 | failed: 0 | time: 0.2753 --------------------------------------------------------- 24-11 09:33:36.476 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:36.476 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:36.476 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:36.476 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:36.477 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:36.477 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:36.478 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:36.478 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:36.478 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:36.478 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:36.482 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:36.483 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:36.483 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:36.483 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:36.483 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:36.484 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:36.484 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:36.484 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:36.484 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:36.484 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:36.778 INFO com.intuit.karate.Logger Logger.java:104- [print] [ { "bindPassword": "cYUlZmqTcrk3faFR3+J5F0kL+ZC8XMiF", "level": 0, "localPrimaryKey": "uid", "version": 0, "enabled": false, "useSSL": true, "bindDN": "cn=directory manager", "servers": [ "localhost:1636" ], "baseDNs": [ "ou=people,o=jans" ], "configId": "auth_ldap_server", "useAnonymousBind": false, "maxConnections": 1000, "primaryKey": "uid" } ] 24-11 09:33:36.809 INFO com.intuit.karate.Logger Logger.java:104- [print] ONLY TOKEN BASED AUTHORIZATION IS SUPPORTED! 24-11 09:33:36.818 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:36.819 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:36.819 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:36.819 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:36.820 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:36.820 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:36.820 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:36.821 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:36.821 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:36.821 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:36.824 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:36.825 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:36.825 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:36.825 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:36.826 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:36.826 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:36.826 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:36.826 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:36.827 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:36.827 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:37.086 INFO com.intuit.karate.Logger Logger.java:104- [print] [ { "bindPassword": "cYUlZmqTcrk3faFR3+J5F0kL+ZC8XMiF", "level": 0, "localPrimaryKey": "uid", "version": 0, "enabled": false, "useSSL": true, "bindDN": "cn=directory manager", "servers": [ "localhost:1636" ], "baseDNs": [ "ou=people,o=jans" ], "configId": "auth_ldap_server", "useAnonymousBind": false, "maxConnections": 1000, "primaryKey": "uid" } ] 24-11 09:33:37.088 INFO com.intuit.karate.Logger Logger.java:104- [print] { "jwksUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/jwks", "auth_health_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/jans-auth-server/health", "authConfigurationUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/jans-auth-server/config", "healthUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/health", "__loop": -1, "issuer": "https://jenkins-build.jans.io", "statUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/stat", "__arg": null, "responseType": "json", "ldapUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/database/ldap", "user_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/user", "openidclients_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients", "responseCookies": null, "scopes_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/scopes", "acrsUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/acrs", "cacheUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/cache", "responseTime": 245, "scriptsUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/scripts", "session_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/jans-auth-server/session", "testProps": { "test.client.id": "1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948", "token.endpoint": "https://jenkins-build.jans.io/jans-auth/restv1/token", "token.grant.type": "client_credentials", "test.issuer": "https://jenkins-build.jans.io", "test.client.secret": "MdZvQhEZ3JsG", "test.scopes": "https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write" }, "env": "dev", "accessToken": "86338509-2112-409e-98ae-4d3e55ded0fe", "responseStatus": 200, "org_configuration_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/org", "attributes_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/attributes", "smtp_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/smtp", "baseUrl": "https://jenkins-build.jans.io", "responseHeaders": { "Date": [ "Thu, 24 Nov 2022 09:33:36 GMT" ], "Server": [ "Apache/2.4.41 (Ubuntu)" ], "X-Xss-Protection": [ "1; mode=block" ], "X-Content-Type-Options": [ "nosniff" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "Content-Type": [ "application/json" ], "Content-Length": [ "317" ], "Keep-Alive": [ "timeout=5, max=100" ], "Connection": [ "Keep-Alive" ] }, "response": [ { "bindPassword": "cYUlZmqTcrk3faFR3+J5F0kL+ZC8XMiF", "level": 0, "localPrimaryKey": "uid", "version": 0, "enabled": false, "useSSL": true, "bindDN": "cn=directory manager", "servers": [ "localhost:1636" ], "baseDNs": [ "ou=people,o=jans" ], "configId": "auth_ldap_server", "useAnonymousBind": false, "maxConnections": 1000, "primaryKey": "uid" } ], "umaresources_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/uma/resources", "agama_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/agama", "requestTimeStamp": 1669282416841, "mainUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/database/ldap", "logging_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/logging" } 24-11 09:33:37.092 INFO com.intuit.karate.Logger Logger.java:104- [print] [ { "bindPassword": "cYUlZmqTcrk3faFR3+J5F0kL+ZC8XMiF", "level": 0, "localPrimaryKey": "uid", "version": 0, "enabled": false, "useSSL": true, "bindDN": "cn=directory manager", "servers": [ "localhost:1636" ], "baseDNs": [ "ou=people,o=jans" ], "configId": "auth_ldap_server", "useAnonymousBind": false, "maxConnections": 1000, "primaryKey": "uid" } ] 24-11 09:33:37.347 INFO com.intuit.karate.Logger Logger.java:104- [print] { "bindPassword": "cYUlZmqTcrk3faFR3+J5F0kL+ZC8XMiF", "level": 0, "localPrimaryKey": "uid", "version": 0, "enabled": false, "useSSL": true, "bindDN": "cn=directory manager", "servers": [ "localhost:1636" ], "baseDNs": [ "ou=people,o=jans" ], "configId": "auth_ldap_server", "useAnonymousBind": false, "maxConnections": 1000, "primaryKey": "uid" } 24-11 09:33:37.359 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:37.360 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:37.360 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:37.360 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:37.362 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:37.362 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:37.362 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:37.362 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:37.362 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:37.363 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:37.368 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:37.368 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:37.369 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:37.369 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:37.370 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:37.370 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:37.371 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:37.371 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:37.371 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:37.371 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:37.637 INFO com.intuit.karate.Logger Logger.java:104- [print] [ { "bindPassword": "cYUlZmqTcrk3faFR3+J5F0kL+ZC8XMiF", "level": 0, "localPrimaryKey": "uid", "version": 0, "enabled": false, "useSSL": true, "bindDN": "cn=directory manager", "servers": [ "localhost:1636" ], "baseDNs": [ "ou=people,o=jans" ], "configId": "auth_ldap_server", "useAnonymousBind": false, "maxConnections": 1000, "primaryKey": "uid" } ] 24-11 09:33:37.913 INFO com.intuit.karate.Logger Logger.java:104- [print] { "code": "404", "message": "The requested Ldap Configuration - 'Non-existing-ldap' doesn't exist" } 24-11 09:33:37.924 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:37.924 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:37.924 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:37.925 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:37.925 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:37.926 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:37.926 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:37.926 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:37.927 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:37.927 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:37.930 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:37.931 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:37.931 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:37.931 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:37.932 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:37.932 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:37.932 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:37.932 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:37.933 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:37.933 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:38.202 INFO com.intuit.karate.Logger Logger.java:104- [print] [ { "bindPassword": "cYUlZmqTcrk3faFR3+J5F0kL+ZC8XMiF", "level": 0, "localPrimaryKey": "uid", "version": 0, "enabled": false, "useSSL": true, "bindDN": "cn=directory manager", "servers": [ "localhost:1636" ], "baseDNs": [ "ou=people,o=jans" ], "configId": "auth_ldap_server", "useAnonymousBind": false, "maxConnections": 1000, "primaryKey": "uid" } ] 24-11 09:33:38.479 INFO com.intuit.karate.Logger Logger.java:104- [print] { "code": "404", "message": "The requested Ldap Configuration - 'Non-existing-ldap-XYZ' doesn't exist" } 24-11 09:33:38.488 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:38.489 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:38.489 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:38.489 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:38.490 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:38.490 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:38.490 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:38.490 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:38.491 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:38.491 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:38.494 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:38.494 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:38.494 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:38.494 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:38.495 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:38.495 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:38.496 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:38.496 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:38.496 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:38.496 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:38.760 INFO com.intuit.karate.Logger Logger.java:104- [print] [ { "bindPassword": "cYUlZmqTcrk3faFR3+J5F0kL+ZC8XMiF", "level": 0, "localPrimaryKey": "uid", "version": 0, "enabled": false, "useSSL": true, "bindDN": "cn=directory manager", "servers": [ "localhost:1636" ], "baseDNs": [ "ou=people,o=jans" ], "configId": "auth_ldap_server", "useAnonymousBind": false, "maxConnections": 1000, "primaryKey": "uid" } ] 24-11 09:33:38.762 INFO com.intuit.karate.Logger Logger.java:104- [print] { "jwksUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/jwks", "auth_health_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/jans-auth-server/health", "authConfigurationUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/jans-auth-server/config", "healthUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/health", "__loop": -1, "issuer": "https://jenkins-build.jans.io", "statUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/stat", "__arg": null, "responseType": "json", "ldapUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/database/ldap", "user_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/user", "openidclients_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients", "responseCookies": null, "scopes_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/scopes", "acrsUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/acrs", "cacheUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/cache", "responseTime": 252, "scriptsUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/scripts", "session_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/jans-auth-server/session", "testProps": { "test.client.id": "1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948", "token.endpoint": "https://jenkins-build.jans.io/jans-auth/restv1/token", "token.grant.type": "client_credentials", "test.issuer": "https://jenkins-build.jans.io", "test.client.secret": "MdZvQhEZ3JsG", "test.scopes": "https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write" }, "env": "dev", "accessToken": "86338509-2112-409e-98ae-4d3e55ded0fe", "responseStatus": 200, "org_configuration_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/org", "attributes_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/attributes", "smtp_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/smtp", "baseUrl": "https://jenkins-build.jans.io", "responseHeaders": { "Date": [ "Thu, 24 Nov 2022 09:33:38 GMT" ], "Server": [ "Apache/2.4.41 (Ubuntu)" ], "X-Xss-Protection": [ "1; mode=block" ], "X-Content-Type-Options": [ "nosniff" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "Content-Type": [ "application/json" ], "Content-Length": [ "317" ], "Keep-Alive": [ "timeout=5, max=100" ], "Connection": [ "Keep-Alive" ] }, "response": [ { "bindPassword": "cYUlZmqTcrk3faFR3+J5F0kL+ZC8XMiF", "level": 0, "localPrimaryKey": "uid", "version": 0, "enabled": false, "useSSL": true, "bindDN": "cn=directory manager", "servers": [ "localhost:1636" ], "baseDNs": [ "ou=people,o=jans" ], "configId": "auth_ldap_server", "useAnonymousBind": false, "maxConnections": 1000, "primaryKey": "uid" } ], "umaresources_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/uma/resources", "agama_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/agama", "requestTimeStamp": 1669282418508, "mainUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/database/ldap", "logging_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/logging" } 24-11 09:33:38.766 INFO com.intuit.karate.Logger Logger.java:104- [print] [ { "bindPassword": "cYUlZmqTcrk3faFR3+J5F0kL+ZC8XMiF", "level": 0, "localPrimaryKey": "uid", "version": 0, "enabled": false, "useSSL": true, "bindDN": "cn=directory manager", "servers": [ "localhost:1636" ], "baseDNs": [ "ou=people,o=jans" ], "configId": "auth_ldap_server", "useAnonymousBind": false, "maxConnections": 1000, "primaryKey": "uid" } ] 24-11 09:33:39.270 INFO com.intuit.karate.Logger Logger.java:104- [print] { "bindPassword": "cYUlZmqTcrk3faFR3+J5F0kL+ZC8XMiF", "level": 0, "localPrimaryKey": "uid", "version": 0, "enabled": false, "useSSL": true, "bindDN": "cn=directory manager", "servers": [ "localhost:1636" ], "baseDNs": [ "ou=people,o=jans" ], "configId": "auth_ldap_server", "useAnonymousBind": false, "maxConnections": 1000, "primaryKey": "uid" } 24-11 09:33:39.276 INFO com.intuit.karate.Logger Logger.java:104- [print] auth_ldap_server 24-11 09:33:39.280 INFO com.intuit.karate.Logger Logger.java:104- [print] 0 24-11 09:33:39.291 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:39.292 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:39.292 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:39.292 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:39.293 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:39.293 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:39.293 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:39.293 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:39.294 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:39.304 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:39.311 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:39.312 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:39.312 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:39.312 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:39.313 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:39.313 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:39.313 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:39.318 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:39.318 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:39.318 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:39.589 INFO com.intuit.karate.Logger Logger.java:104- [print] [ { "bindPassword": "cYUlZmqTcrk3faFR3+J5F0kL+ZC8XMiF", "level": 0, "localPrimaryKey": "uid", "version": 0, "enabled": false, "useSSL": true, "bindDN": "cn=directory manager", "servers": [ "localhost:1636" ], "baseDNs": [ "ou=people,o=jans" ], "configId": "auth_ldap_server", "useAnonymousBind": false, "maxConnections": 1000, "primaryKey": "uid" } ] 24-11 09:33:39.590 INFO com.intuit.karate.Logger Logger.java:104- [print] { "jwksUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/jwks", "auth_health_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/jans-auth-server/health", "authConfigurationUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/jans-auth-server/config", "healthUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/health", "__loop": -1, "issuer": "https://jenkins-build.jans.io", "statUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/stat", "__arg": null, "responseType": "json", "ldapUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/database/ldap", "user_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/user", "openidclients_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients", "responseCookies": null, "scopes_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/scopes", "acrsUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/acrs", "cacheUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/cache", "responseTime": 257, "scriptsUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/scripts", "session_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/jans-auth-server/session", "testProps": { "test.client.id": "1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948", "token.endpoint": "https://jenkins-build.jans.io/jans-auth/restv1/token", "token.grant.type": "client_credentials", "test.issuer": "https://jenkins-build.jans.io", "test.client.secret": "MdZvQhEZ3JsG", "test.scopes": "https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write" }, "env": "dev", "accessToken": "86338509-2112-409e-98ae-4d3e55ded0fe", "responseStatus": 200, "org_configuration_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/org", "attributes_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/attributes", "smtp_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/smtp", "baseUrl": "https://jenkins-build.jans.io", "responseHeaders": { "Date": [ "Thu, 24 Nov 2022 09:33:39 GMT" ], "Server": [ "Apache/2.4.41 (Ubuntu)" ], "X-Xss-Protection": [ "1; mode=block" ], "X-Content-Type-Options": [ "nosniff" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "Content-Type": [ "application/json" ], "Content-Length": [ "317" ], "Keep-Alive": [ "timeout=5, max=100" ], "Connection": [ "Keep-Alive" ] }, "response": [ { "bindPassword": "cYUlZmqTcrk3faFR3+J5F0kL+ZC8XMiF", "level": 0, "localPrimaryKey": "uid", "version": 0, "enabled": false, "useSSL": true, "bindDN": "cn=directory manager", "servers": [ "localhost:1636" ], "baseDNs": [ "ou=people,o=jans" ], "configId": "auth_ldap_server", "useAnonymousBind": false, "maxConnections": 1000, "primaryKey": "uid" } ], "umaresources_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/uma/resources", "agama_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/agama", "requestTimeStamp": 1669282419330, "mainUrl": "https://jenkins-build.jans.io/jans-config-api/api/v1/config/database/ldap", "logging_url": "https://jenkins-build.jans.io/jans-config-api/api/v1/logging" } 24-11 09:33:39.591 INFO com.intuit.karate.Logger Logger.java:104- [print] [ { "bindPassword": "cYUlZmqTcrk3faFR3+J5F0kL+ZC8XMiF", "level": 0, "localPrimaryKey": "uid", "version": 0, "enabled": false, "useSSL": true, "bindDN": "cn=directory manager", "servers": [ "localhost:1636" ], "baseDNs": [ "ou=people,o=jans" ], "configId": "auth_ldap_server", "useAnonymousBind": false, "maxConnections": 1000, "primaryKey": "uid" } ] 24-11 09:33:39.598 INFO com.intuit.karate.Logger Logger.java:104- [print] Patch - auth_ldap_server 24-11 09:33:39.608 INFO com.intuit.karate.Logger Logger.java:104- [print] 24-11 09:33:40.116 INFO com.intuit.karate.Logger Logger.java:104- [print] { "bindPassword": "cYUlZmqTcrk3faFR3+J5F0kL+ZC8XMiF", "level": 0, "localPrimaryKey": "uid", "version": 0, "enabled": false, "useSSL": true, "bindDN": "cn=directory manager", "servers": [ "localhost:1636" ], "baseDNs": [ "ou=people,o=jans" ], "configId": "auth_ldap_server", "useAnonymousBind": false, "maxConnections": 1000, "primaryKey": "uid" } 24-11 09:33:40.151 INFO com.intuit.karate.Runner Runner.java:264- <> feature 6 of 47: src/test/resources/feature/config/database/ldap/ldap.feature --------------------------------------------------------- feature: src/test/resources/feature/config/database/ldap/ldap.feature report: target/surefire-reports/src.test.resources.feature.config.database.ldap.ldap.json scenarios: 6 | passed: 6 | failed: 0 | time: 3.5025 --------------------------------------------------------- 24-11 09:33:40.162 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:40.162 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:40.163 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:40.163 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:40.164 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:40.164 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:40.164 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:40.164 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:40.164 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:40.165 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:40.177 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:40.178 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:40.179 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:40.179 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:40.180 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:40.180 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:40.180 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:40.181 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:40.181 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:40.181 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:40.227 INFO com.intuit.karate.Logger Logger.java:104- [print] ONLY TOKEN BASED AUTHORIZATION IS SUPPORTED! 24-11 09:33:40.234 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:40.234 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:40.235 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:40.235 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:40.236 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:40.236 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:40.236 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:40.236 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:40.237 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:40.237 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:40.241 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:40.242 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:40.243 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:40.243 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:40.244 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:40.244 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:40.244 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:40.244 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:40.245 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:40.245 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:40.673 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 39, "entries": [ { "internal": false, "level": 1, "programmingLanguage": "java", "description": "Java Custom Sample Script", "locationType": "ldap", "dn": "inum=0300-BA90,ou=scripts,o=jans", "inum": "0300-BA90", "script": "/* Copyright (c) 2022, Gluu\n Author: Yuriy Z\n */\n\nimport io.jans.model.SimpleCustomProperty;\nimport io.jans.model.custom.script.model.CustomScript;\nimport io.jans.model.custom.script.type.discovery.DiscoveryType;\nimport io.jans.service.custom.script.CustomScriptManager;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.json.JSONObject;\n\nimport java.util.Map;\n\npublic class Discovery implements DiscoveryType {\n\n private static final Logger log = LoggerFactory.getLogger(Discovery.class);\n private static final Logger scriptLogger = LoggerFactory.getLogger(CustomScriptManager.class);\n\n @Override\n public boolean init(Map configurationAttributes) {\n log.info(\"Init of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public boolean init(CustomScript customScript, Map configurationAttributes) {\n log.info(\"Init of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public boolean destroy(Map configurationAttributes) {\n log.info(\"Destroy of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public int getApiVersion() {\n log.info(\"getApiVersion Discovery Java custom script: 11\");\n return 11;\n }\n\n @Override\n public boolean modifyResponse(Object responseAsJsonObject, Object context) {\n scriptLogger.info(\"write to script logger\");\n JSONObject response = (JSONObject) responseAsJsonObject;\n response.accumulate(\"key_from_java\", \"value_from_script_on_java\");\n return true;\n }\n}\n", "enabled": true, "revision": 11, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "discovery", "name": "discovery_java_params", "modified": false, "baseDn": "inum=0300-BA90,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Id Generator script", "locationType": "ldap", "dn": "inum=031C-4A65,ou=scripts,o=jans", "inum": "031C-4A65", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.id import IdGeneratorType\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList\n\nimport java\n\nclass IdGenerator(IdGeneratorType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Id generator. Initialization\"\n print \"Id generator. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Id generator. Destroy\"\n print \"Id generator. Destroyed successfully\"\n return True \n\n def getApiVersion(self):\n return 11\n\n # Id generator init method\n # appId is application Id\n # idType is Id Type\n # idPrefix is Id Prefix\n # user is io.jans.oxtrust.model.JanssenCustomPerson\n # configurationAttributes is java.util.Map\n def generateId(self, appId, idType, idPrefix, configurationAttributes):\n print \"Id generator. Generate Id\"\n print \"Id generator. Generate Id. AppId: '\", appId, \"', IdType: '\", idType, \"', IdPrefix: '\", idPrefix, \"'\"\n\n # Return None or empty string to trigger default Id generation method\n return None\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "id_generator", "name": "id_generator", "modified": false, "baseDn": "inum=031C-4A65,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Dynamic Scope script for org_name", "locationType": "ldap", "dn": "inum=031C-5621,ou=scripts,o=jans", "inum": "031C-5621", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.scope import DynamicScopeType\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList\n\nimport java\n\nclass DynamicScope(DynamicScopeType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Dynamic scope. Initialization\"\n\n print \"Dynamic scope. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Dynamic scope. Destroy\"\n print \"Dynamic scope. Destroyed successfully\"\n return True \n\n # Update Json Web token before signing/encrypring it\n # dynamicScopeContext is io.jans.as.service.external.context.DynamicScopeExternalContext\n # configurationAttributes is java.util.Map\n def update(self, dynamicScopeContext, configurationAttributes):\n print \"Dynamic scope. Update method\"\n\n dynamicScopes = dynamicScopeContext.getDynamicScopes()\n authorizationGrant = dynamicScopeContext.getAuthorizationGrant()\n user = dynamicScopeContext.getUser()\n jsonWebResponse = dynamicScopeContext.getJsonWebResponse()\n claims = jsonWebResponse.getClaims()\n\n # Add organization name if there is scope = org_name\n claims.setClaim(\"org_name\", \"Janssen, Inc.\")\n\n return True\n\n def getSupportedClaims(self, configurationAttributes):\n return Arrays.asList(\"org_name\")\n\n def getApiVersion(self):\n return 11\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "dynamic_scope", "name": "org_name", "modified": false, "baseDn": "inum=031C-5621,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Dynamic Scope script for work_phone", "locationType": "ldap", "dn": "inum=031C-5622,ou=scripts,o=jans", "inum": "031C-5622", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.scope import DynamicScopeType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList\n\nimport java\n\nclass DynamicScope(DynamicScopeType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Dynamic scope. Initialization\"\n\n print \"Dynamic scope. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Dynamic scope. Destroy\"\n print \"Dynamic scope. Destroyed successfully\"\n return True \n\n # Update Json Web token before signing/encrypring it\n # dynamicScopeContext is io.jans.as.service.external.context.DynamicScopeExternalContext\n # configurationAttributes is java.util.Map\n def update(self, dynamicScopeContext, configurationAttributes):\n print \"Dynamic scope. Update method\"\n\n dynamicScopes = dynamicScopeContext.getDynamicScopes()\n authorizationGrant = dynamicScopeContext.getAuthorizationGrant()\n user = dynamicScopeContext.getUser()\n jsonWebResponse = dynamicScopeContext.getJsonWebResponse()\n claims = jsonWebResponse.getClaims()\n\n # Add work phone if there is scope = work_phone\n userService = CdiUtil.bean(UserService)\n workPhone = userService.getCustomAttribute(user, \"telephoneNumber\")\n if workPhone != None:\n claims.setClaim(\"work_phone\", workPhone.getValues())\n\n return True\n\n def getSupportedClaims(self, configurationAttributes):\n return Arrays.asList(\"work_phone\")\n\n def getApiVersion(self):\n return 11\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "dynamic_scope", "name": "work_phone", "modified": false, "baseDn": "inum=031C-5622,ou=scripts,o=jans" }, { "internal": false, "level": 50, "programmingLanguage": "python", "description": "Twilio SMS authentication module", "locationType": "ldap", "dn": "inum=09A0-93D6,ou=scripts,o=jans", "inum": "09A0-93D6", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Gasmyr Mougang\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nimport com.twilio.Twilio as Twilio\nimport com.twilio.rest.api.v2010.account.Message as Message\nimport com.twilio.type.PhoneNumber as PhoneNumber\nimport org.codehaus.jettison.json.JSONArray as JSONArray\n\n\nimport java\nimport random\nimport jarray\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.mobile_number = None\n self.identity = CdiUtil.bean(Identity)\n\n def init(self, customScript, configurationAttributes):\n print \"==============================================\"\n print \"===TWILIO SMS INITIALIZATION==================\"\n print \"==============================================\"\n self.ACCOUNT_SID = None\n self.AUTH_TOKEN = None\n self.FROM_NUMBER = None\n\n # Get Custom Properties\n try:\n self.ACCOUNT_SID = configurationAttributes.get(\"twilio_sid\").getValue2()\n except:\n print 'TwilioSMS, Missing required configuration attribute \"twilio_sid\"'\n\n try:\n self.AUTH_TOKEN = configurationAttributes.get(\"twilio_token\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"twilio_token\"'\n try:\n self.FROM_NUMBER = configurationAttributes.get(\"from_number\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"from_number\"'\n\n if None in (self.ACCOUNT_SID, self.AUTH_TOKEN, self.FROM_NUMBER):\n print \"twilio_sid, twilio_token, from_number is empty ... returning False\"\n return False\n\n print \"===TWILIO SMS INITIALIZATION DONE PROPERLY=====\" \n return True\n\n def destroy(self, configurationAttributes):\n print \"Twilio SMS. Destroy\"\n print \"Twilio SMS. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"==============================================\"\n print \"====TWILIO SMS AUTHENCATION===================\"\n print \"==============================================\"\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n sessionIdService = CdiUtil.bean(SessionIdService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n form_name = ServerUtil.getFirstValue(requestParameters, \"TwilioSmsloginForm\")\n\n print \"TwilioSMS. form_response_passcode: %s\" % str(form_passcode)\n\n if step == 1:\n print \"==============================================\"\n print \"=TWILIO SMS STEP 1 | Password Authentication==\"\n print \"==============================================\"\n credentials = self.identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print 'TwilioSMS, Error retrieving user %s from LDAP' % (user_name)\n return False\n\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n self.mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"mobile\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if self.mobile_number == None:\n print \"TwilioSMS, Error finding mobile number for user '%s'\" % user_name \n \n except:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print 'TwilioSMS, Error finding mobile number for \"%s\". Exception: %s` % (user_name, sys.exc_info()[1])`'\n return False\n\n # Generate Random six digit code and store it in array\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n sessionId.getSessionAttributes().put(\"code\", code)\n\n try:\n Twilio.init(self.ACCOUNT_SID, self.AUTH_TOKEN);\n message = Message.creator(PhoneNumber(self.mobile_number), PhoneNumber(self.FROM_NUMBER), str(code)).create();\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print 'TwilioSMs, Message Sid: %s' % (message.getSid())\n print 'TwilioSMs, User phone: %s' % (self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n sessionId.getSessionAttributes().put(\"mobile_number\", self.mobile_number)\n sessionId.getSessionAttributes().put(\"mobile\", self.mobile_number)\n sessionIdService.updateSessionId(sessionId)\n self.identity.setWorkingParameter(\"mobile_number\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\",self.mobile_number)\n self.identity.setWorkingParameter(\"mobile\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile\",self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"Number: %s\" % (self.identity.getWorkingParameter(\"mobile_number\"))\n print \"Mobile: %s\" % (self.identity.getWorkingParameter(\"mobile\"))\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"========================================\"\n print \"===TWILIO SMS FIRST STEP DONE PROPERLY==\"\n print \"========================================\"\n return True\n except Exception, ex:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n print \"TwilioSMS. Error sending message to Twilio\"\n print \"TwilioSMS. Unexpected error:\", ex\n\n return False\n elif step == 2:\n # Retrieve the session attribute\n print \"==============================================\"\n print \"=TWILIO SMS STEP 2 | Password Authentication==\"\n print \"==============================================\"\n code = session_attributes.get(\"code\")\n print '=======> Session code is \"%s\"' % str(code)\n sessionIdService = CdiUtil.bean(SessionIdService)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n code = sessionId.getSessionAttributes().get(\"code\")\n print '=======> Database code is \"%s\"' % str(code)\n self.identity.setSessionId(sessionId)\n print \"==============================================\"\n print \"TwilioSMS. Code: %s\" % str(code)\n print \"==============================================\"\n if code is None:\n print \"TwilioSMS. Failed to find previously sent code\"\n return False\n\n if form_passcode is None:\n print \"TwilioSMS. Passcode is empty\"\n return False\n\n if len(form_passcode) != 6:\n print \"TwilioSMS. Passcode from response is not 6 digits: %s\" % form_passcode\n return False\n\n if form_passcode == code:\n print \"TiwlioSMS, SUCCESS! User entered the same code!\"\n print \"========================================\"\n print \"===TWILIO SMS SECOND STEP DONE PROPERLY\"\n print \"========================================\"\n return True\n\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n print \"TwilioSMS. FAIL! User entered the wrong code! %s != %s\" % (form_passcode, code)\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Incorrect Twilio code, please try again.\")\n print \"================================================\"\n print \"===TWILIO SMS SECOND STEP FAILED: INCORRECT CODE\"\n print \"================================================\"\n return False\n\n print \"TwilioSMS. ERROR: step param not found or != (1|2)\"\n\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"TwilioSMS. Prepare for Step 1\"\n return True\n elif step == 2:\n print \"TwilioSMS. Prepare for Step 2\"\n return True\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "twilio_sms", "modified": false, "configurationProperties": [ { "hide": false, "value1": "twilio_sid", "description": "Twilio account SID" }, { "hide": false, "value1": "twilio_token", "description": "Twilio API token" }, { "hide": false, "value1": "from_number", "description": "Twilio phone number with SMS capabilities" } ], "baseDn": "inum=09A0-93D6,ou=scripts,o=jans" }, { "internal": false, "level": 45, "programmingLanguage": "python", "description": "SMPP SMS authentication module", "locationType": "ldap", "dn": "inum=09A0-93D7,ou=scripts,o=jans", "inum": "09A0-93D7", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n# Copyright (c) 2019, Tele2\n\n# Author: Jose Gonzalez\n# Author: Gasmyr Mougang\n# Author: Stefan Andersson\n\nfrom java.util import Arrays, Date\nfrom java.io import IOException\nfrom java.lang import Enum\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import ArrayHelper\nfrom io.jans.util import StringHelper\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nfrom org.jsmpp import InvalidResponseException, PDUException\nfrom org.jsmpp.bean import Alphabet, BindType, ESMClass, GeneralDataCoding, MessageClass, NumberingPlanIndicator, RegisteredDelivery, SMSCDeliveryReceipt, TypeOfNumber\nfrom org.jsmpp.extra import NegativeResponseException, ResponseTimeoutException\nfrom org.jsmpp.session import BindParameter, SMPPSession\nfrom org.jsmpp.util import AbsoluteTimeFormatter, TimeFormatter\nimport random\n\n\nclass SmppAttributeError(Exception):\n pass\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.identity = CdiUtil.bean(Identity)\n\n def get_and_parse_smpp_config(self, config, attribute, _type = None, convert = False, optional = False, default_desc = None):\n try:\n value = config.get(attribute).getValue2()\n except:\n if default_desc:\n default_desc = \" using default '{}'\".format(default_desc)\n else:\n default_desc = \"\"\n\n if optional:\n raise SmppAttributeError(\"SMPP missing optional configuration attribute '{}'{}\".format(attribute, default_desc))\n else:\n raise SmppAttributeError(\"SMPP missing required configuration attribute '{}'\".format(attribute))\n\n if _type and issubclass(_type, Enum):\n try:\n return getattr(_type, value)\n except AttributeError:\n raise SmppAttributeError(\"SMPP could not find attribute '{}' in {}\".format(attribute, _type))\n\n if convert:\n try:\n value = int(value)\n except AttributeError:\n try:\n value = int(value, 16)\n except AttributeError:\n raise SmppAttributeError(\"SMPP could not parse value '{}' of attribute '{}'\".format(value, attribute))\n\n return value\n\n def init(self, customScript, configurationAttributes):\n print(\"SMPP Initialization\")\n\n self.TIME_FORMATTER = AbsoluteTimeFormatter()\n\n self.SMPP_SERVER = None\n self.SMPP_PORT = None\n\n self.SYSTEM_ID = None\n self.PASSWORD = None\n\n # Setup some good defaults for TON, NPI and source (from) address\n # TON (Type of Number), NPI (Number Plan Indicator)\n self.SRC_ADDR_TON = TypeOfNumber.ALPHANUMERIC # Alphanumeric\n self.SRC_ADDR_NPI = NumberingPlanIndicator.ISDN # ISDN (E163/E164)\n self.SRC_ADDR = \"Janssen OTP\"\n\n # Don't touch these unless you know what your doing, we don't handle number reformatting for\n # any other type than international.\n self.DST_ADDR_TON = TypeOfNumber.INTERNATIONAL # International\n self.DST_ADDR_NPI = NumberingPlanIndicator.ISDN # ISDN (E163/E164)\n\n # Priority flag and data_coding bits\n self.PRIORITY_FLAG = 3 # Very Urgent (ANSI-136), Emergency (IS-95)\n self.DATA_CODING_ALPHABET = Alphabet.ALPHA_DEFAULT # SMS default alphabet\n self.DATA_CODING_MESSAGE_CLASS = MessageClass.CLASS1 # EM (Mobile Equipment (mobile memory), normal message\n\n # Required server settings\n try:\n self.SMPP_SERVER = self.get_and_parse_smpp_config(configurationAttributes, \"smpp_server\")\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SMPP_PORT = self.get_and_parse_smpp_config(configurationAttributes, \"smpp_port\", convert = True)\n except SmppAttributeError as e:\n print(e)\n\n if None in (self.SMPP_SERVER, self.SMPP_PORT):\n print(\"SMPP smpp_server and smpp_port is empty, will not enable SMPP service\")\n return False\n\n # Optional system_id and password for bind auth\n try:\n self.SYSTEM_ID = self.get_and_parse_smpp_config(configurationAttributes, \"system_id\", optional = True)\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.PASSWORD = self.get_and_parse_smpp_config(configurationAttributes, \"password\", optional = True)\n except SmppAttributeError as e:\n print(e)\n\n if None in (self.SYSTEM_ID, self.PASSWORD):\n print(\"SMPP Authentication disabled\")\n\n # From number and to number settings\n try:\n self.SRC_ADDR_TON = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr_ton\",\n _type = TypeOfNumber,\n optional = True,\n default_desc = self.SRC_ADDR_TON\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SRC_ADDR_NPI = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr_npi\",\n _type = NumberingPlanIndicator,\n optional = True,\n default_desc = self.SRC_ADDR_NPI\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SRC_ADDR = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr\",\n optional = True,\n default_desc = self.SRC_ADDR\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DST_ADDR_TON = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"dest_addr_ton\",\n _type = TypeOfNumber,\n optional = True,\n default_desc = self.DST_ADDR_TON\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DST_ADDR_NPI = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"dest_addr_npi\",\n _type = NumberingPlanIndicator,\n optional = True,\n default_desc = self.DST_ADDR_NPI\n )\n except SmppAttributeError as e:\n print(e)\n\n # Priority flag and data coding, don't touch these unless you know what your doing...\n try:\n self.PRIORITY_FLAG = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"priority_flag\",\n convert = True,\n optional = True,\n default_desc = \"3 (Very Urgent, Emergency)\"\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DATA_CODING_ALPHABET = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"data_coding_alphabet\",\n _type = Alphabet,\n optional = True,\n default_desc = self.DATA_CODING_ALPHABET\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DATA_CODING_MESSAGE_CLASS = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"data_coding_alphabet\",\n _type = MessageClass,\n optional = True,\n default_desc = self.DATA_CODING_MESSAGE_CLASS\n )\n except SmppAttributeError as e:\n print(e)\n\n print(\"SMPP Initialized successfully\")\n return True\n\n def destroy(self, configurationAttributes):\n print(\"SMPP Destroy\")\n print(\"SMPP Destroyed successfully\")\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n\n print(\"SMPP form_response_passcode: {}\".format(str(form_passcode)))\n\n if step == 1:\n print(\"SMPP Step 1 Password Authentication\")\n credentials = self.identity.getCredentials()\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print(\"SMPP Error retrieving user {} from LDAP\".format(user_name))\n return False\n\n mobile_number = None\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if not mobile_number:\n mobile_number = foundUser.getAttribute(\"mobile\")\n if not mobile_number:\n mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if not mobile_number:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print(\"SMPP Error finding mobile number for user '{}'\".format(user_name))\n return False\n except Exception as e:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print(\"SMPP Error finding mobile number for {}: {}\".format(user_name, e))\n return False\n\n # Generate Random six digit code\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n\n self.identity.setWorkingParameter(\"mobile_number\", mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\", mobile_number)\n if not self.sendMessage(mobile_number, str(code)):\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n return False\n\n return True\n elif step == 2:\n # Retrieve the session attribute\n print(\"SMPP Step 2 SMS/OTP Authentication\")\n code = session_attributes.get(\"code\")\n print(\"SMPP Code: {}\".format(str(code)))\n\n if code is None:\n print(\"SMPP Failed to find previously sent code\")\n return False\n\n if form_passcode is None:\n print(\"SMPP Passcode is empty\")\n return False\n\n if len(form_passcode) != 6:\n print(\"SMPP Passcode from response is not 6 digits: {}\".format(form_passcode))\n return False\n\n if form_passcode == code:\n print(\"SMPP SUCCESS! User entered the same code!\")\n return True\n\n print(\"SMPP failed, user entered the wrong code! {} != {}\".format(form_passcode, code))\n facesMessages.add(facesMessage.SEVERITY_ERROR, \"Incorrect SMS code, please try again.\")\n return False\n\n print(\"SMPP ERROR: step param not found or != (1|2)\")\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print(\"SMPP Prepare for Step 1\")\n return True\n elif step == 2:\n print(\"SMPP Prepare for Step 2\")\n return True\n\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def sendMessage(self, number, code):\n status = False\n session = SMPPSession()\n session.setTransactionTimer(10000)\n\n # We only handle international destination number reformatting.\n # All others may vary by configuration decisions taken on SMPP\n # server side which we have no clue about.\n if self.DST_ADDR_TON == TypeOfNumber.INTERNATIONAL and number.startswith(\"+\"):\n number = number[1:]\n\n try:\n print(\"SMPP Connecting\")\n reference_id = session.connectAndBind(\n self.SMPP_SERVER,\n self.SMPP_PORT,\n BindParameter(\n BindType.BIND_TX,\n self.SYSTEM_ID,\n self.PASSWORD,\n None,\n self.SRC_ADDR_TON,\n self.SRC_ADDR_NPI,\n None\n )\n )\n print(\"SMPP Connected to server with system id {}\".format(reference_id))\n\n try:\n message_id = session.submitShortMessage(\n \"CMT\",\n self.SRC_ADDR_TON,\n self.SRC_ADDR_NPI,\n self.SRC_ADDR,\n self.DST_ADDR_TON,\n self.DST_ADDR_NPI,\n number,\n ESMClass(),\n 0,\n self.PRIORITY_FLAG,\n self.TIME_FORMATTER.format(Date()),\n None,\n RegisteredDelivery(SMSCDeliveryReceipt.DEFAULT),\n 0,\n GeneralDataCoding(\n self.DATA_CODING_ALPHABET,\n self.DATA_CODING_MESSAGE_CLASS,\n False\n ),\n 0,\n code\n )\n print(\"SMPP Message '{}' sent to #{} with message id {}\".format(code, number, message_id))\n status = True\n except PDUException as e:\n print(\"SMPP Invalid PDU parameter: {}\".format(e))\n except ResponseTimeoutException as e:\n print(\"SMPP Response timeout: {}\".format(e))\n except InvalidResponseException as e:\n print(\"SMPP Receive invalid response: {}\".format(e))\n except NegativeResponseException as e:\n print(\"SMPP Receive negative response: {}\".format(e))\n except IOException as e:\n print(\"SMPP IO error occured: {}\".format(e))\n finally:\n session.unbindAndClose()\n except IOException as e:\n print(\"SMPP Failed connect and bind to host: {}\".format(e))\n\n return status\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "smpp", "modified": false, "configurationProperties": [ { "hide": false, "value1": "smpp_server", "description": "IP or FQDN of SMPP server" }, { "hide": false, "value1": "smpp_port", "description": "TCP port of the SMPP server" }, { "hide": false, "value1": "system_id", "description": "Use if SMPP server requires authentication" }, { "hide": false, "value1": "password", "description": "Use if SMPP server requires authentication" }, { "hide": false, "value1": "source_addr_ton", "description": "Type of number, eg ALPHANUMERIC, INTERNATIONAL" }, { "hide": false, "value1": "source_addr", "description": "From number/name" } ], "baseDn": "inum=09A0-93D7,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Cache Refresh script", "locationType": "ldap", "dn": "inum=13D3-E7AD,ou=scripts,o=jans", "inum": "13D3-E7AD", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.user import CacheRefreshType\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList\nfrom io.jans.oxtrust.model import JanssenCustomAttribute\nfrom io.jans.model.custom.script.model.bind import BindCredentials\n\nimport java\n\nclass CacheRefresh(CacheRefreshType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Cache refresh. Initialization\"\n print \"Cache refresh. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Cache refresh. Destroy\"\n print \"Cache refresh. Destroyed successfully\"\n return True\n\n # Check if this instance conform starting conditions \n # configurationAttributes is java.util.Map\n # return True/False\n def isStartProcess(self, configurationAttributes):\n print \"Cache refresh. Is start process method\"\n\n return False\n \n # Get bind credentials required to access source server \n # configId is the source server\n # configurationAttributes is java.util.Map\n # return None (use password from configuration) or io.jans.model.custom.script.model.bind.BindCredentials\n def getBindCredentials(self, configId, configurationAttributes):\n print \"Cache refresh. GetBindCredentials method\"\n# if configId == \"source\":\n# return BindCredentials(\"cn=Directory Manager\", \"password\")\n\n return None\n\n # Update user entry before persist it\n # user is io.jans.oxtrust.model.JanssenCustomPerson\n # configurationAttributes is java.util.Map\n def updateUser(self, user, configurationAttributes):\n print \"Cache refresh. UpdateUser method\"\n\n attributes = user.getCustomAttributes()\n\n # Add new attribute preferredLanguage\n attrPrefferedLanguage = JanssenCustomAttribute(\"preferredLanguage\", \"en-us\")\n attributes.add(attrPrefferedLanguage)\n\n # Add new attribute userPassword\n attrUserPassword = JanssenCustomAttribute(\"userPassword\", \"test\")\n attributes.add(attrUserPassword)\n\n # Update givenName attribute\n for attribute in attributes:\n attrName = attribute.getName()\n if ((\"givenname\" == StringHelper.toLowerCase(attrName)) and StringHelper.isNotEmpty(attribute.getValue())):\n attribute.setValue(StringHelper.removeMultipleSpaces(attribute.getValue()) + \" (updated)\")\n\n return True\n\n def getApiVersion(self):\n return 11\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "cache_refresh", "name": "cache_refresh", "modified": false, "baseDn": "inum=13D3-E7AD,ou=scripts,o=jans" }, { "internal": false, "level": 30, "programmingLanguage": "python", "description": "Cert authentication module", "locationType": "ldap", "dn": "inum=2124-0CF1,ou=scripts,o=jans", "inum": "2124-0CF1", "script": "#\n# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom jakarta.faces.context import FacesContext\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.as.common.service.common import EncryptionService\nfrom java.util import Arrays\nfrom io.jans.as.common.cert.fingerprint import FingerprintHelper\nfrom io.jans.as.common.cert.validation import GenericCertificateVerifier\nfrom io.jans.as.common.cert.validation import PathCertificateVerifier\nfrom io.jans.as.common.cert.validation import OCSPCertificateVerifier\nfrom io.jans.as.common.cert.validation import CRLCertificateVerifier\nfrom io.jans.as.common.cert.validation.model import ValidationStatus\nfrom io.jans.as.server.util import CertUtil\nfrom io.jans.as.model.util import CertUtils\nfrom io.jans.as.server.service.net import HttpService\nfrom org.apache.http.params import CoreConnectionPNames\n\nimport sys\nimport base64\nimport urllib\n\nimport java\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Cert. Initialization\"\n\n if not (configurationAttributes.containsKey(\"chain_cert_file_path\")):\n print \"Cert. Initialization. Property chain_cert_file_path is mandatory\"\n return False\n\n if not (configurationAttributes.containsKey(\"map_user_cert\")):\n print \"Cert. Initialization. Property map_user_cert is mandatory\"\n return False\n\n chain_cert_file_path = configurationAttributes.get(\"chain_cert_file_path\").getValue2()\n\n self.chain_certs = CertUtil.loadX509CertificateFromFile(chain_cert_file_path)\n if self.chain_certs == None:\n print \"Cert. Initialization. Failed to load chain certificates from '%s'\" % chain_cert_file_path\n return False\n\n print \"Cert. Initialization. Loaded '%d' chain certificates\" % self.chain_certs.size()\n \n crl_max_response_size = 5 * 1024 * 1024 # 10Mb\n if configurationAttributes.containsKey(\"crl_max_response_size\"):\n crl_max_response_size = StringHelper.toInteger(configurationAttributes.get(\"crl_max_response_size\").getValue2(), crl_max_response_size)\n print \"Cert. Initialization. CRL max response size is '%d'\" % crl_max_response_size\n\n # Define array to order methods correctly\n self.validator_types = [ 'generic', 'path', 'ocsp', 'crl']\n self.validators = { 'generic' : [GenericCertificateVerifier(), False],\n 'path' : [PathCertificateVerifier(False), False],\n 'ocsp' : [OCSPCertificateVerifier(), False],\n 'crl' : [CRLCertificateVerifier(crl_max_response_size), False] }\n\n for type in self.validator_types:\n validator_param_name = \"use_%s_validator\" % type\n if configurationAttributes.containsKey(validator_param_name):\n validator_status = StringHelper.toBoolean(configurationAttributes.get(validator_param_name).getValue2(), False)\n self.validators[type][1] = validator_status\n\n print \"Cert. Initialization. Validation method '%s' status: '%s'\" % (type, self.validators[type][1])\n\n self.map_user_cert = StringHelper.toBoolean(configurationAttributes.get(\"map_user_cert\").getValue2(), False)\n print \"Cert. Initialization. map_user_cert: '%s'\" % self.map_user_cert\n\n self.enabled_recaptcha = self.initRecaptcha(configurationAttributes)\n print \"Cert. Initialization. enabled_recaptcha: '%s'\" % self.enabled_recaptcha\n\n print \"Cert. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Cert. Destroy\"\n\n for type in self.validator_types:\n self.validators[type][0].destroy()\n\n print \"Cert. Destroyed successfully\"\n\n return True\n\n def getApiVersion(self):\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n print \"Cert. Authenticate for step 1\"\n login_button = ServerUtil.getFirstValue(requestParameters, \"loginForm:loginButton\")\n if StringHelper.isEmpty(login_button):\n print \"Cert. Authenticate for step 1. Form were submitted incorrectly\"\n return False\n if self.enabled_recaptcha:\n print \"Cert. Authenticate for step 1. Validating recaptcha response\"\n recaptcha_response = ServerUtil.getFirstValue(requestParameters, \"g-recaptcha-response\")\n\n recaptcha_result = self.validateRecaptcha(recaptcha_response)\n print \"Cert. Authenticate for step 1. recaptcha_result: '%s'\" % recaptcha_result\n \n return recaptcha_result\n\n return True\n elif step == 2:\n print \"Cert. Authenticate for step 2\"\n\n # Validate if user selected certificate\n cert_x509 = self.getSessionAttribute(\"cert_x509\")\n if cert_x509 == None:\n print \"Cert. Authenticate for step 2. User not selected any certs\"\n identity.setWorkingParameter(\"cert_selected\", False)\n \n # Return True to inform user how to reset workflow\n return True\n else:\n identity.setWorkingParameter(\"cert_selected\", True)\n x509Certificate = self.certFromString(cert_x509)\n\n subjectX500Principal = x509Certificate.getSubjectX500Principal()\n print \"Cert. Authenticate for step 2. User selected certificate with DN '%s'\" % subjectX500Principal\n \n # Validate certificates which user selected\n valid = self.validateCertificate(x509Certificate)\n if not valid:\n print \"Cert. Authenticate for step 2. Certificate DN '%s' is not valid\" % subjectX500Principal\n identity.setWorkingParameter(\"cert_valid\", False)\n \n # Return True to inform user how to reset workflow\n return True\n\n identity.setWorkingParameter(\"cert_valid\", True)\n \n # Calculate certificate fingerprint\n x509CertificateFingerprint = self.calculateCertificateFingerprint(x509Certificate)\n identity.setWorkingParameter(\"cert_x509_fingerprint\", x509CertificateFingerprint)\n print \"Cert. Authenticate for step 2. Fingerprint is '%s' of certificate with DN '%s'\" % (x509CertificateFingerprint, subjectX500Principal)\n \n # Attempt to find user by certificate fingerprint\n cert_user_external_uid = \"cert:%s\" % x509CertificateFingerprint\n print \"Cert. Authenticate for step 2. Attempting to find user by jansExtUid attribute value %s\" % cert_user_external_uid\n\n find_user_by_external_uid = userService.getUserByAttribute(\"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n print \"Cert. Authenticate for step 2. Failed to find user\"\n \n if self.map_user_cert:\n print \"Cert. Authenticate for step 2. Storing cert_user_external_uid for step 3\"\n identity.setWorkingParameter(\"cert_user_external_uid\", cert_user_external_uid)\n return True\n else:\n print \"Cert. Authenticate for step 2. Mapping cert to user account is not allowed\"\n identity.setWorkingParameter(\"cert_count_login_steps\", 2)\n return False\n\n foundUserName = find_user_by_external_uid.getUserId()\n print \"Cert. Authenticate for step 2. foundUserName: \" + foundUserName\n\n logged_in = False\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(foundUserName)\n \n print \"Cert. Authenticate for step 2. Setting count steps to 2\"\n identity.setWorkingParameter(\"cert_count_login_steps\", 2)\n\n return logged_in\n elif step == 3:\n print \"Cert. Authenticate for step 3\"\n\n cert_user_external_uid = self.getSessionAttribute(\"cert_user_external_uid\")\n if cert_user_external_uid == None:\n print \"Cert. Authenticate for step 3. cert_user_external_uid is empty\"\n return False\n\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return False\n\n # Double check just to make sure. We did checking in previous step\n # Check if there is user which has cert_user_external_uid\n # Avoid mapping user cert to more than one IDP account\n find_user_by_external_uid = userService.getUserByAttribute(\"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n # Add cert_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n print \"Cert. Authenticate for step 3. Failed to update current user\"\n return False\n\n return True\n \n return True\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n print \"Cert. Prepare for step %d\" % step\n identity = CdiUtil.bean(Identity)\n \n if step == 1:\n if self.enabled_recaptcha:\n identity.setWorkingParameter(\"recaptcha_site_key\", self.recaptcha_creds['site_key'])\n elif step == 2:\n # Store certificate in session\n facesContext = CdiUtil.bean(FacesContext)\n externalContext = facesContext.getExternalContext()\n request = externalContext.getRequest()\n\n # Try to get certificate from header X-ClientCert\n clientCertificate = externalContext.getRequestHeaderMap().get(\"X-ClientCert\")\n if clientCertificate != None:\n x509Certificate = self.certFromPemString(clientCertificate)\n identity.setWorkingParameter(\"cert_x509\", self.certToString(x509Certificate))\n print \"Cert. Prepare for step 2. Storing user certificate obtained from 'X-ClientCert' header\"\n return True\n\n # Try to get certificate from attribute jakarta.servlet.request.X509Certificate\n x509Certificates = request.getAttribute('jakarta.servlet.request.X509Certificate')\n if (x509Certificates != None) and (len(x509Certificates) > 0):\n identity.setWorkingParameter(\"cert_x509\", self.certToString(x509Certificates[0]))\n print \"Cert. Prepare for step 2. Storing user certificate obtained from 'jakarta.servlet.request.X509Certificate' attribute\"\n return True\n\n if step < 4:\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"cert_selected\", \"cert_valid\", \"cert_x509\", \"cert_x509_fingerprint\", \"cert_count_login_steps\", \"cert_user_external_uid\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n cert_count_login_steps = self.getSessionAttribute(\"cert_count_login_steps\")\n if cert_count_login_steps != None:\n return cert_count_login_steps\n else:\n return 3\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n return \"/auth/cert/login.xhtml\"\n if step == 2:\n return \"/auth/cert/cert-login.xhtml\"\n elif step == 3:\n cert_selected = self.getSessionAttribute(\"cert_selected\")\n if True != cert_selected:\n return \"/auth/cert/cert-not-selected.xhtml\"\n\n cert_valid = self.getSessionAttribute(\"cert_valid\")\n if True != cert_valid:\n return \"/auth/cert/cert-invalid.xhtml\"\n \n return \"/login.xhtml\"\n\n return \"\"\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def processBasicAuthentication(self, credentials):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if (find_user_by_uid == None):\n print \"Cert. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def getSessionAttribute(self, attribute_name):\n identity = CdiUtil.bean(Identity)\n\n # Try to get attribute value from Seam event context\n if identity.isSetWorkingParameter(attribute_name):\n return identity.getWorkingParameter(attribute_name)\n \n # Try to get attribute from persistent session\n session_id = identity.getSessionId()\n if session_id == None:\n return None\n\n session_attributes = session_id.getSessionAttributes()\n if session_attributes == None:\n return None\n\n if session_attributes.containsKey(attribute_name):\n return session_attributes.get(attribute_name)\n\n return None\n\n def calculateCertificateFingerprint(self, x509Certificate):\n print \"Cert. Calculate fingerprint for certificate DN '%s'\" % x509Certificate.getSubjectX500Principal()\n \n publicKey = x509Certificate.getPublicKey()\n \n # Use oxAuth implementation\n fingerprint = FingerprintHelper.getPublicKeySshFingerprint(publicKey)\n \n return fingerprint \n\n def validateCertificate(self, x509Certificate):\n subjectX500Principal = x509Certificate.getSubjectX500Principal()\n\n print \"Cert. Validating certificate with DN '%s'\" % subjectX500Principal\n \n validation_date = java.util.Date()\n\n for type in self.validator_types:\n if self.validators[type][1]:\n result = self.validators[type][0].validate(x509Certificate, self.chain_certs, validation_date)\n print \"Cert. Validate certificate: '%s'. Validation method '%s' result: '%s'\" % (subjectX500Principal, type, result)\n \n if (result.getValidity() != ValidationStatus.CertificateValidity.VALID):\n print \"Cert. Certificate: '%s' is invalid\" % subjectX500Principal\n return False\n \n return True\n\n def certToString(self, x509Certificate):\n if x509Certificate == None:\n return None\n return base64.b64encode(x509Certificate.getEncoded())\n\n def certFromString(self, x509CertificateEncoded):\n x509CertificateDecoded = base64.b64decode(x509CertificateEncoded)\n return CertUtils.x509CertificateFromBytes(x509CertificateDecoded)\n\n def certFromPemString(self, pemCertificate):\n x509CertificateEncoded = pemCertificate.replace(\"-----BEGIN CERTIFICATE-----\", \"\").replace(\"-----END CERTIFICATE-----\", \"\").strip()\n return self.certFromString(x509CertificateEncoded)\n\n def initRecaptcha(self, configurationAttributes):\n print \"Cert. Initialize recaptcha\"\n if not configurationAttributes.containsKey(\"credentials_file\"):\n return False\n\n cert_creds_file = configurationAttributes.get(\"credentials_file\").getValue2()\n\n # Load credentials from file\n f = open(cert_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n except:\n print \"Cert. Initialize recaptcha. Failed to load credentials from file: %s\" % cert_creds_file\n return False\n finally:\n f.close()\n \n try:\n recaptcha_creds = creds[\"recaptcha\"]\n except:\n print \"Cert. Initialize recaptcha. Invalid credentials file '%s' format:\" % cert_creds_file\n return False\n \n self.recaptcha_creds = None\n if recaptcha_creds[\"enabled\"]:\n print \"Cert. Initialize recaptcha. Recaptcha is enabled\"\n\n encryptionService = CdiUtil.bean(EncryptionService)\n\n site_key = recaptcha_creds[\"site_key\"]\n secret_key = recaptcha_creds[\"secret_key\"]\n\n try:\n site_key = encryptionService.decrypt(site_key)\n except:\n # Ignore exception. Value is not encrypted\n print \"Cert. Initialize recaptcha. Assuming that 'site_key' in not encrypted\"\n\n try:\n secret_key = encryptionService.decrypt(secret_key)\n except:\n # Ignore exception. Value is not encrypted\n print \"Cert. Initialize recaptcha. Assuming that 'secret_key' in not encrypted\"\n\n \n self.recaptcha_creds = { 'site_key' : site_key, \"secret_key\" : secret_key }\n print \"Cert. Initialize recaptcha. Recaptcha is configured correctly\"\n\n return True\n else:\n print \"Cert. Initialize recaptcha. Recaptcha is disabled\"\n\n return False\n\n def validateRecaptcha(self, recaptcha_response):\n print \"Cert. Validate recaptcha response\"\n\n facesContext = CdiUtil.bean(FacesContext)\n request = facesContext.getExternalContext().getRequest()\n\n remoteip = ServerUtil.getIpAddress(request)\n print \"Cert. Validate recaptcha response. remoteip: '%s'\" % remoteip\n\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n http_client_params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15 * 1000)\n \n recaptcha_validation_url = \"https://www.google.com/recaptcha/api/siteverify\"\n recaptcha_validation_request = urllib.urlencode({ \"secret\" : self.recaptcha_creds['secret_key'], \"response\" : recaptcha_response, \"remoteip\" : remoteip })\n recaptcha_validation_headers = { \"Content-type\" : \"application/x-www-form-urlencoded\", \"Accept\" : \"application/json\" }\n\n try:\n http_service_response = httpService.executePost(http_client, recaptcha_validation_url, None, recaptcha_validation_headers, recaptcha_validation_request)\n http_response = http_service_response.getHttpResponse()\n except:\n print \"Cert. Validate recaptcha response. Exception: \", sys.exc_info()[1]\n return False\n\n try:\n if not httpService.isResponseStastusCodeOk(http_response):\n print \"Cert. Validate recaptcha response. Get invalid response from validation server: \", str(http_response.getStatusLine().getStatusCode())\n httpService.consume(http_response)\n return False\n \n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes)\n httpService.consume(http_response)\n finally:\n http_service_response.closeConnection()\n\n if response_string == None:\n print \"Cert. Validate recaptcha response. Get empty response from validation server\"\n return False\n \n response = json.loads(response_string)\n \n return response[\"success\"]\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "cert", "modified": false, "configurationProperties": [ { "hide": false, "value2": "/etc/certs/chain_cert.pem", "value1": "chain_cert_file_path" }, { "hide": false, "value2": "/etc/certs/cert_creds.json", "value1": "credentials_file" }, { "hide": false, "value2": "true", "value1": "map_user_cert" }, { "hide": false, "value2": "true", "value1": "use_generic_validator" }, { "hide": false, "value2": "true", "value1": "use_path_validator" }, { "hide": false, "value2": "false", "value1": "use_ocsp_validator" }, { "hide": false, "value2": "false", "value1": "use_crl_validator" }, { "hide": false, "value2": "10485760", "value1": "crl_max_response_size" } ], "baseDn": "inum=2124-0CF1,ou=scripts,o=jans" }, { "internal": false, "level": 40, "programmingLanguage": "python", "description": "OTP Validation of passwords using Yubicloud authentication module", "locationType": "ldap", "dn": "inum=24FD-B96E,ou=scripts,o=jans", "inum": "24FD-B96E", "script": "# Janssen Project software is available under the Apache License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan, Arunmozhi\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper\n\nimport java\n\nimport urllib2\nimport urllib\nimport uuid\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Yubicloud. Initialization\"\n\n self.api_server = configurationAttributes.get(\"yubicloud_uri\").getValue2()\n self.api_key = configurationAttributes.get(\"yubicloud_api_key\").getValue2()\n self.client_id = configurationAttributes.get(\"yubicloud_id\").getValue2()\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Yubicloud. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Yubicloud. Authenticate for step 1\"\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n username = credentials.getUsername()\n otp = credentials.getPassword()\n\n # Validate otp length\n if len(otp) < 32 or len(otp) > 48:\n print \"Yubicloud. Invalid OTP length\"\n return False\n\n user_service = CdiUtil.bean(UserService)\n user = user_service.getUser(username)\n\n public_key = user.getAttribute('yubikeyId')\n\n # Match the user with the yubikey\n if public_key not in otp:\n print \"Yubicloud. Public Key not matching OTP\"\n return False\n\n data = \"\"\n try:\n nonce = str(uuid.uuid4()).replace(\"-\", \"\")\n params = urllib.urlencode({\"id\": self.client_id, \"otp\": otp, \"nonce\": nonce})\n url = \"https://\" + self.api_server + \"/wsapi/2.0/verify/?\" + params\n f = urllib2.urlopen(url)\n data = f.read()\n except Exception as e:\n print \"Yubicloud. Exception \", e\n\n if 'status=OK' in data:\n user_service.authenticate(username)\n print \"Yubicloud. Authentication Successful\"\n return True\n\n print \"Yubicloud. End of Step 1. Returning False.\"\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Yubicloud. Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "yubicloud", "modified": false, "configurationProperties": [ { "hide": false, "value2": "api.yubico.com", "value1": "yubicloud_uri" }, { "hide": false, "value1": "yubicloud_api_key" }, { "hide": false, "value1": "yubicloud_id" } ], "baseDn": "inum=24FD-B96E,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Update token sample script", "locationType": "ldap", "dn": "inum=2D3E.5A03,ou=scripts,o=jans", "inum": "2D3E.5A03", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2021, Gluu\n#\n# Author: Yuriy Movchan\n#\n#\n\nfrom io.jans.model.custom.script.type.token import UpdateTokenType\n\nclass UpdateToken(UpdateTokenType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Update token script. Initializing ...\"\n print \"Update token script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Update token script. Destroying ...\"\n print \"Update token script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - indicates that script applied changes\n # This method is called after adding headers and claims. Hence script can override them\n # Note :\n # jsonWebResponse - is io.jans.as.model.token.JsonWebResponse, you can use any method to manipulate JWT\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def modifyIdToken(self, jsonWebResponse, context):\n print \"Update token script. Modify idToken: %s\" % jsonWebResponse\n\n jsonWebResponse.getHeader().setClaim(\"custom_header_name\", \"custom_header_value\")\n jsonWebResponse.getClaims().setClaim(\"custom_claim_name\", \"custom_claim_value\")\n\n print \"Update token script. After modify idToken: %s\" % jsonWebResponse\n return True\n\n # Returns boolean, true - indicates that script applied changes. If false is returned token will not be created.\n # refreshToken is reference of io.jans.as.server.model.common.RefreshToken (note authorization grant can be taken as context.getGrant())\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def modifyRefreshToken(self, refreshToken, context):\n return True\n\n # Returns boolean, true - indicates that script applied changes. If false is returned token will not be created.\n # accessToken is reference of io.jans.as.server.model.common.AccessToken (note authorization grant can be taken as context.getGrant())\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def modifyAccessToken(self, accessToken, context):\n return True\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getRefreshTokenLifetimeInSeconds(self, context):\n return 0\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getIdTokenLifetimeInSeconds(self, context):\n return 0\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getAccessTokenLifetimeInSeconds(self, context):\n return 0\n", "enabled": false, "revision": 12, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "update_token", "name": "update_token_sample", "modified": false, "baseDn": "inum=2D3E.5A03,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Introspection Sample Script", "locationType": "ldap", "dn": "inum=2DAF-AA90,ou=scripts,o=jans", "inum": "2DAF-AA90", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2018, Janssen\n#\n# Author: Yuriy Zabrovarnyy\n#\n#\n\nfrom io.jans.model.custom.script.type.introspection import IntrospectionType\nfrom java.lang import String\n\nclass Introspection(IntrospectionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Introspection script. Initializing ...\"\n print \"Introspection script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Introspection script. Destroying ...\"\n print \"Introspection script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - apply introspection method, false - ignore it.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def modifyResponse(self, responseAsJsonObject, context):\n responseAsJsonObject.accumulate(\"key_from_script\", \"value_from_script\")\n return True\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "introspection", "name": "introspection_sample", "modified": false, "baseDn": "inum=2DAF-AA90,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Resource Owner Password Credentials Example", "locationType": "ldap", "dn": "inum=2DAF-AA91,ou=scripts,o=jans", "inum": "2DAF-AA91", "script": "from io.jans.model.custom.script.type.owner import ResourceOwnerPasswordCredentialsType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.service.cdi.util import CdiUtil\nfrom java.lang import String\n\nclass ResourceOwnerPasswordCredentials(ResourceOwnerPasswordCredentialsType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"ROPC script. Initializing ...\"\n\n self.usernameParamName = \"username\"\n self.passwordParamName = \"password\"\n\n print \"ROPC script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"ROPC script. Destroying ...\"\n print \"ROPC script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns True and set user into context when user authenticated succesfully\n # Returns False when user not authenticated or it's needed to cancel notmal flow\n # Note :\n # context is reference of io.jans.as.service.external.context.ExternalResourceOwnerPasswordCredentialsContext#ExternalResourceOwnerPasswordCredentialsContext (in https://github.com/JanssenFederation/oxauth project, )\n def authenticate(self, context):\n print \"ROPC script. Authenticate\"\n deviceIdParam = context.getHttpRequest().getParameterValues(\"device_id\")\n if deviceIdParam != None and (deviceIdParam.lenght > 0 ):\n result = deviceIdParam[0] == \"device_id_1\"\n if not result:\n return False\n\n # Set auntenticated user in context\n # context.setUser(user)\n return True\n\n # Do generic authentication in other cases\n authService = CdiUtil.bean(AuthenticationService)\n\n username = context.getHttpRequest().getParameter(self.usernameParamName)\n password = context.getHttpRequest().getParameter(self.passwordParamName)\n result = authService.authenticate(username, password)\n if not result:\n print \"ROPC script. Authenticate. Could not authenticate user '%s' \" % username\n return False\n\n context.setUser(authService.getAuthenticatedUser())\n\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "resource_owner_password_credentials", "name": "resource_owner_password_credentials_example", "modified": false, "baseDn": "inum=2DAF-AA91,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Introspection Custom Parameters Sample Script", "locationType": "ldap", "dn": "inum=2DAF-BA90,ou=scripts,o=jans", "inum": "2DAF-BA90", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2019, Janssen\n#\n# Author: Yuriy Mochan\n#\n#\n\nfrom io.jans.model.custom.script.type.introspection import IntrospectionType\nfrom io.jans.as.model.common import AuthorizationGrantList\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.service.cdi.util import CdiUtil\nfrom java.lang import String\n\nclass Introspection(IntrospectionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Introspection script. Initializing ...\"\n print \"Introspection script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Introspection script. Destroying ...\"\n print \"Introspection script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - apply introspection method, false - ignore it.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def modifyResponse(self, responseAsJsonObject, context):\n token = context.getHttpRequest().getParameter(\"token\")\n if token is None:\n print \"Introspection. There is no token in request\"\n return False\n\n authorizationGrantList = CdiUtil.bean(AuthorizationGrantList)\n authorizationGrant = authorizationGrantList.getAuthorizationGrantByAccessToken(token);\n if authorizationGrant is None:\n print \"Introspection. Failed to load authorization grant by token\"\n return False\n\n # Put user_id into response\n responseAsJsonObject.accumulate(\"user_id\", authorizationGrant.getUser().getUserId())\n\n # Put custom parameters into response\n sessionDn = authorizationGrant.getSessionDn();\n if sessionDn is None:\n # There is no session\n return True\n\n sessionIdService = CdiUtil.bean(SessionIdService)\n session = sessionIdService.getSessionById(sessionDn)\n if sessionDn is None:\n print \"Introspection. Failed to load session '%s'\" % sessionDn\n return False\n\n # Return session_id\n responseAsJsonObject.accumulate(\"session_id\", sessionDn)\n \n sessionAttributes = session.getSessionAttributes()\n if sessionAttributes is None:\n # There is no session attributes\n return True\n\n # Append custom claims\n if sessionAttributes.containsKey(\"custom1\"):\n responseAsJsonObject.accumulate(\"custom1\", sessionAttributes.get(\"custom1\"))\n if sessionAttributes.containsKey(\"custom2\"):\n responseAsJsonObject.accumulate(\"custom2\", sessionAttributes.get(\"custom2\"))\n\n return True\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "introspection", "name": "introspection_custom_params", "modified": false, "baseDn": "inum=2DAF-BA90,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Resource Owner Password Credentials Custom Parameters Example", "locationType": "ldap", "dn": "inum=2DAF-BA91,ou=scripts,o=jans", "inum": "2DAF-BA91", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2019, Janssen\n#\n# Author: Yuriy Mochan\n#\n#\n\nfrom io.jans.model.custom.script.type.owner import ResourceOwnerPasswordCredentialsType\nfrom io.jans.as.server.service import AuthenticationService, SessionIdService\nfrom io.jans.as.model.common import SessionIdState\nfrom io.jans.as.server.security import Identity\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.model.authorize import AuthorizeRequestParam\nfrom io.jans.as.model.config import Constants\nfrom io.jans.util import StringHelper\nfrom java.lang import String\nfrom java.util import Date, HashMap\n\nclass ResourceOwnerPasswordCredentials(ResourceOwnerPasswordCredentialsType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"ROPC script. Initializing ...\"\n print \"ROPC script. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"ROPC script. Destroying ...\"\n print \"ROPC script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns True and set user into context when user authenticated succesfully\n # Returns False when user not authenticated or it's needed to cancel notmal flow\n # Note :\n # context is reference of io.jans.as.service.external.context.ExternalResourceOwnerPasswordCredentialsContext#ExternalResourceOwnerPasswordCredentialsContext (in https://github.com/JanssenFederation/oxauth project, )\n def authenticate(self, context):\n print \"ROPC script. Authenticate\"\n\n # Do generic authentication\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n username = context.getHttpRequest().getParameter(\"username\")\n password = context.getHttpRequest().getParameter(\"password\")\n result = authenticationService.authenticate(username, password)\n if not result:\n print \"ROPC script. Authenticate. Could not authenticate user '%s' \" % username\n return False\n\n context.setUser(authenticationService.getAuthenticatedUser())\n print \"ROPC script. Authenticate. User '%s' authenticated successfully\" % username\n \n\n # Get cusom parameters from request\n customParam1Value = context.getHttpRequest().getParameter(\"custom1\")\n customParam2Value = context.getHttpRequest().getParameter(\"custom2\")\n\n customParameters = {}\n customParameters[\"custom1\"] = customParam1Value\n customParameters[\"custom2\"] = customParam2Value\n print \"ROPC script. Authenticate. User '%s'. Creating authenticated session with custom attributes: '%s'\" % (username, customParameters)\n\n session = self.createNewAuthenticatedSession(context, customParameters)\n \n # This is needed to allow store in token entry sessionId\n authenticationService.configureEventUser(session)\n\n print \"ROPC script. Authenticate. User '%s'. Created authenticated session: '%s'\" % (username, customParameters)\n\n return True\n\n def createNewAuthenticatedSession(self, context, customParameters={}):\n sessionIdService = CdiUtil.bean(SessionIdService)\n\n user = context.getUser()\n client = CdiUtil.bean(Identity).getSessionClient().getClient()\n\n # Add mandatory session parameters\n sessionAttributes = HashMap()\n sessionAttributes.put(Constants.AUTHENTICATED_USER, user.getUserId())\n sessionAttributes.put(AuthorizeRequestParam.CLIENT_ID, client.getClientId())\n sessionAttributes.put(AuthorizeRequestParam.PROMPT, \"\")\n\n # Add custom session parameters\n for key, value in customParameters.iteritems():\n if StringHelper.isNotEmpty(value):\n sessionAttributes.put(key, value)\n\n # Generate authenticated session\n sessionId = sessionIdService.generateAuthenticatedSessionId(context.getHttpRequest(), user.getDn(), sessionAttributes)\n\n print \"ROPC script. Generated session id. DN: '%s'\" % sessionId.getDn()\n\n return sessionId\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "resource_owner_password_credentials", "name": "resource_owner_password_credentials_custom_params_example", "modified": false, "baseDn": "inum=2DAF-BA91,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Frontchannel logout Sample", "locationType": "ldap", "dn": "inum=2DAF-CA90,ou=scripts,o=jans", "inum": "2DAF-CA90", "script": "# Copyright (c) 2020, Janssen\n#\n# Author: Yuriy Zabrovarnyy\n#\n\nfrom io.jans.model.custom.script.type.logout import EndSessionType\nfrom java.lang import String\n\nclass EndSession(EndSessionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"EndSession script. Initializing ...\"\n print \"EndSession script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"EndSession script. Destroying ...\"\n print \"EndSession script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns string, it must be valid HTML (with iframes according to spec http://openid.net/specs/openid-connect-frontchannel-1_0.html)\n # This method is called on `/end_session` after actual session is killed and oxauth construct HTML to return to RP.\n # Note :\n # context is reference of io.jans.as.service.external.context.EndSessionContext (in https://github.com/JanssenFederation/oxauth project, )\n def getFrontchannelHtml(self, context):\n return \"\"", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "end_session", "name": "frontchannel_logout_sample", "modified": false, "baseDn": "inum=2DAF-CA90,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample UMA RPT Policy", "locationType": "ldap", "dn": "inum=2DAF-F995,ou=scripts,o=jans", "inum": "2DAF-F995", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2017, Janssen\n#\n# Author: Yuriy Zabrovarnyy\n#\n# Call sequence\n# 1. First is call constructor of the Script __init__\n# 2. Next init() method\n# 3. Next getRequiredClaims() - method returns required claims, so UMA engine checks whether\n# in request RP provided all claims that are required. Pay attention that there can be\n# multiple scripts bound to the scopes, means that UMA engine will build set of required claims\n# from all scripts. If not all claims are provided need_info error is sent to RP.\n# During need_info construction getClaimsGatheringScriptName() method is called\n# 4. authorize() method is called if all required claims are provided.\n# 5. destroy()\n\nfrom io.jans.model.custom.script.type.uma import UmaRptPolicyType\nfrom io.jans.model.uma import ClaimDefinitionBuilder\nfrom java.lang import String\n\nclass UmaRptPolicy(UmaRptPolicyType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"RPT Policy. Initializing ...\"\n print \"RPT Policy. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"RPT Policy. Destroying ...\"\n print \"RPT Policy. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns required claims definitions.\n # This method must provide definition of all claims that is used in 'authorize' method.\n # Note : name in both places must match.\n # %1$s - placeholder for issuer. It uses standard Java Formatter, docs : https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html\n def getRequiredClaims(self, context): # context is reference of io.jans.as.uma.authorization.UmaAuthorizationContext\n json = \"\"\"[\n {\n \"issuer\" : [ \"%1$s\" ],\n \"name\" : \"country\",\n \"claim_token_format\" : [ \"http://openid.net/specs/openid-connect-core-1_0.html#IDToken\" ],\n \"claim_type\" : \"string\",\n \"friendly_name\" : \"country\"\n },\n {\n \"issuer\" : [ \"%1$s\" ],\n \"name\" : \"city\",\n \"claim_token_format\" : [ \"http://openid.net/specs/openid-connect-core-1_0.html#IDToken\" ],\n \"claim_type\" : \"string\",\n \"friendly_name\" : \"city\"\n }\n ]\"\"\"\n context.addRedirectUserParam(\"customUserParam1\", \"value1\") # pass some custom parameters to need_info uri. It can be removed if you don't need custom parameters.\n return ClaimDefinitionBuilder.build(String.format(json, context.getIssuer()))\n\n # Main authorization method. Must return True or False.\n def authorize(self, context): # context is reference of io.jans.as.uma.authorization.UmaAuthorizationContext\n print \"RPT Policy. Authorizing ...\"\n\n if context.getClaim(\"country\") == 'US' and context.getClaim(\"city\") == 'NY':\n print \"Authorized successfully!\"\n return True\n\n return False\n\n # Returns name of the Claims-Gathering script which will be invoked if need_info error is returned.\n def getClaimsGatheringScriptName(self, context): # context is reference of io.jans.as.uma.authorization.UmaAuthorizationContext\n context.addRedirectUserParam(\"customUserParam2\", \"value2\") # pass some custom parameters to need_info uri. It can be removed if you don't need custom parameters.\n return \"sampleClaimsGathering\"", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "uma_rpt_policy", "name": "uma_rpt_policy", "modified": false, "configurationProperties": [ { "hide": false, "value1": "allowed_clients" } ], "baseDn": "inum=2DAF-F995,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Sample UMA Claims Gathering", "locationType": "ldap", "dn": "inum=2DAF-F996,ou=scripts,o=jans", "inum": "2DAF-F996", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2017, Janssen\n#\n# Author: Yuriy Zabrovarnyy\n#\n\nfrom io.jans.model.custom.script.type.uma import UmaClaimsGatheringType\n\nclass UmaClaimsGathering(UmaClaimsGatheringType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Claims-Gathering. Initializing ...\"\n print \"Claims-Gathering. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Claims-Gathering. Destroying ...\"\n print \"Claims-Gathering. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n\n # Main gather method. Must return True (if gathering performed successfully) or False (if fail).\n # Method must set claim into context (via context.putClaim('name', value)) in order to persist it (otherwise it will be lost).\n # All user entered values can be access via Map context.getPageClaims()\n def gather(self, step, context): # context is reference of io.jans.as.uma.authorization.UmaGatherContext\n print \"Claims-Gathering. Gathering ...\"\n\n if step == 1:\n if (context.getPageClaims().containsKey(\"country\")):\n country = context.getPageClaims().get(\"country\")\n print \"Country: \" + country\n\n context.putClaim(\"country\", country)\n return True\n\n print \"Claims-Gathering. 'country' is not provided on step 1.\"\n return False\n\n elif step == 2:\n if (context.getPageClaims().containsKey(\"city\")):\n city = context.getPageClaims().get(\"city\")\n print \"City: \" + city\n\n context.putClaim(\"city\", city)\n print \"Claims-Gathering. 'city' is not provided on step 2.\"\n return True\n\n return False\n\n def getNextStep(self, step, context):\n return -1\n\n def prepareForStep(self, step, context):\n if step == 10 and not context.isAuthenticated():\n # user is not authenticated, so we are redirecting user to authorization endpoint\n # client_id is specified via configuration attribute.\n # Make sure that given client has redirect_uri to Claims-Gathering Endpoint with parameter authentication=true\n # Sample https://sample.com/restv1/uma/gather_claims?authentication=true\n # If redirect to external url is performated, make sure that viewAction has onPostback=\"true\" (otherwise redirect will not work)\n # After user is authenticated then within the script it's possible to get user attributes as\n # context.getUser(\"uid\", \"sn\")\n # If user is authenticated to current AS (to the same server, not external one) then it's possible to\n # access Connect session attributes directly (no need to obtain id_token after redirect with 'code').\n # To fetch attributes please use getConnectSessionAttributes() method.\n\n print \"User is not authenticated. Redirect for authentication ...\"\n clientId = context.getConfigurationAttributes().get(\"client_id\").getValue2()\n redirectUri = context.getClaimsGatheringEndpoint() + \"?authentication=true\" # without authentication=true parameter it will not work\n authorizationUrl = context.getAuthorizationEndpoint() + \"?client_id=\" + clientId + \"&redirect_uri=\" + redirectUri + \"&scope=openid&response_type=code\"\n context.redirectToExternalUrl(authorizationUrl) # redirect to external url\n return False\n if step == 10 and context.isAuthenticated(): # example how to get session attribute if user is authenticated to same AS\n arc = context.getConnectSessionAttributes().get(\"acr\")\n\n return True\n\n def getStepsCount(self, context):\n return 2\n\n def getPageForStep(self, step, context):\n if step == 1:\n return \"/uma2/sample/country.xhtml\"\n elif step == 2:\n return \"/uma2/sample/city.xhtml\"\n return \"\"", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "uma_claims_gathering", "name": "sampleClaimsGathering", "modified": false, "baseDn": "inum=2DAF-F996,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Client authorization UMA RPT Policy for SCIM and Passport", "locationType": "ldap", "dn": "inum=2DAF-F9A5,ou=scripts,o=jans", "inum": "2DAF-F9A5", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2017, Janssen\n#\n# Author: Jose Gonzalez\n# Adapted from previous 3.0.1 script of Yuriy Movchan\n#\n# oxConfigurationProperty required:\n# allowed_clients - comma separated list of dns of allowed clients\n# (i.e. the SCIM RP client)\n\nfrom io.jans.as.model.uma import UmaConstants\nfrom io.jans.model.uma import ClaimDefinitionBuilder\nfrom io.jans.model.custom.script.type.uma import UmaRptPolicyType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList, HashSet\nfrom java.lang import String\n\nclass UmaRptPolicy(UmaRptPolicyType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"RPT Policy. Initializing ...\"\n self.clientsSet = self.prepareClientsSet(configurationAttributes)\n print \"RPT Policy. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"RPT Policy. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def getRequiredClaims(self, context):\n json = \"\"\"[\n ]\"\"\"\n return ClaimDefinitionBuilder.build(json)\n\n def authorize(self, context): # context is reference of io.jans.as.uma.authorization.UmaAuthorizationContext\n print \"RPT Policy. Authorizing ...\"\n\n client_id=context.getClient().getClientId()\n print \"UmaRptPolicy. client_id = %s\" % client_id\n\n if (StringHelper.isEmpty(client_id)):\n return False\n \n if (self.clientsSet.contains(client_id)):\n print \"UmaRptPolicy. Authorizing client\"\n return True\n else:\n print \"UmaRptPolicy. Client isn't authorized\"\n return False\n\n def getClaimsGatheringScriptName(self, context):\n return UmaConstants.NO_SCRIPT\n\n def prepareClientsSet(self, configurationAttributes):\n clientsSet = HashSet()\n if (not configurationAttributes.containsKey(\"allowed_clients\")):\n return clientsSet\n\n allowedClientsList = configurationAttributes.get(\"allowed_clients\").getValue2()\n if (StringHelper.isEmpty(allowedClientsList)):\n print \"UmaRptPolicy. The property allowed_clients is empty\"\n return clientsSet \n\n allowedClientsListArray = StringHelper.split(allowedClientsList, \",\")\n if (ArrayHelper.isEmpty(allowedClientsListArray)):\n print \"UmaRptPolicy. No clients specified in allowed_clients property\"\n return clientsSet\n \n # Convert to HashSet to quick search\n i = 0\n count = len(allowedClientsListArray)\n while (i < count):\n client = allowedClientsListArray[i]\n clientsSet.add(client)\n i = i + 1\n\n return clientsSet\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "uma_rpt_policy", "name": "scim_access_policy", "modified": false, "configurationProperties": [ { "hide": false, "value1": "allowed_clients" } ], "baseDn": "inum=2DAF-F9A5,ou=scripts,o=jans" }, { "internal": false, "level": 20, "programmingLanguage": "python", "description": "Basic (with user locking) authentication module", "locationType": "ldap", "dn": "inum=4BBE-C6A8,ou=scripts,o=jans", "inum": "4BBE-C6A8", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n# Author: Gasmyr Mougang\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.service import CacheService\nfrom io.jans.util import StringHelper\nfrom io.jans.orm.exception import AuthenticationException\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\nfrom java.time import LocalDateTime, Duration\nfrom java.time.format import DateTimeFormatter\n\nimport java\nimport datetime\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Basic (lock account). Initialization\"\n\n self.invalidLoginCountAttribute = \"jansCountInvalidLogin\"\n if configurationAttributes.containsKey(\"invalid_login_count_attribute\"):\n self.invalidLoginCountAttribute = configurationAttributes.get(\"invalid_login_count_attribute\").getValue2()\n else:\n print \"Basic (lock account). Initialization. Using default attribute\"\n\n self.maximumInvalidLoginAttemps = 3\n if configurationAttributes.containsKey(\"maximum_invalid_login_attemps\"):\n self.maximumInvalidLoginAttemps = StringHelper.toInteger(configurationAttributes.get(\"maximum_invalid_login_attemps\").getValue2())\n else:\n print \"Basic (lock account). Initialization. Using default number attempts\"\n\n self.lockExpirationTime = 180\n if configurationAttributes.containsKey(\"lock_expiration_time\"):\n self.lockExpirationTime = StringHelper.toInteger(configurationAttributes.get(\"lock_expiration_time\").getValue2())\n else:\n print \"Basic (lock account). Initialization. Using default lock expiration time\"\n\n\n print \"Basic (lock account). Initialized successfully. invalid_login_count_attribute: '%s', maximum_invalid_login_attemps: '%s', lock_expiration_time: '%s'\" % (self.invalidLoginCountAttribute, self.maximumInvalidLoginAttemps, self.lockExpirationTime)\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Basic (lock account). Destroy\"\n print \"Basic (lock account). Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n print \"Basic (lock account). Authenticate for step 1\"\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n cacheService = CdiUtil.bean(CacheService)\n userService = CdiUtil.bean(UserService)\n\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n try:\n logged_in = authenticationService.authenticate(user_name, user_password)\n except AuthenticationException:\n print \"Basic (lock account). Authenticate. Failed to authenticate user '%s'\" % user_name\n\n if logged_in:\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(0))\n else:\n countInvalidLoginArributeValue = self.getUserAttributeValue(user_name, self.invalidLoginCountAttribute)\n userSatus = self.getUserAttributeValue(user_name, \"jansStatus\")\n print \"Current user '%s' status is '%s'\" % ( user_name, userSatus )\n\n countInvalidLogin = StringHelper.toInteger(countInvalidLoginArributeValue, 0)\n\n if countInvalidLogin < self.maximumInvalidLoginAttemps:\n countInvalidLogin = countInvalidLogin + 1\n remainingAttempts = self.maximumInvalidLoginAttemps - countInvalidLogin\n\n print \"Remaining login count attempts '%s' for user '%s'\" % ( remainingAttempts, user_name )\n\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(countInvalidLogin))\n if remainingAttempts > 0 and userSatus == \"active\":\n facesMessages.add(FacesMessage.SEVERITY_INFO, StringHelper.toString(remainingAttempts)+\" more attempt(s) before account is LOCKED!\")\n\n if (countInvalidLogin >= self.maximumInvalidLoginAttemps) and ((userSatus == None) or (userSatus == \"active\")):\n print \"Basic (lock account). Locking '%s' for '%s' seconds\" % ( user_name, self.lockExpirationTime)\n self.lockUser(user_name)\n return False\n\n if (countInvalidLogin >= self.maximumInvalidLoginAttemps) and userSatus == \"inactive\":\n print \"Basic (lock account). User '%s' is locked. Checking if we can unlock him\" % user_name\n \n unlock_and_authenticate = False\n\n object_from_store = cacheService.get(None, \"lock_user_\" + user_name)\n if object_from_store == None:\n # Object in cache was expired. We need to unlock user\n print \"Basic (lock account). User locking details for user '%s' not exists\" % user_name\n unlock_and_authenticate = True\n else:\n # Analyze object from cache\n user_lock_details = json.loads(object_from_store)\n\n user_lock_details_locked = user_lock_details['locked']\n user_lock_details_created = user_lock_details['created']\n user_lock_details_created_date = LocalDateTime.parse(user_lock_details_created, DateTimeFormatter.ISO_LOCAL_DATE_TIME)\n user_lock_details_created_diff = Duration.between(user_lock_details_created_date, LocalDateTime.now()).getSeconds()\n print \"Basic (lock account). Get user '%s' locking details. locked: '%s', Created: '%s', Difference in seconds: '%s'\" % ( user_name, user_lock_details_locked, user_lock_details_created, user_lock_details_created_diff )\n\n if user_lock_details_locked and user_lock_details_created_diff >= self.lockExpirationTime:\n print \"Basic (lock account). Unlocking user '%s' after lock expiration\" % user_name\n unlock_and_authenticate = True\n\n if unlock_and_authenticate:\n self.unLockUser(user_name)\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(0))\n logged_in = authenticationService.authenticate(user_name, user_password)\n if not logged_in:\n # Update number of attempts \n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(1))\n if self.maximumInvalidLoginAttemps == 1:\n # Lock user if maximum count login attempts is 1 \n self.lockUser(user_name)\n return False\n\n\n return logged_in\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"Basic (lock account). Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def getUserAttributeValue(self, user_name, attribute_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n\n find_user_by_uid = userService.getUser(user_name, attribute_name)\n if find_user_by_uid == None:\n return None\n\n custom_attribute_value = userService.getCustomAttribute(find_user_by_uid, attribute_name)\n if custom_attribute_value == None:\n return None\n \n attribute_value = custom_attribute_value.getValue()\n\n print \"Basic (lock account). Get user attribute. User's '%s' attribute '%s' value is '%s'\" % (user_name, attribute_name, attribute_value)\n\n return attribute_value\n\n def setUserAttributeValue(self, user_name, attribute_name, attribute_value):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n\n find_user_by_uid = userService.getUser(user_name)\n if find_user_by_uid == None:\n return None\n \n userService.setCustomAttribute(find_user_by_uid, attribute_name, attribute_value)\n updated_user = userService.updateUser(find_user_by_uid)\n\n print \"Basic (lock account). Set user attribute. User's '%s' attribute '%s' value is '%s'\" % (user_name, attribute_name, attribute_value)\n\n return updated_user\n\n def lockUser(self, user_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n cacheService= CdiUtil.bean(CacheService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n find_user_by_uid = userService.getUser(user_name)\n if (find_user_by_uid == None):\n return None\n\n status_attribute_value = userService.getCustomAttribute(find_user_by_uid, \"gluuStatus\")\n if status_attribute_value != None:\n user_status = status_attribute_value.getValue()\n if StringHelper.equals(user_status, \"inactive\"):\n print \"Basic (lock account). Lock user. User '%s' locked already\" % user_name\n return\n \n userService.setCustomAttribute(find_user_by_uid, \"gluuStatus\", \"inactive\")\n updated_user = userService.updateUser(find_user_by_uid)\n\n object_to_store = json.dumps({'locked': True, 'created': LocalDateTime.now().toString()}, separators=(',',':'))\n\n cacheService.put(StringHelper.toString(self.lockExpirationTime), \"lock_user_\"+user_name, object_to_store);\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Your account is locked. Please try again after \" + StringHelper.toString(self.lockExpirationTime) + \" secs\")\n\n print \"Basic (lock account). Lock user. User '%s' locked\" % user_name\n\n def unLockUser(self, user_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n cacheService= CdiUtil.bean(CacheService)\n\n find_user_by_uid = userService.getUser(user_name)\n if (find_user_by_uid == None):\n return None\n\n object_to_store = json.dumps({'locked': False, 'created': LocalDateTime.now().toString()}, separators=(',',':'))\n cacheService.put(StringHelper.toString(self.lockExpirationTime), \"lock_user_\"+user_name, object_to_store);\n\n userService.setCustomAttribute(find_user_by_uid, \"jansStatus\", \"active\")\n userService.setCustomAttribute(find_user_by_uid, self.invalidLoginCountAttribute, None)\n updated_user = userService.updateUser(find_user_by_uid)\n\n\n print \"Basic (lock account). Lock user. User '%s' unlocked\" % user_name\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "basic_lock", "modified": false, "configurationProperties": [ { "hide": false, "value2": "oxCountInvalidLogin", "value1": "invalid_login_count_attribute" }, { "hide": false, "value2": "3", "value1": "maximum_invalid_login_attemps" }, { "hide": false, "value2": "120", "value1": "lock_expiration_time" } ], "baseDn": "inum=4BBE-C6A8,ou=scripts,o=jans" }, { "internal": false, "level": 40, "programmingLanguage": "python", "description": "HOTP/TOPT authentication module", "locationType": "ldap", "dn": "inum=5018-D4BF,ou=scripts,o=jans", "inum": "5018-D4BF", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\n# Requires the following custom properties and values:\n# otp_type: totp/hotp\n# issuer: Janssen Inc\n# otp_conf_file: /etc/certs/otp_configuration.json\n#\n# These are non mandatory custom properties and values:\n# label: Janssen OTP\n# qr_options: { width: 400, height: 400 }\n# registration_uri: https://ce-dev.jans.org/identity/register\n\nimport jarray\nimport json\nimport sys\nfrom com.google.common.io import BaseEncoding\nfrom com.lochbridge.oath.otp import HOTP\nfrom com.lochbridge.oath.otp import HOTPValidator\nfrom com.lochbridge.oath.otp import HmacShaAlgorithm\nfrom com.lochbridge.oath.otp import TOTP\nfrom com.lochbridge.oath.otp.keyprovisioning import OTPAuthURIBuilder\nfrom com.lochbridge.oath.otp.keyprovisioning import OTPKey\nfrom com.lochbridge.oath.otp.keyprovisioning.OTPKey import OTPType\nfrom java.security import SecureRandom\nfrom java.util import Arrays\nfrom java.util.concurrent import TimeUnit\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"OTP. Initialization\"\n\n if not configurationAttributes.containsKey(\"otp_type\"):\n print \"OTP. Initialization. Property otp_type is mandatory\"\n return False\n self.otpType = configurationAttributes.get(\"otp_type\").getValue2()\n\n if not self.otpType in [\"hotp\", \"totp\"]:\n print \"OTP. Initialization. Property value otp_type is invalid\"\n return False\n\n if not configurationAttributes.containsKey(\"issuer\"):\n print \"OTP. Initialization. Property issuer is mandatory\"\n return False\n self.otpIssuer = configurationAttributes.get(\"issuer\").getValue2()\n\n self.customLabel = None\n if configurationAttributes.containsKey(\"label\"):\n self.customLabel = configurationAttributes.get(\"label\").getValue2()\n\n self.customQrOptions = {}\n if configurationAttributes.containsKey(\"qr_options\"):\n self.customQrOptions = configurationAttributes.get(\"qr_options\").getValue2()\n\n self.registrationUri = None\n if configurationAttributes.containsKey(\"registration_uri\"):\n self.registrationUri = configurationAttributes.get(\"registration_uri\").getValue2()\n\n validOtpConfiguration = self.loadOtpConfiguration(configurationAttributes)\n if not validOtpConfiguration:\n return False\n\n print \"OTP. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"OTP. Destroy\"\n print \"OTP. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n print \"getNextStep Invoked\"\n # If user not pass current step change step to previous\n identity = CdiUtil.bean(Identity)\n retry_current_step = identity.getWorkingParameter(\"retry_current_step\")\n if retry_current_step:\n print \"OTP. Get next step. Retrying current step %s\" % step\n # Remove old QR code\n #identity.setWorkingParameter(\"super_gluu_request\", \"timeout\")\n resultStep = step\n return resultStep\n return -1\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n self.setRequestScopedParameters(identity)\n\n if step == 1:\n print \"OTP. Authenticate for step 1\"\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n otp_auth_method = \"authenticate\"\n # Uncomment this block if you need to allow user second OTP registration\n #enrollment_mode = ServerUtil.getFirstValue(requestParameters, \"loginForm:registerButton\")\n #if StringHelper.isNotEmpty(enrollment_mode):\n # otp_auth_method = \"enroll\"\n\n if otp_auth_method == \"authenticate\":\n user_enrollments = self.findEnrollments(authenticated_user.getUserId())\n if len(user_enrollments) == 0:\n otp_auth_method = \"enroll\"\n print \"OTP. Authenticate for step 1. There is no OTP enrollment for user '%s'. Changing otp_auth_method to '%s'\" % (authenticated_user.getUserId(), otp_auth_method)\n\n if otp_auth_method == \"enroll\":\n print \"OTP. Authenticate for step 1. Setting count steps: '%s'\" % 3\n identity.setWorkingParameter(\"otp_count_login_steps\", 3)\n\n print \"OTP. Authenticate for step 1. otp_auth_method: '%s'\" % otp_auth_method\n identity.setWorkingParameter(\"otp_auth_method\", otp_auth_method)\n\n return True\n elif step == 2:\n print \"OTP. Authenticate for step 2\"\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Authenticate for step 2. Failed to determine user name\"\n return False\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n # Restore state from session\n identity.setWorkingParameter(\"retry_current_step\", False)\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if otp_auth_method == 'enroll':\n auth_result = ServerUtil.getFirstValue(requestParameters, \"auth_result\")\n if not StringHelper.isEmpty(auth_result):\n # defect fix #1225 - Retry the step, show QR code again\n if auth_result == 'timeout':\n\t\t\t\t\t\tprint \"OTP. QR-code timeout. Authenticate for step %s. Reinitializing current step\" % step\n\t\t\t\t\t\tidentity.setWorkingParameter(\"retry_current_step\", True)\n\t\t\t\t\t\treturn True\n\n print \"OTP. Authenticate for step 2. User not enrolled OTP\"\n return False\n\n print \"OTP. Authenticate for step 2. Skipping this step during enrollment\"\n return True\n\n otp_auth_result = self.processOtpAuthentication(requestParameters, user.getUserId(), identity, otp_auth_method)\n print \"OTP. Authenticate for step 2. OTP authentication result: '%s'\" % otp_auth_result\n\n return otp_auth_result\n elif step == 3:\n print \"OTP. Authenticate for step 3\"\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Authenticate for step 2. Failed to determine user name\"\n return False\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n # Restore state from session\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if otp_auth_method != 'enroll':\n return False\n\n otp_auth_result = self.processOtpAuthentication(requestParameters, user.getUserId(), identity, otp_auth_method)\n print \"OTP. Authenticate for step 3. OTP authentication result: '%s'\" % otp_auth_result\n\n return otp_auth_result\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n self.setRequestScopedParameters(identity)\n\n if step == 1:\n print \"OTP. Prepare for step 1\"\n\n return True\n elif step == 2:\n print \"OTP. Prepare for step 2\"\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Prepare for step 2. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Prepare for step 2. Failed to load user enty\"\n return False\n\n if self.otpType == \"hotp\":\n otp_secret_key = self.generateSecretHotpKey()\n otp_enrollment_request = self.generateHotpSecretKeyUri(otp_secret_key, self.otpIssuer, user.getAttribute(\"displayName\"))\n elif self.otpType == \"totp\":\n otp_secret_key = self.generateSecretTotpKey()\n otp_enrollment_request = self.generateTotpSecretKeyUri(otp_secret_key, self.otpIssuer, user.getAttribute(\"displayName\"))\n else:\n print \"OTP. Prepare for step 2. Unknown OTP type: '%s'\" % self.otpType\n return False\n\n print \"OTP. Prepare for step 2. Prepared enrollment request for user: '%s'\" % user.getUserId()\n identity.setWorkingParameter(\"otp_secret_key\", self.toBase64Url(otp_secret_key))\n identity.setWorkingParameter(\"otp_enrollment_request\", otp_enrollment_request)\n\n return True\n elif step == 3:\n print \"OTP. Prepare for step 3\"\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Prepare for step 3. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n return True\n\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"otp_auth_method\", \"otp_count_login_steps\", \"otp_secret_key\", \"otp_enrollment_request\",\"retry_current_step\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n identity = CdiUtil.bean(Identity)\n\n if identity.isSetWorkingParameter(\"otp_count_login_steps\"):\n return StringHelper.toInteger(\"%s\" % identity.getWorkingParameter(\"otp_count_login_steps\"))\n else:\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n identity = CdiUtil.bean(Identity)\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Gep page for step 2. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n return \"/auth/otp/enroll.xhtml\"\n else:\n return \"/auth/otp/otplogin.xhtml\"\n elif step == 3:\n return \"/auth/otp/otplogin.xhtml\"\n\n return \"\"\n\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def setRequestScopedParameters(self, identity):\n if self.registrationUri != None:\n identity.setWorkingParameter(\"external_registration_uri\", self.registrationUri)\n\n if self.customLabel != None:\n identity.setWorkingParameter(\"qr_label\", self.customLabel)\n\n identity.setWorkingParameter(\"qr_options\", self.customQrOptions)\n\n def loadOtpConfiguration(self, configurationAttributes):\n print \"OTP. Load OTP configuration\"\n if not configurationAttributes.containsKey(\"otp_conf_file\"):\n return False\n\n otp_conf_file = configurationAttributes.get(\"otp_conf_file\").getValue2()\n\n # Load configuration from file\n f = open(otp_conf_file, 'r')\n try:\n otpConfiguration = json.loads(f.read())\n except:\n print \"OTP. Load OTP configuration. Failed to load configuration from file:\", otp_conf_file\n return False\n finally:\n f.close()\n\n # Check configuration file settings\n try:\n self.hotpConfiguration = otpConfiguration[\"hotp\"]\n self.totpConfiguration = otpConfiguration[\"totp\"]\n \n hmacShaAlgorithm = self.totpConfiguration[\"hmacShaAlgorithm\"]\n hmacShaAlgorithmType = None\n\n if StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha1\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_1\n elif StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha256\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_256\n elif StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha512\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_512\n else:\n print \"OTP. Load OTP configuration. Invalid TOTP HMAC SHA algorithm: '%s'\" % hmacShaAlgorithm\n \n self.totpConfiguration[\"hmacShaAlgorithmType\"] = hmacShaAlgorithmType\n except:\n print \"OTP. Load OTP configuration. Invalid configuration file '%s' format. Exception: '%s'\" % (otp_conf_file, sys.exc_info()[1])\n return False\n \n\n return True\n\n def processBasicAuthentication(self, credentials):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if find_user_by_uid == None:\n print \"OTP. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def findEnrollments(self, user_name, skipPrefix = True):\n result = []\n\n userService = CdiUtil.bean(UserService)\n user = userService.getUser(user_name, \"jansExtUid\")\n if user == None:\n print \"OTP. Find enrollments. Failed to find user\"\n return result\n \n user_custom_ext_attribute = userService.getCustomAttribute(user, \"jansExtUid\")\n if user_custom_ext_attribute == None:\n return result\n\n otp_prefix = \"%s:\" % self.otpType\n \n otp_prefix_length = len(otp_prefix) \n for user_external_uid in user_custom_ext_attribute.getValues():\n index = user_external_uid.find(otp_prefix)\n if index != -1:\n if skipPrefix:\n enrollment_uid = user_external_uid[otp_prefix_length:]\n else:\n enrollment_uid = user_external_uid\n\n result.append(enrollment_uid)\n \n return result\n\n def validateSessionId(self, identity):\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"OTP. Validate session id. Failed to determine session_id\"\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if not otp_auth_method in ['enroll', 'authenticate']:\n print \"OTP. Validate session id. Failed to authenticate user. otp_auth_method: '%s'\" % otp_auth_method\n return False\n\n return True\n\n def processOtpAuthentication(self, requestParameters, user_name, identity, otp_auth_method):\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n userService = CdiUtil.bean(UserService)\n\n otpCode = ServerUtil.getFirstValue(requestParameters, \"loginForm:otpCode\")\n if StringHelper.isEmpty(otpCode):\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to authenticate. OTP code is empty\")\n print \"OTP. Process OTP authentication. otpCode is empty\"\n\n return False\n \n if otp_auth_method == \"enroll\":\n # Get key from session\n otp_secret_key_encoded = identity.getWorkingParameter(\"otp_secret_key\")\n if otp_secret_key_encoded == None:\n print \"OTP. Process OTP authentication. OTP secret key is invalid\"\n return False\n \n otp_secret_key = self.fromBase64Url(otp_secret_key_encoded)\n\n if self.otpType == \"hotp\":\n validation_result = self.validateHotpKey(otp_secret_key, 1, otpCode)\n \n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process HOTP authentication during enrollment. otpCode is valid\"\n # Store HOTP Secret Key and moving factor in user entry\n otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, validation_result[\"movingFactor\"] )\n\n # Add otp_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n\n print \"OTP. Process HOTP authentication during enrollment. Failed to update user entry\"\n elif self.otpType == \"totp\":\n validation_result = self.validateTotpKey(otp_secret_key, otpCode,user_name)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process TOTP authentication during enrollment. otpCode is valid\"\n # Store TOTP Secret Key and moving factor in user entry\n otp_user_external_uid = \"totp:%s\" % otp_secret_key_encoded\n\n # Add otp_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n\n print \"OTP. Process TOTP authentication during enrollment. Failed to update user entry\"\n elif otp_auth_method == \"authenticate\":\n user_enrollments = self.findEnrollments(user_name)\n\n if len(user_enrollments) == 0:\n print \"OTP. Process OTP authentication. There is no OTP enrollment for user '%s'\" % user_name\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"There is no valid OTP user enrollments\")\n return False\n\n if self.otpType == \"hotp\":\n for user_enrollment in user_enrollments:\n user_enrollment_data = user_enrollment.split(\";\")\n otp_secret_key_encoded = user_enrollment_data[0]\n\n # Get current moving factor from user entry\n moving_factor = StringHelper.toInteger(user_enrollment_data[1])\n otp_secret_key = self.fromBase64Url(otp_secret_key_encoded)\n\n # Validate TOTP\n validation_result = self.validateHotpKey(otp_secret_key, moving_factor, otpCode)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process HOTP authentication during authentication. otpCode is valid\"\n otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, moving_factor )\n new_otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, validation_result[\"movingFactor\"] )\n \n # Update moving factor in user entry\n find_user_by_external_uid = userService.replaceUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, new_otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n \n print \"OTP. Process HOTP authentication during authentication. Failed to update user entry\"\n elif self.otpType == \"totp\":\n for user_enrollment in user_enrollments:\n otp_secret_key = self.fromBase64Url(user_enrollment)\n\n # Validate TOTP\n validation_result = self.validateTotpKey(otp_secret_key, otpCode, user_name)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process TOTP authentication during authentication. otpCode is valid\"\n return True\n\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to authenticate. OTP code is invalid\")\n print \"OTP. Process OTP authentication. OTP code is invalid\"\n\n return False\n\n # Shared HOTP/TOTP methods\n def generateSecretKey(self, keyLength):\n bytes = jarray.zeros(keyLength, \"b\")\n secureRandom = SecureRandom()\n secureRandom.nextBytes(bytes)\n \n return bytes\n \n # HOTP methods\n def generateSecretHotpKey(self):\n keyLength = self.hotpConfiguration[\"keyLength\"]\n \n return self.generateSecretKey(keyLength)\n\n def generateHotpKey(self, secretKey, movingFactor):\n digits = self.hotpConfiguration[\"digits\"]\n\n hotp = HOTP.key(secretKey).digits(digits).movingFactor(movingFactor).build()\n \n return hotp.value()\n\n def validateHotpKey(self, secretKey, movingFactor, totpKey):\n lookAheadWindow = self.hotpConfiguration[\"lookAheadWindow\"]\n digits = self.hotpConfiguration[\"digits\"]\n\n htopValidationResult = HOTPValidator.lookAheadWindow(lookAheadWindow).validate(secretKey, movingFactor, digits, totpKey)\n if htopValidationResult.isValid():\n return { \"result\": True, \"movingFactor\": htopValidationResult.getNewMovingFactor() }\n\n return { \"result\": False, \"movingFactor\": None }\n\n def generateHotpSecretKeyUri(self, secretKey, issuer, userDisplayName):\n digits = self.hotpConfiguration[\"digits\"]\n\n secretKeyBase32 = self.toBase32(secretKey)\n otpKey = OTPKey(secretKeyBase32, OTPType.HOTP)\n label = issuer + \" %s\" % userDisplayName\n\n otpAuthURI = OTPAuthURIBuilder.fromKey(otpKey).label(label).issuer(issuer).digits(digits).build()\n\n return otpAuthURI.toUriString()\n\n # TOTP methods\n def generateSecretTotpKey(self):\n keyLength = self.totpConfiguration[\"keyLength\"]\n \n return self.generateSecretKey(keyLength)\n\n def generateTotpKey(self, secretKey):\n digits = self.totpConfiguration[\"digits\"]\n timeStep = self.totpConfiguration[\"timeStep\"]\n hmacShaAlgorithmType = self.totpConfiguration[\"hmacShaAlgorithmType\"]\n\n totp = TOTP.key(secretKey).digits(digits).timeStep(TimeUnit.SECONDS.toMillis(timeStep)).hmacSha(hmacShaAlgorithmType).build()\n \n return totp.value()\n\n def validateTotpKey(self, secretKey, totpKey, user_name):\n localTotpKey = self.generateTotpKey(secretKey)\n cachedOTP = self.getCachedOTP(user_name)\n\n if StringHelper.equals(localTotpKey, totpKey) and not StringHelper.equals(localTotpKey, cachedOTP):\n userService = CdiUtil.bean(UserService)\n if cachedOTP is None:\n userService.addUserAttribute(user_name, \"jansOTPCache\",localTotpKey)\n else :\n userService.replaceUserAttribute(user_name, \"jansOTPCache\", cachedOTP, localTotpKey)\n print \"OTP. Caching OTP: '%s'\" % localTotpKey\n return { \"result\": True }\n return { \"result\": False }\n\t\n def getCachedOTP(self, user_name):\n userService = CdiUtil.bean(UserService)\n user = userService.getUser(user_name, \"jansOTPCache\")\n if user is None:\n print \"OTP. Get Cached OTP. Failed to find OTP\"\n return None\n customAttribute = userService.getCustomAttribute(user, \"jansOTPCache\")\n \n if customAttribute is None:\n print \"OTP. Custom attribute is null\"\n return None\n user_cached_OTP = customAttribute.getValue()\n if user_cached_OTP is None:\n print \"OTP. no OTP is present in LDAP\"\n return None\n \n print \"OTP.Cached OTP: '%s'\" % user_cached_OTP\n return user_cached_OTP\n \n def generateTotpSecretKeyUri(self, secretKey, issuer, userDisplayName):\n digits = self.totpConfiguration[\"digits\"]\n timeStep = self.totpConfiguration[\"timeStep\"]\n\n secretKeyBase32 = self.toBase32(secretKey)\n otpKey = OTPKey(secretKeyBase32, OTPType.TOTP)\n label = issuer + \" %s\" % userDisplayName\n\n otpAuthURI = OTPAuthURIBuilder.fromKey(otpKey).label(label).issuer(issuer).digits(digits).timeStep(TimeUnit.SECONDS.toMillis(timeStep)).build()\n\n return otpAuthURI.toUriString()\n\n # Utility methods\n def toBase32(self, bytes):\n return BaseEncoding.base32().omitPadding().encode(bytes)\n\n def toBase64Url(self, bytes):\n return BaseEncoding.base64Url().encode(bytes)\n\n def fromBase64Url(self, chars):\n return BaseEncoding.base64Url().decode(chars)\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "otp", "modified": false, "configurationProperties": [ { "hide": false, "value2": "totp", "value1": "otp_type" }, { "hide": false, "value2": "/etc/certs/otp_configuration.json", "value1": "otp_conf_file" }, { "hide": false, "value2": "Gluu Inc", "value1": "issuer" }, { "hide": false, "value2": "Gluu OTP", "value1": "label" }, { "hide": false, "value2": "{ size: 400, mSize: 0.05 }", "value1": "qr_options" }, { "hide": false, "value2": "https://jenkins-build.jans.io/identity/register", "value1": "registration_uri" } ], "baseDn": "inum=5018-D4BF,ou=scripts,o=jans" }, { "internal": false, "level": 50, "programmingLanguage": "python", "description": "DUO authentication module", "locationType": "ldap", "dn": "inum=5018-F9CF,ou=scripts,o=jans", "inum": "5018-F9CF", "script": "from io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService, SessionIdService\nfrom io.jans.as.server.service.common import UserService\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom io.jans.as.server.service.net import HttpService\nimport os\nimport java\nimport sys\nfrom com.duosecurity import Client\nfrom com.duosecurity.exception import DuoException\nfrom com.duosecurity.model import Token\nfrom io.jans.jsf2.service import FacesService\nfrom jakarta.faces.context import FacesContext\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.as.server.util import ServerUtil\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Duo-Universal. Initialization\"\n \n if (not configurationAttributes.containsKey(\"client_id\")):\n\t print \"Duo Universal. Initialization. Property client_id is not specified\"\n\t return False\n else: \n \tself.client_id = configurationAttributes.get(\"client_id\").getValue2() \n \t\n if (not configurationAttributes.containsKey(\"client_secret\")):\n\t print \"Duo Universal. Initialization. Property client_secret is not specified\"\n\t return False\n else: \n \tself.client_secret = configurationAttributes.get(\"client_secret\").getValue2() \n \t\n if (not configurationAttributes.containsKey(\"api_hostname\")):\n\t print \"Duo Universal. Initialization. Property api_hostname is not specified\"\n\t return False\n else: \n \tself.api_hostname = configurationAttributes.get(\"api_hostname\").getValue2() \n \n print \"Duo-Universal. Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Duo-Universal. Destroy\"\n print \"Duo-Universal. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"Duo-Universal. Authenticate for step %s\" % step\n \n identity = CdiUtil.bean(Identity)\n if (step == 1):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n # Check if user authenticated already in another custom script\n user = authenticationService.getAuthenticatedUser()\n \n if user == None:\n print \"user is none\"\n credentials = identity.getCredentials()\n \n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n \n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n \t\t\t\t\n if (not logged_in):\n print \"return false\"\n return False\n identity.setWorkingParameter('username',user_name)\n return True\n \n elif (step == 2):\n \n identity = CdiUtil.bean(Identity)\n \n state = ServerUtil.getFirstValue(requestParameters, \"state\")\n \t\t\t# Get state to verify consistency and originality\n if identity.getWorkingParameter('state_duo') == state :\n \t\n \t# Get authorization token to trade for 2FA\n \tduoCode = ServerUtil.getFirstValue(requestParameters, \"duo_code\")\n\t \ttry:\n\t token = self.duo_client.exchangeAuthorizationCodeFor2FAResult(duoCode, identity.getWorkingParameter('username'))\n print \"token status %s \" % token.getAuth_result().getStatus()\n\t \texcept:\n\t # Handle authentication failure.\n\t print \"authentication failure\", sys.exc_info()[1]\n\t return False\n\t \n\t # User successfully passed Duo authentication.\n\t \n\t if \"allow\" == token.getAuth_result().getStatus():\n\t return True\n\t \n\t return False\n \n else:\n print \"Neither step 1 or 2\" \n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \tprint \"Duo-Universal. Prepare for step %s\" % step\n \n if (step == 1):\n return True\n elif (step == 2):\n \tidentity = CdiUtil.bean(Identity)\n user_name = identity.getWorkingParameter('username')\n \tfacesContext = CdiUtil.bean(FacesContext)\n \trequest = facesContext.getExternalContext().getRequest()\n \thttpService = CdiUtil.bean(HttpService)\n \turl = httpService.constructServerUrl(request) + \"/postlogin.htm\"\n \t\n \ttry:\n\t \tself.duo_client = Client(self.client_id,self.client_secret,self.api_hostname,url)\n\t \tself.duo_client.healthCheck()\n\t \texcept:\n print \"Duo-Universal. Duo config error. Verify the values in Duo-Universal.conf are correct \", sys.exc_info()[1]\n \n state = self.duo_client.generateState()\n identity.setWorkingParameter(\"state_duo\",state)\n prompt_uri = self.duo_client.createAuthUrl(user_name, state)\n \n facesService = CdiUtil.bean(FacesService)\n facesService.redirectToExternalURL(prompt_uri )\n\n return True\n \n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"state_duo\", \"username\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n print \"Duo-Universal. getPageForStep - %s \" % step\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n ", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "duo", "modified": false, "configurationProperties": [ { "hide": false, "value2": "/etc/certs/duo_creds.json", "value1": "duo_creds_file" }, { "hide": false, "value2": "api-random.duosecurity.com", "value1": "duo_host" } ], "baseDn": "inum=5018-F9CF,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "Add GitHub claims to introspection response", "locationType": "ldap", "dn": "inum=8333-DFBC,ou=scripts,o=jans", "inum": "8333-DFBC", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2019, Janssen\n#\n#\n\nfrom io.jans.model.custom.script.type.introspection import IntrospectionType\nfrom io.jans.as.server.model.common import AuthorizationGrantList\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.service.cdi.util import CdiUtil\nfrom java.lang import String\n\nclass Introspection(IntrospectionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Github. Introspection script. Initializing ...\"\n print \"Github. Introspection script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Github. Introspection script. Destroying ...\"\n print \"Github. Introspection script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - apply introspection method, false - ignore it.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def modifyResponse(self, responseAsJsonObject, context):\n print \"Github. Checking for saved parameters in session ...\"\n try:\n token = context.getHttpRequest().getParameter(\"token\")\n if token is None:\n print \"Github. Introspection. There is no token in request\"\n return True\n\n authorizationGrantList = CdiUtil.bean(AuthorizationGrantList)\n authorizationGrant = authorizationGrantList.getAuthorizationGrantByAccessToken(token)\n if authorizationGrant is None:\n print \"Github. Introspection. Failed to load authorization grant by token\"\n return False\n\n # Put user_id into response\n responseAsJsonObject.accumulate(\"user_id\", authorizationGrant.getUser().getUserId())\n\n # Put custom parameters into response\n sessionDn = authorizationGrant.getSessionDn();\n print \"sessionDn '%s'\" % sessionDn\n if sessionDn is None:\n print \"There is no session\"\n return True\n\n sessionIdService = CdiUtil.bean(SessionIdService)\n session = sessionIdService.getSessionByDn(sessionDn, False)\n if sessionDn is None:\n print \"Github. Introspection. Failed to load session '%s'\" % sessionDn\n return False\n\n # Return session_id\n responseAsJsonObject.accumulate(\"session_id\", sessionDn)\n\n sessionAttributes = session.getSessionAttributes()\n if sessionAttributes is None:\n print \"There is no session attributes\"\n return True\n\n # Append custom claims\n customClaims = {}\n\n if sessionAttributes.containsKey(\"gihub_username\"):\n customClaims[\"gihub_username\"] = sessionAttributes.get(\"gihub_username\")\n if sessionAttributes.containsKey(\"gihub_access_token\"):\n customClaims[\"gihub_access_token\"] = sessionAttributes.get(\"gihub_access_token\")\n\n responseAsJsonObject.accumulate(\"customClaims\", customClaims)\n except Exception as e:\n print \"Exception occured. Unable to resolve role/scope mapping.\"\n print e\n\n return True\n\n", "enabled": false, "revision": 0, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "introspection", "name": "github-claims-introspection-script", "modified": false, "baseDn": "inum=8333-DFBC,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "locationType": "ldap", "dn": "inum=8AF7.D82A,ou=scripts,o=jans", "inum": "8AF7.D82A", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2020, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.model.custom.script.type.persistence import PersistenceType\nfrom io.jans.util import StringHelper\nfrom io.jans.persist.operation.auth import PasswordEncryptionHelper\nfrom io.jans.persist.operation.auth import PasswordEncryptionMethod\n\nimport java\n\nclass PersistenceExtension(PersistenceType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Persistence extension. Initialization\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Persistence extension. Destroy\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def onAfterCreate(self, context, configurationAttributes):\n print \"Persistence extension. Method: onAfterCreate\"\n\n def onAfterDestroy(self, context, configurationAttributes):\n print \"Persistence extension. Method: onAfterDestroy\"\n\n def createHashedPassword(self, credential):\n print \"Persistence extension. Method: createHashedPassword\"\n\n hashed_password= PasswordEncryptionHelper.createStoragePassword(credential, PasswordEncryptionMethod.HASH_METHOD_PKCS5S2)\n\n return hashed_password\n\n def compareHashedPasswords(self, credential, storedCredential):\n print \"Persistence extension. Method: compareHashedPasswords\"\n \n auth_result = PasswordEncryptionHelper.compareCredentials(credential, storedCredential)\n\n return auth_result \n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "persistence_extension", "name": "persistence_extension", "modified": false, "baseDn": "inum=8AF7.D82A,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "locationType": "ldap", "dn": "inum=8AF7.D82B,ou=scripts,o=jans", "inum": "8AF7.D82B", "script": "# oxShibboleth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2020, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.idp import IdpType\nfrom io.jans.util import StringHelper\nfrom io.jans.idp.externalauth import AuthenticatedNameTranslator\nfrom net.shibboleth.idp.authn.principal import UsernamePrincipal, IdPAttributePrincipal\nfrom net.shibboleth.idp.authn import ExternalAuthentication\nfrom net.shibboleth.idp.attribute import IdPAttribute, StringAttributeValue\nfrom net.shibboleth.idp.authn.context import AuthenticationContext, ExternalAuthenticationContext\nfrom net.shibboleth.idp.attribute.context import AttributeContext\nfrom javax.security.auth import Subject\nfrom java.util import Collections, HashMap, HashSet, ArrayList, Arrays\n\nimport java\n\nclass IdpExtension(IdpType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Idp extension. Initialization\"\n \n self.defaultNameTranslator = AuthenticatedNameTranslator()\n \n return True\n\n def destroy(self, configurationAttributes):\n print \"Idp extension. Destroy\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Translate attributes from user profile\n # context is io.jans.idp.externalauth.TranslateAttributesContext (https://github.com/JanssenFederation/shib-oxauth-authn3/blob/master/src/main/java/io.jans.idp/externalauth/TranslateAttributesContext.java)\n # configurationAttributes is java.util.Map\n def translateAttributes(self, context, configurationAttributes):\n print \"Idp extension. Method: translateAttributes\"\n \n # Return False to use default method\n #return False\n \n request = context.getRequest()\n userProfile = context.getUserProfile()\n principalAttributes = self.defaultNameTranslator.produceIdpAttributePrincipal(userProfile.getAttributes())\n print \"Idp extension. Converted user profile: '%s' to attribute principal: '%s'\" % (userProfile, principalAttributes)\n\n if not principalAttributes.isEmpty():\n print \"Idp extension. Found attributes from oxAuth. Processing...\"\n \n # Start: Custom part\n # Add givenName attribute\n givenNameAttribute = IdPAttribute(\"jansEnrollmentCode\")\n givenNameAttribute.setValues(ArrayList(Arrays.asList(StringAttributeValue(\"Dummy\"))))\n principalAttributes.add(IdPAttributePrincipal(givenNameAttribute))\n print \"Idp extension. Updated attribute principal: '%s'\" % principalAttributes\n # End: Custom part\n\n principals = HashSet()\n principals.addAll(principalAttributes)\n principals.add(UsernamePrincipal(userProfile.getId()))\n\n request.setAttribute(ExternalAuthentication.SUBJECT_KEY, Subject(False, Collections.singleton(principals),\n Collections.emptySet(), Collections.emptySet()))\n\n print \"Created an IdP subject instance with principals containing attributes for: '%s'\" % userProfile.getId()\n\n if False:\n idpAttributes = ArrayList()\n for principalAttribute in principalAttributes:\n idpAttributes.add(principalAttribute.getAttribute())\n \n request.setAttribute(ExternalAuthentication.ATTRIBUTES_KEY, idpAttributes)\n \n authenticationKey = context.getAuthenticationKey()\n profileRequestContext = ExternalAuthentication.getProfileRequestContext(authenticationKey, request)\n authContext = profileRequestContext.getSubcontext(AuthenticationContext)\n extContext = authContext.getSubcontext(ExternalAuthenticationContext)\n \n extContext.setSubject(Subject(False, Collections.singleton(principals), Collections.emptySet(), Collections.emptySet()));\n \n extContext.getSubcontext(AttributeContext, True).setUnfilteredIdPAttributes(idpAttributes)\n extContext.getSubcontext(AttributeContext).setIdPAttributes(idpAttributes)\n else:\n print \"No attributes released from oxAuth. Creating an IdP principal for: '%s'\" % userProfile.getId()\n request.setAttribute(ExternalAuthentication.PRINCIPAL_NAME_KEY, userProfile.getId())\n\n #Return True to specify that default method is not needed\n return False\n\n # Update attributes before releasing them\n # context is io.jans.idp.consent.processor.PostProcessAttributesContext (https://github.com/JanssenFederation/shib-oxauth-authn3/blob/master/src/main/java/io.jans.idp/consent/processor/PostProcessAttributesContext.java)\n # configurationAttributes is java.util.Map\n def updateAttributes(self, context, configurationAttributes):\n print \"Idp extension. Method: updateAttributes\"\n attributeContext = context.getAttributeContext()\n\n customAttributes = HashMap()\n customAttributes.putAll(attributeContext.getIdPAttributes())\n\n # Remove givenName attribute\n customAttributes.remove(\"givenName\")\n\n # Update surname attribute\n if customAttributes.containsKey(\"sn\"):\n customAttributes.get(\"sn\").setValues(ArrayList(Arrays.asList(StringAttributeValue(\"Dummy\"))))\n \n # Set updated attributes\n attributeContext.setIdPAttributes(customAttributes.values())\n\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "idp", "name": "idp", "modified": false, "baseDn": "inum=8AF7.D82B,ou=scripts,o=jans" }, { "internal": false, "level": 70, "programmingLanguage": "python", "description": "Fido2 authentication module", "locationType": "ldap", "dn": "inum=8BAF-80D7,ou=scripts,o=jans", "inum": "8BAF-80D7", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.fido2.client import Fido2ClientFactory\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\nfrom java.util import Arrays\nfrom java.util.concurrent.locks import ReentrantLock\nfrom jakarta.ws.rs import ClientErrorException\nfrom jakarta.ws.rs.core import Response\n\nimport java\nimport sys\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Fido2. Initialization\"\n\n if not configurationAttributes.containsKey(\"fido2_server_uri\"):\n print \"fido2_server_uri. Initialization. Property fido2_server_uri is not specified\"\n return False\n\n self.fido2_server_uri = configurationAttributes.get(\"fido2_server_uri\").getValue2()\n\n self.fido2_domain = None\n if configurationAttributes.containsKey(\"fido2_domain\"):\n self.fido2_domain = configurationAttributes.get(\"fido2_domain\").getValue2()\n\n self.metaDataLoaderLock = ReentrantLock()\n self.metaDataConfiguration = None\n\n print \"Fido2. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Fido2. Destroy\"\n print \"Fido2. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n\n if step == 1:\n print \"Fido2. Authenticate for step 1\"\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\",ServerUtil.getFirstValue(requestParameters, \"loginForm:platformAuthenticator\"))\n\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n return True\n elif step == 2:\n print \"Fido2. Authenticate for step 2\"\n\n token_response = ServerUtil.getFirstValue(requestParameters, \"tokenResponse\")\n if token_response == None:\n print \"Fido2. Authenticate for step 2. tokenResponse is empty\"\n return False\n\n auth_method = ServerUtil.getFirstValue(requestParameters, \"authMethod\")\n if auth_method == None:\n print \"Fido2. Authenticate for step 2. authMethod is empty\"\n return False\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Fido2. Prepare for step 2. Failed to determine user name\"\n return False\n\n if auth_method == 'authenticate':\n print \"Fido2. Prepare for step 2. Call Fido2 in order to finish authentication flow\"\n assertionService = Fido2ClientFactory.instance().createAssertionService(self.metaDataConfiguration)\n assertionStatus = assertionService.verify(token_response)\n authenticationStatusEntity = assertionStatus.readEntity(java.lang.String)\n\n if assertionStatus.getStatus() != Response.Status.OK.getStatusCode():\n print \"Fido2. Authenticate for step 2. Get invalid authentication status from Fido2 server\"\n return False\n\n return True\n elif auth_method == 'enroll':\n print \"Fido2. Prepare for step 2. Call Fido2 in order to finish registration flow\"\n attestationService = Fido2ClientFactory.instance().createAttestationService(self.metaDataConfiguration)\n attestationStatus = attestationService.verify(token_response)\n\n if attestationStatus.getStatus() != Response.Status.OK.getStatusCode():\n print \"Fido2. Authenticate for step 2. Get invalid registration status from Fido2 server\"\n return False\n\n return True\n else:\n print \"Fido2. Prepare for step 2. Authentication method is invalid\"\n return False\n\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n\n if step == 1:\n return True\n elif step == 2:\n print \"Fido2. Prepare for step 2\"\n\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Fido2. Prepare for step 2. Failed to determine session_id\"\n return False\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Fido2. Prepare for step 2. Failed to determine user name\"\n return False\n\n userName = user.getUserId()\n\n metaDataConfiguration = self.getMetaDataConfiguration()\n\n assertionResponse = None\n attestationResponse = None\n\n # Check if user have registered devices\n count = CdiUtil.bean(UserService).countFido2RegisteredDevices(userName, self.fido2_domain)\n if count > 0:\n print \"Fido2. Prepare for step 2. Call Fido2 endpoint in order to start assertion flow\"\n\n try:\n assertionService = Fido2ClientFactory.instance().createAssertionService(metaDataConfiguration)\n assertionRequest = json.dumps({'username': userName}, separators=(',', ':'))\n assertionResponse = assertionService.authenticate(assertionRequest).readEntity(java.lang.String)\n # if device has only platform authenticator and assertion is expecting a security key\n if \"internal\" in assertionResponse:\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\", \"true\")\n else:\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\", \"false\")\n\n except ClientErrorException, ex:\n print \"Fido2. Prepare for step 2. Failed to start assertion flow. Exception:\", sys.exc_info()[1]\n return False\n else:\n print \"Fido2. Prepare for step 2. Call Fido2 endpoint in order to start attestation flow\"\n\n try:\n attestationService = Fido2ClientFactory.instance().createAttestationService(metaDataConfiguration)\n platformAuthenticatorAvailable = identity.getWorkingParameter(\"platformAuthenticatorAvailable\") == \"true\"\n basic_json = {'username': userName, 'displayName': userName, 'attestation' : 'direct'}\n print \"% s\" % identity.getWorkingParameter(\"platformAuthenticatorAvailable\")\n if platformAuthenticatorAvailable is True:\n # the reason behind userVerification = discouraged --> https://chromium.googlesource.com/chromium/src/+/master/content/browser/webauth/uv_preferred.md\n platform_json = {\"authenticatorSelection\":{\"authenticatorAttachment\":\"platform\",\"requireResidentKey\" : \"false\", \"userVerification\" : \"discouraged\" } }\n basic_json.update(platform_json)\n\n # also need to add this --> excludeCredentials : [//registered ids]\n print \" basic_json %s\" % basic_json\n\n attestationRequest = json.dumps(basic_json)\n #, separators=(',', ':'))\n\n attestationResponse = attestationService.register(attestationRequest).readEntity(java.lang.String)\n except ClientErrorException, ex:\n print \"Fido2. Prepare for step 2. Failed to start attestation flow. Exception:\", sys.exc_info()[1]\n return False\n\n identity.setWorkingParameter(\"fido2_assertion_request\", ServerUtil.asJson(assertionResponse))\n identity.setWorkingParameter(\"fido2_attestation_request\", ServerUtil.asJson(attestationResponse))\n print \"Fido2. Prepare for step 2. Successfully start flow with next requests.\\nfido2_assertion_request: '%s'\\nfido2_attestation_request: '%s'\" % ( assertionResponse, attestationResponse )\n\n return True\n elif step == 3:\n print \"Fido2. Prepare for step 3\"\n\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList( \"platformAuthenticatorAvailable\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n return \"/auth/fido2/step1.xhtml\"\n elif step == 2:\n identity = CdiUtil.bean(Identity)\n if identity.getWorkingParameter(\"platformAuthenticatorAvailable\") == \"true\":\n return \"/auth/fido2/platform.xhtml\"\n else:\n return \"/auth/fido2/secKeys.xhtml\"\n return \"\"\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def getMetaDataConfiguration(self):\n if self.metaDataConfiguration != None:\n return self.metaDataConfiguration\n\n self.metaDataLoaderLock.lock()\n # Make sure that another thread not loaded configuration already\n if self.metaDataConfiguration != None:\n return self.metaDataConfiguration\n\n try:\n print \"Fido2. Initialization. Downloading Fido2 metadata\"\n self.fido2_server_metadata_uri = self.fido2_server_uri + \"/.well-known/fido2-configuration\"\n\n metaDataConfigurationService = Fido2ClientFactory.instance().createMetaDataConfigurationService(self.fido2_server_metadata_uri)\n\n max_attempts = 10\n for attempt in range(1, max_attempts + 1):\n try:\n self.metaDataConfiguration = metaDataConfigurationService.getMetadataConfiguration().readEntity(java.lang.String)\n return self.metaDataConfiguration\n except ClientErrorException, ex:\n # Detect if last try or we still get Service Unavailable HTTP error\n if (attempt == max_attempts) or (ex.getResponse().getResponseStatus() != Response.Status.SERVICE_UNAVAILABLE):\n raise ex\n\n java.lang.Thread.sleep(3000)\n print \"Attempting to load metadata: %d\" % attempt\n finally:\n self.metaDataLoaderLock.unlock()\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "fido2", "modified": false, "configurationProperties": [ { "hide": false, "value2": "https://jenkins-build.jans.io", "value1": "fido2_server_uri" } ], "baseDn": "inum=8BAF-80D7,ou=scripts,o=jans" }, { "internal": false, "level": 60, "programmingLanguage": "python", "description": "Super Gluu authentication module", "locationType": "ldap", "dn": "inum=92F0-BF9E,ou=scripts,o=jans", "inum": "92F0-BF9E", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom com.google.android.gcm.server import Sender, Message\nfrom com.notnoop.apns import APNS\nfrom java.util import Arrays\nfrom org.apache.http.params import CoreConnectionPNames\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.model.config import ConfigurationFactory\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.service.fido.u2f import DeviceRegistrationService\nfrom io.jans.as.server.service.net import HttpService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.as.common.service.common import EncryptionService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.service import MailService\nfrom io.jans.as.server.service.push.sns import PushPlatform\nfrom io.jans.as.server.service.push.sns import PushSnsService\nfrom io.jans.notify.client import NotifyClientFactory \nfrom java.util import Arrays, HashMap, IdentityHashMap, Date\nfrom java.time import ZonedDateTime\nfrom java.time.format import DateTimeFormatter\n\nimport datetime\nimport urllib\n\nimport sys\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Super-Gluu. Initialization\"\n\n if not configurationAttributes.containsKey(\"authentication_mode\"):\n print \"Super-Gluu. Initialization. Property authentication_mode is mandatory\"\n return False\n\n self.applicationId = None\n if configurationAttributes.containsKey(\"application_id\"):\n self.applicationId = configurationAttributes.get(\"application_id\").getValue2()\n\n self.registrationUri = None\n if configurationAttributes.containsKey(\"registration_uri\"):\n self.registrationUri = configurationAttributes.get(\"registration_uri\").getValue2()\n\n authentication_mode = configurationAttributes.get(\"authentication_mode\").getValue2()\n if StringHelper.isEmpty(authentication_mode):\n print \"Super-Gluu. Initialization. Failed to determine authentication_mode. authentication_mode configuration parameter is empty\"\n return False\n \n self.oneStep = StringHelper.equalsIgnoreCase(authentication_mode, \"one_step\")\n self.twoStep = StringHelper.equalsIgnoreCase(authentication_mode, \"two_step\")\n\n if not (self.oneStep or self.twoStep):\n print \"Super-Gluu. Initialization. Valid authentication_mode values are one_step and two_step\"\n return False\n \n self.enabledPushNotifications = self.initPushNotificationService(configurationAttributes)\n\n self.androidUrl = None\n if configurationAttributes.containsKey(\"supergluu_android_download_url\"):\n self.androidUrl = configurationAttributes.get(\"supergluu_android_download_url\").getValue2()\n\n self.IOSUrl = None\n if configurationAttributes.containsKey(\"supergluu_ios_download_url\"):\n self.IOSUrl = configurationAttributes.get(\"supergluu_ios_download_url\").getValue2()\n\n self.customLabel = None\n if configurationAttributes.containsKey(\"label\"):\n self.customLabel = configurationAttributes.get(\"label\").getValue2()\n\n self.customQrOptions = {}\n if configurationAttributes.containsKey(\"qr_options\"):\n self.customQrOptions = configurationAttributes.get(\"qr_options\").getValue2()\n\n self.use_super_gluu_group = False\n if configurationAttributes.containsKey(\"super_gluu_group\"):\n self.super_gluu_group = configurationAttributes.get(\"super_gluu_group\").getValue2()\n self.use_super_gluu_group = True\n print \"Super-Gluu. Initialization. Using super_gluu only if user belong to group: %s\" % self.super_gluu_group\n\n self.use_audit_group = False\n if configurationAttributes.containsKey(\"audit_group\"):\n self.audit_group = configurationAttributes.get(\"audit_group\").getValue2()\n\n if (not configurationAttributes.containsKey(\"audit_group_email\")):\n print \"Super-Gluu. Initialization. Property audit_group_email is not specified\"\n return False\n\n self.audit_email = configurationAttributes.get(\"audit_group_email\").getValue2()\n self.use_audit_group = True\n\n print \"Super-Gluu. Initialization. Using audit group: %s\" % self.audit_group\n \n if self.use_super_gluu_group or self.use_audit_group:\n if not configurationAttributes.containsKey(\"audit_attribute\"):\n print \"Super-Gluu. Initialization. Property audit_attribute is not specified\"\n return False\n else:\n self.audit_attribute = configurationAttributes.get(\"audit_attribute\").getValue2()\n\n print \"Super-Gluu. Initialized successfully. oneStep: '%s', twoStep: '%s', pushNotifications: '%s', customLabel: '%s'\" % (self.oneStep, self.twoStep, self.enabledPushNotifications, self.customLabel)\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Super-Gluu. Destroy\"\n\n self.pushAndroidService = None\n self.pushAppleService = None\n\n print \"Super-Gluu. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n client_redirect_uri = self.getApplicationUri(session_attributes)\n if client_redirect_uri == None:\n print \"Super-Gluu. Authenticate. redirect_uri is not set\"\n return False\n\n self.setRequestScopedParameters(identity, step)\n\n # Validate form result code and initialize QR code regeneration if needed (retry_current_step = True)\n identity.setWorkingParameter(\"retry_current_step\", False)\n form_auth_result = ServerUtil.getFirstValue(requestParameters, \"auth_result\")\n if StringHelper.isNotEmpty(form_auth_result):\n print \"Super-Gluu. Authenticate for step %s. Get auth_result: '%s'\" % (step, form_auth_result)\n if form_auth_result in ['error']:\n return False\n\n if form_auth_result in ['timeout']:\n if ((step == 1) and self.oneStep) or ((step == 2) and self.twoStep): \n print \"Super-Gluu. Authenticate for step %s. Reinitializing current step\" % step\n identity.setWorkingParameter(\"retry_current_step\", True)\n return False\n\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n if step == 1:\n print \"Super-Gluu. Authenticate for step 1\"\n\n user_name = credentials.getUsername()\n if self.oneStep:\n session_device_status = self.getSessionDeviceStatus(session_attributes, user_name)\n if session_device_status == None:\n return False\n\n u2f_device_id = session_device_status['device_id']\n\n validation_result = self.validateSessionDeviceStatus(client_redirect_uri, session_device_status)\n if validation_result:\n print \"Super-Gluu. Authenticate for step 1. User successfully authenticated with u2f_device '%s'\" % u2f_device_id\n else:\n return False\n \n if not session_device_status['one_step']:\n print \"Super-Gluu. Authenticate for step 1. u2f_device '%s' is not one step device\" % u2f_device_id\n return False\n \n # There are two steps only in enrollment mode\n if session_device_status['enroll']:\n return validation_result\n\n identity.setWorkingParameter(\"super_gluu_count_login_steps\", 1)\n\n user_inum = session_device_status['user_inum']\n\n u2f_device = deviceRegistrationService.findUserDeviceRegistration(user_inum, u2f_device_id, \"jansId\")\n if u2f_device == None:\n print \"Super-Gluu. Authenticate for step 1. Failed to load u2f_device '%s'\" % u2f_device_id\n return False\n\n logged_in = authenticationService.authenticate(user_name)\n if not logged_in:\n print \"Super-Gluu. Authenticate for step 1. Failed to authenticate user '%s'\" % user_name\n return False\n\n print \"Super-Gluu. Authenticate for step 1. User '%s' successfully authenticated with u2f_device '%s'\" % (user_name, u2f_device_id)\n \n return True\n elif self.twoStep:\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n if (self.use_super_gluu_group):\n print \"Super-Gluu. Authenticate for step 1. Checking if user belong to super_gluu group\"\n is_member_super_gluu_group = self.isUserMemberOfGroup(authenticated_user, self.audit_attribute, self.super_gluu_group)\n if (is_member_super_gluu_group):\n print \"Super-Gluu. Authenticate for step 1. User '%s' member of super_gluu group\" % authenticated_user.getUserId()\n super_gluu_count_login_steps = 2\n else:\n if self.use_audit_group:\n self.processAuditGroup(authenticated_user, self.audit_attribute, self.audit_group)\n super_gluu_count_login_steps = 1\n \n identity.setWorkingParameter(\"super_gluu_count_login_steps\", super_gluu_count_login_steps)\n \n if super_gluu_count_login_steps == 1:\n return True\n \n auth_method = 'authenticate'\n enrollment_mode = ServerUtil.getFirstValue(requestParameters, \"loginForm:registerButton\")\n if StringHelper.isNotEmpty(enrollment_mode):\n auth_method = 'enroll'\n \n if auth_method == 'authenticate':\n user_inum = userService.getUserInum(authenticated_user)\n u2f_devices_list = deviceRegistrationService.findUserDeviceRegistrations(user_inum, client_redirect_uri, \"jansId\")\n if u2f_devices_list.size() == 0:\n auth_method = 'enroll'\n print \"Super-Gluu. Authenticate for step 1. There is no U2F '%s' user devices associated with application '%s'. Changing auth_method to '%s'\" % (user_name, client_redirect_uri, auth_method)\n \n print \"Super-Gluu. Authenticate for step 1. auth_method: '%s'\" % auth_method\n \n identity.setWorkingParameter(\"super_gluu_auth_method\", auth_method)\n\n return True\n\n return False\n elif step == 2:\n print \"Super-Gluu. Authenticate for step 2\"\n\n user = authenticationService.getAuthenticatedUser()\n if (user == None):\n print \"Super-Gluu. Authenticate for step 2. Failed to determine user name\"\n return False\n user_name = user.getUserId()\n\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n session_device_status = self.getSessionDeviceStatus(session_attributes, user_name)\n if session_device_status == None:\n return False\n\n u2f_device_id = session_device_status['device_id']\n\n # There are two steps only in enrollment mode\n if self.oneStep and session_device_status['enroll']:\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n user_inum = userService.getUserInum(authenticated_user)\n \n attach_result = deviceRegistrationService.attachUserDeviceRegistration(user_inum, u2f_device_id)\n\n print \"Super-Gluu. Authenticate for step 2. Result after attaching u2f_device '%s' to user '%s': '%s'\" % (u2f_device_id, user_name, attach_result) \n\n return attach_result\n elif self.twoStep:\n if user_name == None:\n print \"Super-Gluu. Authenticate for step 2. Failed to determine user name\"\n return False\n\n validation_result = self.validateSessionDeviceStatus(client_redirect_uri, session_device_status, user_name)\n if validation_result:\n print \"Super-Gluu. Authenticate for step 2. User '%s' successfully authenticated with u2f_device '%s'\" % (user_name, u2f_device_id)\n else:\n return False\n \n super_gluu_request = json.loads(session_device_status['super_gluu_request'])\n auth_method = super_gluu_request['method']\n if auth_method in ['enroll', 'authenticate']:\n if validation_result and self.use_audit_group:\n user = authenticationService.getAuthenticatedUser()\n self.processAuditGroup(user, self.audit_attribute, self.audit_group)\n\n return validation_result\n\n print \"Super-Gluu. Authenticate for step 2. U2F auth_method is invalid\"\n\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n client_redirect_uri = self.getApplicationUri(session_attributes)\n if client_redirect_uri == None:\n print \"Super-Gluu. Prepare for step. redirect_uri is not set\"\n return False\n\n self.setRequestScopedParameters(identity, step)\n\n if step == 1:\n print \"Super-Gluu. Prepare for step 1\"\n if self.oneStep:\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine session_id\"\n return False\n\n issuer = CdiUtil.bean(ConfigurationFactory).getConfiguration().getIssuer()\n super_gluu_request_dictionary = {'app': client_redirect_uri,\n 'issuer': issuer,\n 'state': session.getId(),\n 'created': DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now().withNano(0))}\n\n self.addGeolocationData(session_attributes, super_gluu_request_dictionary)\n\n super_gluu_request = json.dumps(super_gluu_request_dictionary, separators=(',',':'))\n print \"Super-Gluu. Prepare for step 1. Prepared super_gluu_request:\", super_gluu_request\n \n identity.setWorkingParameter(\"super_gluu_request\", super_gluu_request)\n elif self.twoStep:\n identity.setWorkingParameter(\"display_register_action\", True)\n\n return True\n elif step == 2:\n print \"Super-Gluu. Prepare for step 2\"\n if self.oneStep:\n return True\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine user name\"\n return False\n\n if session_attributes.containsKey(\"super_gluu_request\"):\n super_gluu_request = session_attributes.get(\"super_gluu_request\")\n if not StringHelper.equalsIgnoreCase(super_gluu_request, \"timeout\"):\n print \"Super-Gluu. Prepare for step 2. Request was generated already\"\n return True\n \n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine session_id\"\n return False\n\n auth_method = session_attributes.get(\"super_gluu_auth_method\")\n if StringHelper.isEmpty(auth_method):\n print \"Super-Gluu. Prepare for step 2. Failed to determine auth_method\"\n return False\n\n print \"Super-Gluu. Prepare for step 2. auth_method: '%s'\" % auth_method\n \n issuer = CdiUtil.bean(ConfigurationFactory).getAppConfiguration().getIssuer()\n super_gluu_request_dictionary = {'username': user.getUserId(),\n 'app': client_redirect_uri,\n 'issuer': issuer,\n 'method': auth_method,\n 'state': session.getId(),\n 'created': DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now().withNano(0))}\n\n self.addGeolocationData(session_attributes, super_gluu_request_dictionary)\n\n super_gluu_request = json.dumps(super_gluu_request_dictionary, separators=(',',':'))\n print \"Super-Gluu. Prepare for step 2. Prepared super_gluu_request:\", super_gluu_request\n\n identity.setWorkingParameter(\"super_gluu_request\", super_gluu_request)\n identity.setWorkingParameter(\"super_gluu_auth_method\", auth_method)\n\n if auth_method in ['authenticate']:\n self.sendPushNotification(client_redirect_uri, user, super_gluu_request)\n\n return True\n else:\n return False\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n # If user not pass current step change step to previous\n identity = CdiUtil.bean(Identity)\n retry_current_step = identity.getWorkingParameter(\"retry_current_step\")\n if retry_current_step:\n print \"Super-Gluu. Get next step. Retrying current step\"\n\n # Remove old QR code\n identity.setWorkingParameter(\"super_gluu_request\", \"timeout\")\n\n resultStep = step\n return resultStep\n\n return -1\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 1:\n if self.oneStep: \n return Arrays.asList(\"super_gluu_request\")\n elif self.twoStep:\n return Arrays.asList(\"display_register_action\")\n elif step == 2:\n return Arrays.asList(\"super_gluu_auth_method\", \"super_gluu_request\")\n \n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n identity = CdiUtil.bean(Identity)\n if identity.isSetWorkingParameter(\"super_gluu_count_login_steps\"):\n return identity.getWorkingParameter(\"super_gluu_count_login_steps\")\n else:\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n if self.oneStep: \n return \"/auth/super-gluu/login.xhtml\"\n elif step == 2:\n if self.oneStep:\n return \"/login.xhtml\"\n else:\n identity = CdiUtil.bean(Identity)\n authmethod = identity.getWorkingParameter(\"super_gluu_auth_method\")\n print \"Super-Gluu. authmethod '%s'\" % authmethod\n if authmethod == \"enroll\":\n return \"/auth/super-gluu/login.xhtml\"\n else:\n return \"/auth/super-gluu/login.xhtml\"\n\n return \"\"\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def processBasicAuthentication(self, credentials):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if find_user_by_uid == None:\n print \"Super-Gluu. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def validateSessionDeviceStatus(self, client_redirect_uri, session_device_status, user_name = None):\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n\n u2f_device_id = session_device_status['device_id']\n\n u2f_device = None\n if session_device_status['enroll'] and session_device_status['one_step']:\n u2f_device = deviceRegistrationService.findOneStepUserDeviceRegistration(u2f_device_id)\n if u2f_device == None:\n print \"Super-Gluu. Validate session device status. There is no one step u2f_device '%s'\" % u2f_device_id\n return False\n else:\n # Validate if user has specified device_id enrollment\n user_inum = userService.getUserInum(user_name)\n\n if session_device_status['one_step']:\n user_inum = session_device_status['user_inum']\n \n u2f_device = deviceRegistrationService.findUserDeviceRegistration(user_inum, u2f_device_id)\n if u2f_device == None:\n print \"Super-Gluu. Validate session device status. There is no u2f_device '%s' associated with user '%s'\" % (u2f_device_id, user_inum)\n return False\n\n if not StringHelper.equalsIgnoreCase(client_redirect_uri, u2f_device.application):\n print \"Super-Gluu. Validate session device status. u2f_device '%s' associated with other application '%s'\" % (u2f_device_id, u2f_device.application)\n return False\n \n return True\n\n def getSessionDeviceStatus(self, session_attributes, user_name):\n print \"Super-Gluu. Get session device status\"\n\n if not session_attributes.containsKey(\"super_gluu_request\"):\n print \"Super-Gluu. Get session device status. There is no Super-Gluu request in session attributes\"\n return None\n\n # Check session state extended\n if not session_attributes.containsKey(\"session_custom_state\"):\n print \"Super-Gluu. Get session device status. There is no session_custom_state in session attributes\"\n return None\n\n session_custom_state = session_attributes.get(\"session_custom_state\")\n if not StringHelper.equalsIgnoreCase(\"approved\", session_custom_state):\n print \"Super-Gluu. Get session device status. User '%s' not approve or not pass U2F authentication. session_custom_state: '%s'\" % (user_name, session_custom_state)\n return None\n\n # Try to find device_id in session attribute\n if not session_attributes.containsKey(\"oxpush2_u2f_device_id\"):\n print \"Super-Gluu. Get session device status. There is no u2f_device associated with this request\"\n return None\n\n # Try to find user_inum in session attribute\n if not session_attributes.containsKey(\"oxpush2_u2f_device_user_inum\"):\n print \"Super-Gluu. Get session device status. There is no user_inum associated with this request\"\n return None\n \n enroll = False\n if session_attributes.containsKey(\"oxpush2_u2f_device_enroll\"):\n enroll = StringHelper.equalsIgnoreCase(\"true\", session_attributes.get(\"oxpush2_u2f_device_enroll\"))\n\n one_step = False\n if session_attributes.containsKey(\"oxpush2_u2f_device_one_step\"):\n one_step = StringHelper.equalsIgnoreCase(\"true\", session_attributes.get(\"oxpush2_u2f_device_one_step\"))\n \n super_gluu_request = session_attributes.get(\"super_gluu_request\")\n u2f_device_id = session_attributes.get(\"oxpush2_u2f_device_id\")\n user_inum = session_attributes.get(\"oxpush2_u2f_device_user_inum\")\n\n session_device_status = {\"super_gluu_request\": super_gluu_request, \"device_id\": u2f_device_id, \"user_inum\" : user_inum, \"enroll\" : enroll, \"one_step\" : one_step}\n print \"Super-Gluu. Get session device status. session_device_status: '%s'\" % (session_device_status)\n \n return session_device_status\n\n def initPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize Native/SNS/Gluu notification services\"\n\n self.pushSnsMode = False\n self.pushGluuMode = False\n if configurationAttributes.containsKey(\"notification_service_mode\"):\n notificationServiceMode = configurationAttributes.get(\"notification_service_mode\").getValue2()\n if StringHelper.equalsIgnoreCase(notificationServiceMode, \"sns\"):\n return self.initSnsPushNotificationService(configurationAttributes)\n elif StringHelper.equalsIgnoreCase(notificationServiceMode, \"gluu\"):\n return self.initGluuPushNotificationService(configurationAttributes)\n\n return self.initNativePushNotificationService(configurationAttributes)\n\n def initNativePushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize native notification services\"\n \n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n android_creds = creds[\"android\"][\"gcm\"]\n ios_creds = creds[\"ios\"][\"apns\"]\n except:\n print \"Super-Gluu. Initialize native notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if android_creds[\"enabled\"]:\n self.pushAndroidService = Sender(android_creds[\"api_key\"]) \n print \"Super-Gluu. Initialize native notification services. Created Android notification service\"\n \n if ios_creds[\"enabled\"]:\n p12_file_path = ios_creds[\"p12_file_path\"]\n p12_password = ios_creds[\"p12_password\"]\n\n try:\n encryptionService = CdiUtil.bean(EncryptionService)\n p12_password = encryptionService.decrypt(p12_password)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize native notification services. Assuming that 'p12_password' password in not encrypted\"\n\n apnsServiceBuilder = APNS.newService().withCert(p12_file_path, p12_password)\n if ios_creds[\"production\"]:\n self.pushAppleService = apnsServiceBuilder.withProductionDestination().build()\n else:\n self.pushAppleService = apnsServiceBuilder.withSandboxDestination().build()\n\n self.pushAppleServiceProduction = ios_creds[\"production\"]\n\n print \"Super-Gluu. Initialize native notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def initSnsPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize SNS notification services\"\n self.pushSnsMode = True\n\n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n sns_creds = creds[\"sns\"]\n android_creds = creds[\"android\"][\"sns\"]\n ios_creds = creds[\"ios\"][\"sns\"]\n except:\n print \"Super-Gluu. Initialize SNS notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if not (android_creds[\"enabled\"] or ios_creds[\"enabled\"]):\n print \"Super-Gluu. Initialize SNS notification services. SNS disabled for all platforms\"\n return False\n\n sns_access_key = sns_creds[\"access_key\"]\n sns_secret_access_key = sns_creds[\"secret_access_key\"]\n sns_region = sns_creds[\"region\"]\n\n encryptionService = CdiUtil.bean(EncryptionService)\n\n try:\n sns_secret_access_key = encryptionService.decrypt(sns_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize SNS notification services. Assuming that 'sns_secret_access_key' in not encrypted\"\n \n pushSnsService = CdiUtil.bean(PushSnsService)\n pushClient = pushSnsService.createSnsClient(sns_access_key, sns_secret_access_key, sns_region)\n\n if android_creds[\"enabled\"]:\n self.pushAndroidService = pushClient\n self.pushAndroidPlatformArn = android_creds[\"platform_arn\"]\n print \"Super-Gluu. Initialize SNS notification services. Created Android notification service\"\n\n if ios_creds[\"enabled\"]:\n self.pushAppleService = pushClient \n self.pushApplePlatformArn = ios_creds[\"platform_arn\"]\n self.pushAppleServiceProduction = ios_creds[\"production\"]\n print \"Super-Gluu. Initialize SNS notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def initGluuPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize Gluu notification services\"\n\n self.pushGluuMode = True\n\n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n gluu_conf = creds[\"gluu\"]\n android_creds = creds[\"android\"][\"gluu\"]\n ios_creds = creds[\"ios\"][\"gluu\"]\n except:\n print \"Super-Gluu. Initialize Gluu notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if not (android_creds[\"enabled\"] or ios_creds[\"enabled\"]):\n print \"Super-Gluu. Initialize Gluu notification services. Gluu disabled for all platforms\"\n return False\n\n gluu_server_uri = gluu_conf[\"server_uri\"]\n notifyClientFactory = NotifyClientFactory.instance()\n metadataConfiguration = None\n try:\n metadataConfiguration = notifyClientFactory.createMetaDataConfigurationService(gluu_server_uri).getMetadataConfiguration()\n except:\n print \"Super-Gluu. Initialize Gluu notification services. Failed to load metadata. Exception: \", sys.exc_info()[1]\n return False\n\n gluuClient = notifyClientFactory.createNotifyService(metadataConfiguration)\n encryptionService = CdiUtil.bean(EncryptionService)\n\n if android_creds[\"enabled\"]:\n gluu_access_key = android_creds[\"access_key\"]\n gluu_secret_access_key = android_creds[\"secret_access_key\"]\n \n try:\n gluu_secret_access_key = encryptionService.decrypt(gluu_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize Gluu notification services. Assuming that 'gluu_secret_access_key' in not encrypted\"\n \n self.pushAndroidService = gluuClient \n self.pushAndroidServiceAuth = notifyClientFactory.getAuthorization(gluu_access_key, gluu_secret_access_key);\n print \"Super-Gluu. Initialize Gluu notification services. Created Android notification service\"\n\n if ios_creds[\"enabled\"]:\n gluu_access_key = ios_creds[\"access_key\"]\n gluu_secret_access_key = ios_creds[\"secret_access_key\"]\n \n try:\n gluu_secret_access_key = encryptionService.decrypt(gluu_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize Gluu notification services. Assuming that 'gluu_secret_access_key' in not encrypted\"\n \n self.pushAppleService = gluuClient \n self.pushAppleServiceAuth = notifyClientFactory.getAuthorization(gluu_access_key, gluu_secret_access_key);\n print \"Super-Gluu. Initialize Gluu notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def loadPushNotificationCreds(self, configurationAttributes):\n print \"Super-Gluu. Initialize notification services\"\n if not configurationAttributes.containsKey(\"credentials_file\"):\n return None\n\n super_gluu_creds_file = configurationAttributes.get(\"credentials_file\").getValue2()\n\n # Load credentials from file\n f = open(super_gluu_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n except:\n print \"Super-Gluu. Initialize notification services. Failed to load credentials from file:\", super_gluu_creds_file\n return None\n finally:\n f.close()\n\n return creds\n\n def sendPushNotification(self, client_redirect_uri, user, super_gluu_request):\n try:\n self.sendPushNotificationImpl(client_redirect_uri, user, super_gluu_request)\n except:\n print \"Super-Gluu. Send push notification. Failed to send push notification: \", sys.exc_info()[1]\n\n def sendPushNotificationImpl(self, client_redirect_uri, user, super_gluu_request):\n if not self.enabledPushNotifications:\n return\n\n user_name = user.getUserId()\n print \"Super-Gluu. Send push notification. Loading user '%s' devices\" % user_name\n\n send_notification = False\n send_notification_result = True\n\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n\n user_inum = userService.getUserInum(user_name)\n\n send_android = 0\n send_ios = 0\n u2f_devices_list = deviceRegistrationService.findUserDeviceRegistrations(user_inum, client_redirect_uri, \"jansId\", \"jansDeviceData\", \"jansDeviceNotificationConf\")\n if u2f_devices_list.size() > 0:\n for u2f_device in u2f_devices_list:\n device_data = u2f_device.getDeviceData()\n\n # Device data which Super-Gluu gets during enrollment\n if device_data == None:\n continue\n\n platform = device_data.getPlatform()\n push_token = device_data.getPushToken()\n debug = False\n\n if StringHelper.equalsIgnoreCase(platform, \"ios\") and StringHelper.isNotEmpty(push_token):\n # Sending notification to iOS user's device\n if self.pushAppleService == None:\n print \"Super-Gluu. Send push notification. Apple native push notification service is not enabled\"\n else:\n send_notification = True\n \n title = \"Super Gluu\"\n message = \"Confirm your sign in request to: %s\" % client_redirect_uri\n\n if self.pushSnsMode or self.pushGluuMode:\n pushSnsService = CdiUtil.bean(PushSnsService)\n targetEndpointArn = self.getTargetEndpointArn(deviceRegistrationService, pushSnsService, PushPlatform.APNS, user, u2f_device)\n if targetEndpointArn == None:\n \treturn\n\n send_notification = True\n \n sns_push_request_dictionary = { \"aps\": \n { \"badge\": 0,\n \"alert\" : {\"body\": message, \"title\" : title},\n \"category\": \"ACTIONABLE\",\n \"content-available\": \"1\",\n \"sound\": 'default'\n },\n \"request\" : super_gluu_request\n }\n push_message = json.dumps(sns_push_request_dictionary, separators=(',',':'))\n \n if self.pushSnsMode:\n apple_push_platform = PushPlatform.APNS\n if not self.pushAppleServiceProduction:\n apple_push_platform = PushPlatform.APNS_SANDBOX\n \n send_notification_result = pushSnsService.sendPushMessage(self.pushAppleService, apple_push_platform, targetEndpointArn, push_message, None)\n if debug:\n print \"Super-Gluu. Send iOS SNS push notification. token: '%s', message: '%s', send_notification_result: '%s', apple_push_platform: '%s'\" % (push_token, push_message, send_notification_result, apple_push_platform)\n elif self.pushGluuMode:\n send_notification_result = self.pushAppleService.sendNotification(self.pushAppleServiceAuth, targetEndpointArn, push_message)\n if debug:\n print \"Super-Gluu. Send iOS Gluu push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n else:\n additional_fields = { \"request\" : super_gluu_request }\n \n msgBuilder = APNS.newPayload().alertBody(message).alertTitle(title).sound(\"default\")\n msgBuilder.category('ACTIONABLE').badge(0)\n msgBuilder.forNewsstand()\n msgBuilder.customFields(additional_fields)\n push_message = msgBuilder.build()\n \n send_notification_result = self.pushAppleService.push(push_token, push_message)\n if debug:\n print \"Super-Gluu. Send iOS Native push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n send_ios = send_ios + 1\n\n if StringHelper.equalsIgnoreCase(platform, \"android\") and StringHelper.isNotEmpty(push_token):\n # Sending notification to Android user's device\n if self.pushAndroidService == None:\n print \"Super-Gluu. Send native push notification. Android native push notification service is not enabled\"\n else:\n send_notification = True\n\n title = \"Super-Gluu\"\n if self.pushSnsMode or self.pushGluuMode:\n pushSnsService = CdiUtil.bean(PushSnsService)\n targetEndpointArn = self.getTargetEndpointArn(deviceRegistrationService, pushSnsService, PushPlatform.GCM, user, u2f_device)\n if targetEndpointArn == None:\n \treturn\n\n send_notification = True\n \n sns_push_request_dictionary = { \"collapse_key\": \"single\",\n \"content_available\": True,\n \"time_to_live\": 60,\n \"data\": \n { \"message\" : super_gluu_request,\n \"title\" : title }\n }\n push_message = json.dumps(sns_push_request_dictionary, separators=(',',':'))\n \n if self.pushSnsMode:\n send_notification_result = pushSnsService.sendPushMessage(self.pushAndroidService, PushPlatform.GCM, targetEndpointArn, push_message, None)\n if debug:\n print \"Super-Gluu. Send Android SNS push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n elif self.pushGluuMode:\n send_notification_result = self.pushAndroidService.sendNotification(self.pushAndroidServiceAuth, targetEndpointArn, push_message)\n if debug:\n print \"Super-Gluu. Send Android Gluu push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n else:\n msgBuilder = Message.Builder().addData(\"message\", super_gluu_request).addData(\"title\", title).collapseKey(\"single\").contentAvailable(True)\n push_message = msgBuilder.build()\n \n send_notification_result = self.pushAndroidService.send(push_message, push_token, 3)\n if debug:\n print \"Super-Gluu. Send Android Native push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n send_android = send_android + 1\n\n print \"Super-Gluu. Send push notification. send_android: '%s', send_ios: '%s'\" % (send_android, send_ios)\n\n def getTargetEndpointArn(self, deviceRegistrationService, pushSnsService, platform, user, u2fDevice):\n targetEndpointArn = None\n \n # Return endpoint ARN if it created already\n notificationConf = u2fDevice.getDeviceNotificationConf()\n if StringHelper.isNotEmpty(notificationConf):\n notificationConfJson = json.loads(notificationConf)\n targetEndpointArn = notificationConfJson['sns_endpoint_arn']\n if StringHelper.isNotEmpty(targetEndpointArn):\n print \"Super-Gluu. Get target endpoint ARN. There is already created target endpoint ARN\"\n return targetEndpointArn\n\n # Create endpoint ARN \n pushClient = None\n pushClientAuth = None\n platformApplicationArn = None\n if platform == PushPlatform.GCM:\n pushClient = self.pushAndroidService\n if self.pushSnsMode:\n platformApplicationArn = self.pushAndroidPlatformArn\n if self.pushGluuMode:\n pushClientAuth = self.pushAndroidServiceAuth\n elif platform == PushPlatform.APNS:\n pushClient = self.pushAppleService\n if self.pushSnsMode:\n platformApplicationArn = self.pushApplePlatformArn\n if self.pushGluuMode:\n pushClientAuth = self.pushAppleServiceAuth\n else:\n return None\n\n deviceData = u2fDevice.getDeviceData()\n pushToken = deviceData.getPushToken()\n \n print \"Super-Gluu. Get target endpoint ARN. Attempting to create target endpoint ARN for user: '%s'\" % user.getUserId()\n if self.pushSnsMode:\n targetEndpointArn = pushSnsService.createPlatformArn(pushClient, platformApplicationArn, pushToken, user)\n else:\n customUserData = pushSnsService.getCustomUserData(user)\n registerDeviceResponse = pushClient.registerDevice(pushClientAuth, pushToken, customUserData);\n if registerDeviceResponse != None and registerDeviceResponse.getStatusCode() == 200:\n targetEndpointArn = registerDeviceResponse.getEndpointArn()\n \n if StringHelper.isEmpty(targetEndpointArn):\n\t print \"Super-Gluu. Failed to get endpoint ARN for user: '%s'\" % user.getUserId()\n \treturn None\n\n print \"Super-Gluu. Get target endpoint ARN. Create target endpoint ARN '%s' for user: '%s'\" % (targetEndpointArn, user.getUserId())\n \n # Store created endpoint ARN in device entry\n userInum = user.getAttribute(\"inum\")\n u2fDeviceUpdate = deviceRegistrationService.findUserDeviceRegistration(userInum, u2fDevice.getId())\n u2fDeviceUpdate.setDeviceNotificationConf('{\"sns_endpoint_arn\" : \"%s\"}' % targetEndpointArn)\n deviceRegistrationService.updateDeviceRegistration(userInum, u2fDeviceUpdate)\n\n return targetEndpointArn\n\n def getApplicationUri(self, session_attributes):\n if self.applicationId != None:\n return self.applicationId\n \n if not session_attributes.containsKey(\"redirect_uri\"):\n return None\n\n return session_attributes.get(\"redirect_uri\")\n\n def setRequestScopedParameters(self, identity, step):\n downloadMap = HashMap()\n if self.registrationUri != None:\n identity.setWorkingParameter(\"external_registration_uri\", self.registrationUri)\n\n if self.androidUrl!= None and step == 1:\n downloadMap.put(\"android\", self.androidUrl)\n\n if self.IOSUrl != None and step == 1:\n downloadMap.put(\"ios\", self.IOSUrl)\n \n if self.customLabel != None:\n identity.setWorkingParameter(\"super_gluu_label\", self.customLabel)\n \n identity.setWorkingParameter(\"download_url\", downloadMap)\n identity.setWorkingParameter(\"super_gluu_qr_options\", self.customQrOptions)\n\n def addGeolocationData(self, session_attributes, super_gluu_request_dictionary):\n if session_attributes.containsKey(\"remote_ip\"):\n remote_ip = session_attributes.get(\"remote_ip\")\n if StringHelper.isNotEmpty(remote_ip):\n print \"Super-Gluu. Prepare for step 2. Adding req_ip and req_loc to super_gluu_request\"\n super_gluu_request_dictionary['req_ip'] = remote_ip\n\n remote_loc_dic = self.determineGeolocationData(remote_ip)\n if remote_loc_dic == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine remote location by remote IP '%s'\" % remote_ip\n return\n\n remote_loc = \"%s, %s, %s\" % ( remote_loc_dic['country'], remote_loc_dic['regionName'], remote_loc_dic['city'] )\n remote_loc_encoded = urllib.quote(remote_loc.encode('utf-8'))\n super_gluu_request_dictionary['req_loc'] = remote_loc_encoded\n\n def determineGeolocationData(self, remote_ip):\n print \"Super-Gluu. Determine remote location. remote_ip: '%s'\" % remote_ip\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n http_client_params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15 * 1000)\n \n geolocation_service_url = \"http://ip-api.com/json/%s?fields=49177\" % remote_ip\n geolocation_service_headers = { \"Accept\" : \"application/json\" }\n\n try:\n http_service_response = httpService.executeGet(http_client, geolocation_service_url, geolocation_service_headers)\n http_response = http_service_response.getHttpResponse()\n except:\n print \"Super-Gluu. Determine remote location. Exception: \", sys.exc_info()[1]\n return None\n\n try:\n if not httpService.isResponseStastusCodeOk(http_response):\n print \"Super-Gluu. Determine remote location. Get invalid response from validation server: \", str(http_response.getStatusLine().getStatusCode())\n httpService.consume(http_response)\n return None\n \n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes)\n httpService.consume(http_response)\n finally:\n http_service_response.closeConnection()\n\n if response_string == None:\n print \"Super-Gluu. Determine remote location. Get empty response from location server\"\n return None\n \n response = json.loads(response_string)\n \n if not StringHelper.equalsIgnoreCase(response['status'], \"success\"):\n print \"Super-Gluu. Determine remote location. Get response with status: '%s'\" % response['status']\n return None\n\n return response\n\n def isUserMemberOfGroup(self, user, attribute, group):\n is_member = False\n member_of_list = user.getAttributeValues(attribute)\n if (member_of_list != None):\n for member_of in member_of_list:\n if StringHelper.equalsIgnoreCase(group, member_of) or member_of.endswith(group):\n is_member = True\n break\n\n return is_member\n\n def processAuditGroup(self, user, attribute, group):\n is_member = self.isUserMemberOfGroup(user, attribute, group)\n if (is_member):\n print \"Super-Gluu. Authenticate for processAuditGroup. User '%s' member of audit group\" % user.getUserId()\n print \"Super-Gluu. Authenticate for processAuditGroup. Sending e-mail about user '%s' login to %s\" % (user.getUserId(), self.audit_email)\n \n # Send e-mail to administrator\n user_id = user.getUserId()\n mailService = CdiUtil.bean(MailService)\n subject = \"User log in: %s\" % user_id\n body = \"User log in: %s\" % user_id\n mailService.sendMail(self.audit_email, subject, body)\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "super_gluu", "modified": false, "configurationProperties": [ { "hide": false, "value2": "{ size: 500, mSize: 0.05 }", "value1": "qr_options" }, { "hide": false, "value2": "Super Gluu", "value1": "label" }, { "hide": false, "value2": "https://jenkins-build.jans.io/identity/register", "value1": "registration_uri" }, { "hide": false, "value2": "two_step", "value1": "authentication_mode" }, { "hide": false, "value2": "gluu", "value1": "notification_service_mode" }, { "hide": false, "value2": "/etc/certs/super_gluu_creds.json", "value1": "credentials_file" }, { "hide": false, "value2": "https://play.google.com/store/apps/details?id=gluu.org.super.gluu&hl=en_US", "value1": "supergluu_android_download_url" }, { "hide": false, "value2": "https://itunes.apple.com/us/app/super-gluu/id1093479646", "value1": "supergluu_ios_download_url" } ], "baseDn": "inum=92F0-BF9E,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Jans Config Api authorization script", "locationType": "ldap", "dn": "inum=A110-88AB,ou=scripts,o=jans", "inum": "A110-88AB", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2018, Janssen\n#\n# Author: Puja Sharma\n#\n#\n\nfrom io.jans.as.model.jwt import Jwt\nfrom io.jans.as.model.crypto import AuthCryptoProvider\nfrom io.jans.model.custom.script.conf import CustomScriptConfiguration\nfrom io.jans.model.custom.script.type.configapi import ConfigApiType\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom io.jans.configapi.model.configuration import ApiAppConfiguration\n\nfrom org.json import JSONObject\nfrom java.lang import String\nfrom jakarta.servlet.http import HttpServletRequest\nfrom jakarta.servlet.http import HttpServletResponse\n\n\nclass ConfigApiAuthorization(ConfigApiType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, configurationAttributes):\n print \"ConfigApiType script. Initializing ...\"\n print \"ConfigApiType script. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"ConfigApiType script. Destroying ...\"\n print \"ConfigApiType script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 1\n\n\n # Returns boolean true or false depending on the process, if the client is authorized\n # or not.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def authorize(self, responseAsJsonObject, context):\n print \" responseAsJsonObject: %s\" % responseAsJsonObject\n print \" context: %s\" % context\n\n print \"Config Authentication process\"\n request = context.httpRequest\n response = context.httpResponse\n print \" request = : %s\" % request\n print \" response = : %s\" % response\n\n appConfiguration = context.getApiAppConfiguration()\n customScriptConfiguration = context.getScript()\n issuer = context.getRequestParameters().get(\"ISSUER\")\n token = context.getRequestParameters().get(\"TOKEN\")\n method = context.getRequestParameters().get(\"METHOD\")\n path = context.getRequestParameters().get(\"PATH\")\n \n print \" requese2: %s\" % request\n print \" response2 new: %s\" % response\n print \"ConfigApiType.appConfiguration: %s\" % appConfiguration\n print \"ConfigApiType.customScriptConfiguration: %s\" % customScriptConfiguration\n print \"ConfigApiType.issuer: %s\" % issuer\n print \"ConfigApiType.token: %s\" % token\n print \"ConfigApiType.method: %s\" % method\n print \"ConfigApiType.path: %s\" % path\n\n #Example to validate method\n if (\"GET\" == StringHelper.toUpperCase(method) ):\n print \"Validate method: %s\" % method\n \n if (\"attributes\" == StringHelper.toLowerCase(path) ):\n print \"ConfigApiType.path: %s\" % path\n \n responseAsJsonObject.accumulate(\"key_from_script\", \"value_from_script\")\n print \" final responseAsJsonObject: %s\" % responseAsJsonObject\n\n return True\n\n\n\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "config_api_auth", "name": "config_api_authorization", "modified": false, "configurationProperties": [ { "hide": false, "value2": "Test value 1", "value1": "testProp1" }, { "hide": false, "value2": "Test value 2", "value1": "testProp2" } ], "baseDn": "inum=A110-88AB,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Role Based Scopes", "locationType": "ldap", "dn": "inum=A44E-4F3D,ou=scripts,o=jans", "inum": "A44E-4F3D", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2018, Janssen\n#\n# Author: Yuriy Zabrovarnyy, Arnab Dutta, Mustafa Baser\n#\n#\nfrom io.jans.as.model.jwt import Jwt\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.model.crypto import AuthCryptoProvider\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.model.custom.script.type.introspection import IntrospectionType\nfrom io.jans.as.server.model.config import ConfigurationFactory\nfrom io.jans.as.model.config.adminui import AdminConf\nfrom org.json import JSONObject\nfrom java.lang import String\n\ntry:\n import json\nexcept ImportError:\n import simplejson as json\n\n\nclass Introspection(IntrospectionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Introspection script. Initializing ...\"\n print \"Introspection script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Introspection script. Destroying ...\"\n print \"Introspection script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - apply introspection method, false - ignore it.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def modifyResponse(self, responseAsJsonObject, context):\n print \"Inside modifyResponse method of introspection script ....\"\n try:\n # Getting user-info-jwt\n ujwt = context.getHttpRequest().getParameter(\"ujwt\")\n print ujwt\n if not ujwt:\n print \"UJWT is empty or null. Only the default scopes will be added to the token.\"\n entryManager = CdiUtil.bean(PersistenceEntryManager)\n adminConf = AdminConf()\n adminUIConfig = entryManager.find(adminConf.getClass(), \"ou=admin-ui,ou=configuration,o=jans\")\n permissions = adminUIConfig.getDynamic().getPermissions()\n scopes = []\n for ele in permissions:\n if ele.getDefaultPermissionInToken() is not None and ele.getDefaultPermissionInToken():\n scopes.append(ele.getPermission())\n\n responseAsJsonObject.accumulate(\"scope\", scopes)\n return True\n\n # Parse jwt\n userInfoJwt = Jwt.parse(ujwt)\n\n configObj = CdiUtil.bean(ConfigurationFactory)\n jwksObj = configObj.getWebKeysConfiguration()\n jwks = JSONObject(jwksObj)\n\n # Validate JWT\n authCryptoProvider = AuthCryptoProvider()\n validJwt = authCryptoProvider.verifySignature(userInfoJwt.getSigningInput(), userInfoJwt.getEncodedSignature(), userInfoJwt.getHeader().getKeyId(), jwks, None, userInfoJwt.getHeader().getSignatureAlgorithm())\n\n if validJwt == True:\n # Get claims from parsed JWT\n jwtClaims = userInfoJwt.getClaims()\n jansAdminUIRole = jwtClaims.getClaim(\"jansAdminUIRole\")\n # fetch role-scope mapping from database\n scopes = None\n try:\n entryManager = CdiUtil.bean(PersistenceEntryManager)\n adminConf = AdminConf()\n adminUIConfig = entryManager.find(adminConf.getClass(), \"ou=admin-ui,ou=configuration,o=jans\")\n roleScopeMapping = adminUIConfig.getDynamic().getRolePermissionMapping()\n\n for ele in roleScopeMapping:\n if ele.getRole() == jansAdminUIRole.getString(0):\n scopes = ele.getPermissions()\n except Exception as e:\n print \"Error: Failed to fetch/parse Admin UI roleScopeMapping from DB\"\n print e\n\n print \"Following scopes will be added in api token: {}\".format(scopes)\n\n responseAsJsonObject.accumulate(\"scope\", scopes)\n except Exception as e:\n print \"Exception occured. Unable to resolve role/scope mapping.\"\n print e\n return True", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "introspection", "name": "role_based_scopes", "modified": false, "baseDn": "inum=A44E-4F3D,ou=scripts,o=jans" }, { "internal": false, "aliases": [ "basic_alias1", "basic_alias2" ], "level": 10, "programmingLanguage": "python", "description": "Sample authentication module", "locationType": "ldap", "dn": "inum=A51E-76DA,ou=scripts,o=jans", "inum": "A51E-76DA", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.util import StringHelper\n\nimport java\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Basic. Initialization\"\n print \"Basic. Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Basic. Destroy\"\n print \"Basic. Destroyed successfully\"\n return True\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if (step == 1):\n print \"Basic. Authenticate for step 1\"\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return False\n\n return True\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Basic. Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "basic", "modified": false, "baseDn": "inum=A51E-76DA,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample script for SCIM events", "locationType": "ldap", "dn": "inum=A910-56AB,ou=scripts,o=jans", "inum": "A910-56AB", "script": "# Visit https://www.gluu.org/docs/gluu-server/user-management/scim-scripting/ to learn more\nfrom io.jans.model.custom.script.type.scim import ScimType\n\nimport java\n\nclass ScimEventHandler(ScimType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, configurationAttributes):\n print \"ScimEventHandler (init): Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"ScimEventHandler (destroy): Destroyed successfully\"\n return True \n\n def getApiVersion(self):\n return 5\n\n def createUser(self, user, configurationAttributes):\n return True\n\n def updateUser(self, user, configurationAttributes):\n return True\n\n def deleteUser(self, user, configurationAttributes):\n return True\n\n def createGroup(self, group, configurationAttributes):\n return True\n\n def updateGroup(self, group, configurationAttributes):\n return True\n\n def deleteGroup(self, group, configurationAttributes):\n return True\n \n def postCreateUser(self, user, configurationAttributes):\n return True\n\n def postUpdateUser(self, user, configurationAttributes):\n return True\n\n def postDeleteUser(self, user, configurationAttributes):\n return True\n\n def postUpdateGroup(self, group, configurationAttributes):\n return True\n\n def postCreateGroup(self, group, configurationAttributes):\n return True\n\n def postDeleteGroup(self, group, configurationAttributes):\n return True\n \n def getUser(self, user, configurationAttributes):\n return True\n \n def getGroup(self, group, configurationAttributes):\n return True\n \n def postSearchUsers(self, results, configurationAttributes):\n return True\n\n def postSearchGroups(self, results, configurationAttributes):\n return True\n \n def allowResourceOperation(self, context, entity, configurationAttributes):\n return True \n \n def allowSearchOperation(self, context, configurationAttributes):\n return \"\"\n \n def rejectedResourceOperationResponse(self, context, entity, configurationAttributes):\n return None \n \n def rejectedSearchOperationResponse(self, context, configurationAttributes):\n return None\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "scim", "name": "scim_event_handler", "modified": false, "configurationProperties": [ { "hide": false, "value2": "Test value 1", "value1": "testProp1" }, { "hide": false, "value2": "Test value 2", "value1": "testProp2" } ], "baseDn": "inum=A910-56AB,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "This script is a 2 in 1. It can be used to enable user to reset its password or to enable 2FA sending a token to user's email", "dn": "inum=B270-381E,ou=scripts,o=jans", "inum": "B270-381E", "script": "# coding: utf-8\n# Janssen Project software is available under the Apache License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Christian Eland\n\n\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\n# from org.gluu.oxauth.auth import Authenticator\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.as.common.service.common import ConfigurationService\nfrom io.jans.as.common.service.common import EncryptionService\nfrom io.jans.jsf2.message import FacesMessages\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.orm.exception import AuthenticationException\n\n#dealing with smtp server\nimport smtplib\n\n#dealing with emails\nfrom email.mime.multipart import MIMEMultipart\nfrom email.mime.text import MIMEText\n\n# This one is from core Java\nfrom java.util import Arrays\n\n# to generate string token\nimport random\nimport string\n\n# regex\nimport re\n\nimport urllib\n\nimport java\n\nclass EmailValidator():\n '''\n Class to check e-mail format\n '''\n regex = '^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$'\n\n def check(self, email):\n '''\n Check if email format is valid\n returns: boolean\n '''\n\n if(re.search(self.regex,email)):\n print \"Forgot Password - %s is a valid email format\" % email\n return True\n else:\n print \"Forgot Password - %s is an invalid email format\" % email\n return False\n\nclass Token:\n #class that deals with string token\n\n def generateToken(self):\n ''' method to generate token string\n returns: String\n '''\n letters = string.ascii_lowercase\n\n #token lenght\n lenght = 20\n\n #generate token\n token = ''.join(random.choice(letters) for i in range(lenght))\n print \"Forgot Password - Generating token\"\n\n return token\n\n\nclass EmailSender():\n #class that sends e-mail through smtp\n\n def getSmtpConfig(self):\n '''\n get SMTP config from Gluu Server\n return dict\n '''\n \n smtpconfig = CdiUtil.bean(ConfigurationService).getConfiguration().getSmtpConfiguration()\n \n if smtpconfig is None:\n print \"Forgot Password - SMTP CONFIG DOESN'T EXIST - Please configure\"\n\n else:\n print \"Forgot Password - SMTP CONFIG FOUND\"\n encryptionService = CdiUtil.bean(EncryptionService)\n smtp_config = {\n 'host' : smtpconfig.getHost(),\n 'port' : smtpconfig.getPort(),\n 'user' : smtpconfig.getUserName(),\n 'from' : smtpconfig.getFromEmailAddress(),\n 'pwd_decrypted' : encryptionService.decrypt(smtpconfig.getPassword()),\n 'req_ssl' : smtpconfig.isRequiresSsl(),\n 'requires_authentication' : smtpconfig.isRequiresAuthentication(),\n 'server_trust' : smtpconfig.isServerTrust()\n }\n\n return smtp_config\n\n \n\n def sendEmail(self,useremail,token):\n '''\n send token by e-mail to useremail\n '''\n\n # server connection \n smtpconfig = self.getSmtpConfig()\n \n try:\n s = smtplib.SMTP(smtpconfig['host'], port=smtpconfig['port'])\n \n\n if smtpconfig['requires_authentication']:\n \n if smtpconfig['req_ssl']:\n s.starttls()\n \n s.login(smtpconfig['user'], smtpconfig['pwd_decrypted'])\n\n \n #message setup\n msg = MIMEMultipart() #create message\n \n message = \"Here is your token: %s\" % token\n\n msg['From'] = smtpconfig['from'] #sender\n msg['To'] = useremail #recipient\n msg['Subject'] = \"Password Reset Request\" #subject\n\n #attach message body\n msg.attach(MIMEText(message, 'plain'))\n\n #send message via smtp server\n # send_message method is for python3 only s.send_message(msg)\n\n #send email (python2)\n s.sendmail(msg['From'],msg['To'],msg.as_string())\n \n #after sent, delete\n del msg\n\n except smtplib.SMTPAuthenticationError as err:\n print \"Forgot Password - SMTPAuthenticationError - %s - %s\" % (MY_ADDRESS,PASSWORD)\n print err\n\n except smtplib.smtplib.SMTPSenderRefused as err:\n print \"Forgot Password - SMTPSenderRefused - \" + err\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n\n print \"Forgot Password - Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Forgot Password - Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n # I'm not sure why is 11 and not 2\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n '''\n Authenticates user\n Step 1 will be defined according to SCRIPT_FUNCTION custom attribute\n returns: boolean\n '''\n\n #gets custom attribute\n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n\n print \"Forgot Password - %s - Authenticate for step %s\" % (sf, step)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n\n if step == 1:\n\n if sf == \"forgot_password\":\n\n \n authenticationService = CdiUtil.bean(AuthenticationService)\n\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n \n if not logged_in:\n\n \n email = ServerUtil.getFirstValue(requestParameters, \"ForgotPasswordForm:useremail\")\n validator = EmailValidator()\n if not validator.check(email):\n print \"Forgot Password - Email format invalid\"\n return False\n\n else:\n print \"Forgot Password -Email format valid\"\n \n print \"Forgot Password - Entered email is %s\" % email\n identity.setWorkingParameter(\"useremail\",email)\n \n # Just trying to get the user by the email\n user_service = CdiUtil.bean(UserService)\n user2 = user_service.getUserByAttribute(\"mail\", email)\n\n if user2 is not None:\n \n print user2\n print \"Forgot Password - User with e-mail %s found.\" % user2.getAttribute(\"mail\")\n \n # send email\n new_token = Token()\n token = new_token.generateToken() \n sender = EmailSender()\n print \"Email: \" + email\n print \"Token: \" + token\n sender.sendEmail(email,token)\n\n \n identity.setWorkingParameter(\"token\", token)\n print identity.getWorkingParameter(\"token\")\n \n \n \n else:\n print \"Forgot Password - User with e-mail %s not found\" % email\n\n return True\n\n\n else:\n # if user is already authenticated, returns true.\n\n user = authenticationService.getAuthenticatedUser()\n print \"Forgot Password - User %s is authenticated\" % user.getUserId()\n\n return True\n\n if sf == \"email_2FA\":\n\n try:\n # Just trying to get the user by the uid\n authenticationService = CdiUtil.bean(AuthenticationService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n \n print 'email_2FA user_name: ' + str(user_name)\n \n user_service = CdiUtil.bean(UserService)\n user2 = user_service.getUserByAttribute(\"uid\", user_name)\n\n if user2 is not None:\n print \"user:\"\n print user2\n print \"Forgot Password - User with e-mail %s found.\" % user2.getAttribute(\"mail\")\n email = user2.getAttribute(\"mail\")\n uid = user2.getAttribute(\"uid\")\n\n # send token\n # send email\n new_token = Token()\n token = new_token.generateToken() \n sender = EmailSender()\n print \"Email: \" + email\n print \"Token: \" + token\n sender.sendEmail(email,token)\n\n identity.setWorkingParameter(\"token\", token)\n\n return True\n\n except AuthenticationException as err:\n print err\n return False\n\n \n \n\n if step == 2:\n # step 2 user enters token\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n \n authenticationService = CdiUtil.bean(AuthenticationService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n # retrieves token typed by user\n input_token = ServerUtil.getFirstValue(requestParameters, \"ResetTokenForm:inputToken\")\n\n print \"Forgot Password - Token inputed by user is %s\" % input_token\n\n token = identity.getWorkingParameter(\"token\")\n print \"Forgot Password - Retrieved token\"\n email = identity.getWorkingParameter(\"useremail\")\n print \"Forgot Password - Retrieved email\" \n\n # compares token sent and token entered by user\n if input_token == token:\n print \"Forgot Password - token entered correctly\"\n identity.setWorkingParameter(\"token_valid\", True)\n \n return True\n\n else:\n print \"Forgot Password - wrong token\"\n return False\n\n \n if step == 3:\n # step 3 enters new password (only runs if custom attibute is forgot_password\n\n user_service = CdiUtil.bean(UserService)\n\n email = identity.getWorkingParameter(\"useremail\")\n user2 = user_service.getUserByAttribute(\"mail\", email)\n\n\n user_name = user2.getUserId()\n \n new_password = ServerUtil.getFirstValue(requestParameters, \"UpdatePasswordForm:newPassword\")\n \n print \"Forgot Password - New password submited\"\n \n # update user info with new password\n user2.setAttribute(\"userPassword\",new_password)\n print \"Forgot Password - user uid is %s\" % user_name\n print \"Forgot Password - Updating user with new password...\"\n user_service.updateUser(user2)\n print \"Forgot Password - User updated with new password\"\n # authenticates and login user\n print \"Forgot Password - Loading authentication service...\"\n authenticationService2 = CdiUtil.bean(AuthenticationService)\n\n print \"Forgot Password - Trying to authenticate user...\"\n login = authenticationService2.authenticate(user_name, new_password)\n \n return True\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \n print \"Forgot Password - Preparing for step %s\" % step\n \n return True\n\n\n # Return value is a java.util.List \n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"token\",\"useremail\",\"token_valid\")\n\n\n # This method determines how many steps the authentication flow may have\n # It doesn't have to be a constant value\n def getCountAuthenticationSteps(self, configurationAttributes):\n \n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n \n\n # if option is forgot_token\n if sf == \"forgot_password\":\n print \"Entered sf == forgot_password\"\n return 3\n \n # if ption is email_2FA\n if sf == \"email_2FA\":\n print \"Entered if sf=email_2FA\"\n return 2\n\n else:\n print \"Forgot Password - Custom Script Custom Property Incorrect, please check\"\n\n\n # The xhtml page to render upon each step of the flow\n # returns a string relative to oxAuth webapp root\n def getPageForStep(self, configurationAttributes, step):\n \n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n\n if step == 1:\n\n if sf == \"forgot_password\":\n return \"/auth/forgot_password/forgot.xhtml\"\n\n if sf == 'email_2FA':\n return \"\"\n\n if step == 2:\n return \"/auth/forgot_password/entertoken.xhtml\"\n\n if step == 3:\n if sf == \"forgot_password\":\n return \"/auth/forgot_password/newpassword.xhtml\"\n\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n # Method used on version 2 (11?)\n return -1\n \n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "SCRIPT_FUNCTION" } ], "scriptType": "person_authentication", "name": "Forgot_Password_2FA_Token", "modified": false, "configurationProperties": [ { "hide": false, "value2": "forgot_password", "value1": "SCRIPT_FUNCTION" } ], "baseDn": "inum=B270-381E,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "Agama Script", "locationType": "ldap", "dn": "inum=BADA-BADA,ou=scripts,o=jans", "inum": "BADA-BADA", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\nfrom io.jans.agama import NativeJansFlowBridge\nfrom io.jans.agama.engine.misc import FlowUtils\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.jsf2.service import FacesService\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nfrom jakarta.faces.application import FacesMessage\n\nimport java\nimport sys\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Agama. Initialization\" \n prop = \"cust_param_name\"\n self.cust_param_name = self.configProperty(configurationAttributes, prop)\n \n if self.cust_param_name == None:\n print \"Agama. Custom parameter name not referenced via property '%s'\" % prop\n return False\n \n print \"Agama. Request param '%s' will be used to pass flow inputs\" % self.cust_param_name\n print \"Agama. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Agama. Destroy\"\n print \"Agama. Destroyed successfully\"\n return True\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n\n if step == 1:\n print \"Agama. Authenticate for step 1\"\n \n try:\n bridge = CdiUtil.bean(NativeJansFlowBridge)\n result = bridge.close()\n \n if result == None or not result.isSuccess():\n print \"Agama. Flow DID NOT finished successfully\"\n return False\n else:\n print \"Agama. Flow finished successfully\"\n data = result.getData()\n userId = data.get(\"userId\") if data != None else None\n \n if userId == None:\n print \"Agama. No userId provided in flow result.\" \n self.setMessageError(FacesMessage.SEVERITY_ERROR, \"Unable to determine identity of user\")\n return False\n \n authenticated = CdiUtil.bean(AuthenticationService).authenticate(userId)\n \n if not authenticated:\n print \"Agama. Unable to authenticate %s\" % userId\n return False\n except:\n print \"Agama. Exception: \", sys.exc_info()[1]\n return False\n\n return True\n\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \n if not CdiUtil.bean(FlowUtils).serviceEnabled():\n print \"Agama. Please ENABLE Agama engine in auth-server configuration\"\n return False\n\n if step == 1:\n print \"Agama. Prepare for Step 1\"\n\n session = CdiUtil.bean(Identity).getSessionId()\n if session == None:\n print \"Agama. Failed to retrieve session_id\"\n return False\n \n param = session.getSessionAttributes().get(self.cust_param_name) \n if param == None:\n print \"Agama. Request param '%s' is missing or has no value\" % self.cust_param_name\n return False\n \n (qn, ins) = self.extractParams(param)\n if qn == None:\n print \"Agama. Param '%s' is missing the name of the flow to be launched\" % self.cust_param_name\n return False\n \n try:\n bridge = CdiUtil.bean(NativeJansFlowBridge)\n running = bridge.prepareFlow(session.getId(), qn, ins)\n \n if running == None:\n print \"Agama. Flow '%s' does not exist!\" % qn\n return False\n elif running:\n print \"Agama. A flow is already in course\"\n \n print \"Agama. Redirecting to start/resume agama flow '%s'...\" % qn\n \n CdiUtil.bean(FacesService).redirectToExternalURL(bridge.getTriggerUrl())\n except:\n print \"Agama. An error occurred when launching flow '%s'. Check jans-auth logs\" % qn\n print \"Agama. Exception: \", sys.exc_info()[1]\n return False\n #except java.lang.Throwable, ex:\n # ex.printStackTrace() \n # return False \n return True\n \n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n # page referenced here is only used when a flow is restarted\n return \"/\" + CdiUtil.bean(NativeJansFlowBridge).scriptPageUrl()\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n# Misc routines\n\n def configProperty(self, configProperties, name):\n prop = configProperties.get(name)\n return None if prop == None else prop.getValue2()\n\n def setMessageError(self, severity, msg):\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n facesMessages.clear()\n facesMessages.add(severity, msg)\n \n def extractParams(self, param):\n\n # param must be of the form QN-INPUT where QN is the qualified name of the flow to launch\n # INPUT is a JSON object that contains the arguments to use for the flow call.\n # The keys of this object should match the already defined flow inputs. Ideally, and \n # depending on the actual flow implementation, some keys may not even be required \n # QN and INPUTS are separated by a hyphen\n # INPUT must be properly URL-encoded when HTTP GET is used\n \n i = param.find(\"-\")\n if i == 0:\n return (None, None)\n elif i == -1:\n return (param, None)\n else:\n return (param[:i], param[i+1:])\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "agama", "modified": false, "configurationProperties": [ { "hide": false, "value2": "agama_flow", "value1": "cust_param_name" } ], "baseDn": "inum=BADA-BADA,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "Firebase notification sender", "locationType": "ldap", "dn": "inum=C1BA-C1BA,ou=scripts,o=jans", "inum": "C1BA-C1BA", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2018, Janssen\n#\n# Author: Milton BO\n#\n#\n\nfrom io.jans.as.client.fcm import FirebaseCloudMessagingResponse\nfrom io.jans.as.client.fcm import FirebaseCloudMessagingClient\nfrom io.jans.as.client.fcm import FirebaseCloudMessagingRequest\nfrom io.jans.as.util import RedirectUri\nfrom io.jans.model.custom.script.type.ciba import EndUserNotificationType\nfrom java.lang import String\nfrom java.util import UUID\n\nclass EndUserNotification(EndUserNotificationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, configurationAttributes):\n print \"Firebase EndUserNotification script. Initializing ...\"\n print \"Firebase EndUserNotification script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Firebase EndUserNotification script. Destroying ...\"\n print \"Firebase EndUserNotification script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 1\n\n # Returns boolean true or false depending on the process, if the notification\n # is sent successfully or not.\n def notifyEndUser(self, context):\n print 'Sending push notification using Firebase Cloud Messaging'\n appConfiguration = context.getAppConfiguration()\n encryptionService = context.getEncryptionService()\n clientId = appConfiguration.getBackchannelClientId()\n redirectUri = appConfiguration.getBackchannelRedirectUri()\n url = appConfiguration.getCibaEndUserNotificationConfig().getNotificationUrl()\n key = encryptionService.decrypt(appConfiguration.getCibaEndUserNotificationConfig().getNotificationKey(), True)\n to = context.getDeviceRegistrationToken()\n title = \"oxAuth Authentication Request\"\n body = \"Client Initiated Backchannel Authentication (CIBA)\"\n\n authorizationRequestUri = RedirectUri(appConfiguration.getAuthorizationEndpoint())\n authorizationRequestUri.addResponseParameter(\"client_id\", clientId)\n authorizationRequestUri.addResponseParameter(\"response_type\", \"id_token\")\n authorizationRequestUri.addResponseParameter(\"scope\", context.getScope())\n authorizationRequestUri.addResponseParameter(\"acr_values\", context.getAcrValues())\n authorizationRequestUri.addResponseParameter(\"redirect_uri\", redirectUri)\n authorizationRequestUri.addResponseParameter(\"state\", UUID.randomUUID().toString())\n authorizationRequestUri.addResponseParameter(\"nonce\", UUID.randomUUID().toString())\n authorizationRequestUri.addResponseParameter(\"prompt\", \"consent\")\n authorizationRequestUri.addResponseParameter(\"auth_req_id\", context.getAuthReqId())\n\n clickAction = authorizationRequestUri.toString()\n\n firebaseCloudMessagingRequest = FirebaseCloudMessagingRequest(key, to, title, body, clickAction)\n firebaseCloudMessagingClient = FirebaseCloudMessagingClient(url)\n firebaseCloudMessagingClient.setRequest(firebaseCloudMessagingRequest)\n firebaseCloudMessagingResponse = firebaseCloudMessagingClient.exec()\n\n responseStatus = firebaseCloudMessagingResponse.getStatus()\n print \"CIBA: firebase cloud messaging result status \" + str(responseStatus)\n return (responseStatus >= 200 and responseStatus < 300 )\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "ciba_end_user_notification", "name": "firebase_ciba_end_user_notification", "modified": false, "baseDn": "inum=C1BA-C1BA,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Scan Token Update Script", "dn": "inum=CACD-5902,ou=scripts,o=jans", "inum": "CACD-5902", "script": "from io.jans.service.cdi.util import CdiUtil\nfrom io.jans.model.custom.script.type.token import UpdateTokenType\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.model.config import ConfigurationFactory\nfrom io.jans.as.server.service import ClientService\nfrom io.jans.as.server.service.net import HttpService\nfrom java.nio.charset import Charset\nfrom org.json import JSONObject\nfrom jakarta.faces.context import FacesContext\n\nimport java\nimport sys\nimport os\n\nclass UpdateToken(UpdateTokenType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Update token script. Initializing ...\"\n if (not configurationAttributes.containsKey(\"BILLING_API_URL\")):\n\t print \"Update token script. Initialization. Property BILLING_API_URL is not specified\"\n\t return False\n else:\n \tself.BILLING_API_URL = configurationAttributes.get(\"BILLING_API_URL\").getValue2()\n\n print \"Update token script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Update token script. Destroying ...\"\n print \"Update token script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - indicates that script applied changes\n # This method is called after adding headers and claims. Hence script can override them\n # Note :\n # jsonWebResponse - is JwtHeader, you can use any method to manipulate JWT\n # context is reference of io.jans.oxauth.service.external.context.ExternalUpdateTokenContext (in https://github.com/GluuFederation/oxauth project, )\n def modifyIdToken(self, jsonWebResponse, context):\n return True\n\n # Returns boolean, true - indicates that script applied changes. If false is returned token will not be created.\n # refreshToken is reference of io.jans.as.server.model.common.RefreshToken (note authorization grant can be taken as context.getGrant())\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def modifyRefreshToken(self, refreshToken, context):\n return True\n\n # Returns boolean, true - indicates that script applied changes. If false is returned token will not be created.\n # accessToken is reference of io.jans.as.server.model.common.AccessToken (note authorization grant can be taken as context.getGrant())\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def modifyAccessToken(self, accessToken, context):\n print \"Update token script. Modify AT: \"\n\tsessionIdService = CdiUtil.bean(SessionIdService)\n\tsessionId = sessionIdService.getSessionByDn(context.getGrant().getSessionDn()) # fetch from persistence\n client_id = sessionId.getSessionAttributes().get(\"client_id\")\n\n # get org_id from client_id\n clientService = CdiUtil.bean(ClientService)\n client = clientService.getClient(client_id)\n org_id = client.getOrganization()\n\n # the aud claim is mandatory in the auth header request (by Google API gateway)\n facesContext = CdiUtil.bean(FacesContext)\n request = facesContext.getExternalContext().getRequest()\n accessToken.getHeader().setClaim(\"aud\", request)\n\n\n # query Billing API\n return self.balanceAvailable(org_id)\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getRefreshTokenLifetimeInSeconds(self, context):\n return 0\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getIdTokenLifetimeInSeconds(self, context):\n return 0\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getAccessTokenLifetimeInSeconds(self, context):\n return 0\n\n def balanceAvailable(self, org_id):\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n\n url = self.BILLING_API_URL + \"organization_balance?organization_id=\"+org_id\n\n try:\n http_service_response = httpService.executeGet(http_client, url)\n http_response = http_service_response.getHttpResponse()\n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes, Charset.forName(\"UTF-8\"))\n json_response = JSONObject(response_string)\n httpService.consume(http_response)\n print json_response.get(\"status\")\n if json_response.get(\"status\") == \"true\":\n return True\n else:\n print \"AT will not be created because balance is negative : %s \" % json_response.get(\"status\")\n return False\n\n except:\n print \"Failed to invoke BILLING_API: \", sys.exc_info()[1]\n return False\n\n\n finally:\n http_service_response.closeConnection()\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "v2", "value1": "v1" } ], "scriptType": "update_token", "name": "scan_update_token", "modified": false, "configurationProperties": [ { "hide": false, "value2": "https://my.billing.api.com/", "value1": "BILLING_API_URL", "description": "URL to billing API" } ], "baseDn": "inum=CACD-5902,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Permission Dynamic Scope script", "locationType": "ldap", "dn": "inum=CB5B-3211,ou=scripts,o=jans", "inum": "CB5B-3211", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.scope import DynamicScopeType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList\n\nimport java\n\nclass DynamicScope(DynamicScopeType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Permission dynamic scope. Initialization\"\n\n print \"Permission dynamic scope. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Permission dynamic scope. Destroy\"\n print \"Permission dynamic scope. Destroyed successfully\"\n return True \n\n # Update Json Web token before signing/encrypring it\n # dynamicScopeContext is io.jans.as.service.external.context.DynamicScopeExternalContext\n # configurationAttributes is java.util.Map\n def update(self, dynamicScopeContext, configurationAttributes):\n print \"Permission dynamic scope scope. Update method\"\n\n authorizationGrant = dynamicScopeContext.getAuthorizationGrant()\n user = dynamicScopeContext.getUser()\n jsonWebResponse = dynamicScopeContext.getJsonWebResponse()\n claims = jsonWebResponse.getClaims()\n\n userService = CdiUtil.bean(UserService)\n roles = userService.getCustomAttribute(user, \"role\")\n if roles != None:\n claims.setClaim(\"role\", roles.getValues())\n\n return True\n\n def getSupportedClaims(self, configurationAttributes):\n return Arrays.asList(\"role\")\n\n def getApiVersion(self):\n return 11\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "dynamic_scope", "name": "dynamic_permission", "modified": false, "baseDn": "inum=CB5B-3211,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Client Registration script", "locationType": "ldap", "dn": "inum=DAA9-B788,ou=scripts,o=jans", "inum": "DAA9-B788", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.client import ClientRegistrationType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.service import ScopeService\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList, HashSet\n\nimport java\n\nclass ClientRegistration(ClientRegistrationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Client registration. Initialization\"\n \n self.clientRedirectUrisSet = self.prepareClientRedirectUris(configurationAttributes)\n\n print \"Client registration. Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Client registration. Destroy\"\n print \"Client registration. Destroyed successfully\"\n return True \n\n # Update client entry before persistent it\n # context refers to io.jans.as.server.service.external.context.DynamicClientRegistrationContext - see https://github.com/JanssenProject/jans-auth-server/blob/e083818272ac48813eca8525e94f7bd73a7a9f1b/server/src/main/java/io/jans/as/server/service/external/context/DynamicClientRegistrationContext.java#L24\n def createClient(self, context):\n print \"Client registration. CreateClient method\"\n registerRequest = context.getRegisterRequest()\n configurationAttributes = context.getConfigurationAttibutes()\n client = context.getClient()\n\n redirectUris = client.getRedirectUris()\n print \"Client registration. Redirect Uris: %s\" % redirectUris\n\n addAddressScope = False\n for redirectUri in redirectUris:\n if (self.clientRedirectUrisSet.contains(redirectUri)):\n addAddressScope = True\n break\n \n print \"Client registration. Is add address scope: %s\" % addAddressScope\n\n if addAddressScope:\n currentScopes = client.getScopes()\n print \"Client registration. Current scopes: %s\" % currentScopes\n \n scopeService = CdiUtil.bean(ScopeService)\n addressScope = scopeService.getScopeByDisplayName(\"address\")\n newScopes = ArrayHelper.addItemToStringArray(currentScopes, addressScope.getDn())\n \n print \"Client registration. Result scopes: %s\" % newScopes\n client.setScopes(newScopes)\n\n return True\n\n # Update client entry before persistent it\n # context refers to io.jans.as.server.service.external.context.DynamicClientRegistrationContext - see https://github.com/JanssenProject/jans-auth-server/blob/e083818272ac48813eca8525e94f7bd73a7a9f1b/server/src/main/java/io/jans/as/server/service/external/context/DynamicClientRegistrationContext.java#L24\n def updateClient(self, context):\n print \"Client registration. UpdateClient method\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def prepareClientRedirectUris(self, configurationAttributes):\n clientRedirectUrisSet = HashSet()\n if not configurationAttributes.containsKey(\"client_redirect_uris\"):\n return clientRedirectUrisSet\n\n clientRedirectUrisList = configurationAttributes.get(\"client_redirect_uris\").getValue2()\n if StringHelper.isEmpty(clientRedirectUrisList):\n print \"Client registration. The property client_redirect_uris is empty\"\n return clientRedirectUrisSet \n\n clientRedirectUrisArray = StringHelper.split(clientRedirectUrisList, \",\")\n if ArrayHelper.isEmpty(clientRedirectUrisArray):\n print \"Client registration. No clients specified in client_redirect_uris property\"\n return clientRedirectUrisSet\n \n # Convert to HashSet to quick search\n i = 0\n count = len(clientRedirectUrisArray)\n while i < count:\n uris = clientRedirectUrisArray[i]\n clientRedirectUrisSet.add(uris)\n i = i + 1\n\n return clientRedirectUrisSet\n\n # Returns secret key which will be used to validate Software Statement if HMAC algorithm is used (e.g. HS256, HS512). Invoked if oxauth conf property softwareStatementValidationType=SCRIPT which is default/fallback value.\n # context is reference of io.jans.as.service.external.context.DynamicClientRegistrationContext (in https://github.com/JanssenFederation/oxauth project )\n def getSoftwareStatementHmacSecret(self, context):\n return \"\"\n\n # Returns JWKS which will be used to validate Software Statement if keys are used (e.g. RS256). Invoked if oxauth conf property softwareStatementValidationType=SCRIPT which is default/fallback value.\n # context is reference of io.jans.as.service.external.context.DynamicClientRegistrationContext (in https://github.com/JanssenFederation/oxauth project )\n def getSoftwareStatementJwks(self, context):\n return \"\"\n\n # cert - java.security.cert.X509Certificate\n # context refers to io.jans.as.server.service.external.context.DynamicClientRegistrationContext - see https://github.com/JanssenProject/jans-auth-server/blob/e083818272ac48813eca8525e94f7bd73a7a9f1b/server/src/main/java/io/jans/as/server/service/external/context/DynamicClientRegistrationContext.java#L24\n def isCertValidForClient(self, cert, context):\n return False\n\n # responseAsJsonObject - is org.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.server.model.common.ExecutionContext\n def modifyPutResponse(self, responseAsJsonObject, executionContext):\n return False\n\n # responseAsJsonObject - is org.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.server.model.common.ExecutionContext\n def modifyReadResponse(self, responseAsJsonObject, executionContext):\n return False\n\n # responseAsJsonObject - is org.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.server.model.common.ExecutionContext\n def modifyPostResponse(self, responseAsJsonObject, executionContext):\n return False\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "client_registration", "name": "client_registration", "modified": false, "configurationProperties": [ { "hide": false, "value2": "https://client.example.com/example1, https://client.example.com/example2", "value1": "client_redirect_uris" } ], "baseDn": "inum=DAA9-B788,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Application Session script", "locationType": "ldap", "dn": "inum=DAA9-B789,ou=scripts,o=jans", "inum": "DAA9-B789", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.session import ApplicationSessionType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.persist import PersistenceEntryManager\nfrom io.jans.as.model.config import StaticConfiguration\nfrom io.jans.as.model.ldap import TokenEntity\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom io.jans.as.model.config import Constants\nfrom java.util import Arrays, ArrayList\nfrom io.jans.as.service.external.session import SessionEventType\n\nimport java\n\nclass ApplicationSession(ApplicationSessionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Application session. Initialization\"\n\n self.entryManager = CdiUtil.bean(PersistenceEntryManager)\n self.staticConfiguration = CdiUtil.bean(StaticConfiguration)\n\n print \"Application session. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Application session. Destroy\"\n print \"Application session. Destroyed successfully\"\n return True \n\n def getApiVersion(self):\n return 11\n\n # Called each time specific session event occurs\n # event is io.jans.as.service.external.session.SessionEvent\n def onEvent(self, event):\n if event.getType() == SessionEventType.AUTHENTICATED:\n print \"Session is authenticated, session: \" + event.getSessionId().getId()\n return\n\n # Application calls it at start session request to allow notify 3rd part systems\n # httpRequest is jakarta.servlet.http.HttpServletRequest\n # sessionId is io.jans.as.model.common.SessionId\n # configurationAttributes is java.util.Map\n def startSession(self, httpRequest, sessionId, configurationAttributes):\n print \"Application session. Starting external session\"\n\n user_name = sessionId.getSessionAttributes().get(Constants.AUTHENTICATED_USER)\n\n first_session = self.isFirstSession(user_name)\n if not first_session:\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Please, end active session first!\")\n return False\n\n print \"Application session. External session started successfully\"\n return True\n\n # Application calls it at end session request to allow notify 3rd part systems\n # httpRequest is jakarta.servlet.http.HttpServletRequest\n # sessionId is io.jans.as.model.common.SessionId\n # configurationAttributes is java.util.Map\n def endSession(self, httpRequest, sessionId, configurationAttributes):\n print \"Application session. Starting external session end\"\n\n print \"Application session. External session ended successfully\"\n return True\n\n # Application calls it during /session/active endpoint call to modify response if needed\n # jsonArray is org.json.JSONArray\n # context is io.jans.as.server.model.common.ExecutionContext\n def modifyActiveSessionsResponse(self, jsonArray, context):\n return False\n\n def isFirstSession(self, user_name):\n tokenLdap = TokenEntity()\n tokenLdap.setDn(self.staticConfiguration.getBaseDn().getClients())\n tokenLdap.setUserId(user_name)\n\n tokenLdapList = self.entryManager.findEntries(tokenLdap, 1)\n print \"Application session. isFirstSession. Get result: '%s'\" % tokenLdapList\n\n if (tokenLdapList != None) and (tokenLdapList.size() > 0):\n print \"Application session. isFirstSession: False\"\n return False\n\n print \"Application session. isFirstSession: True\"\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "application_session", "name": "application_session", "modified": false, "baseDn": "inum=DAA9-B789,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "Consent Gathering script", "locationType": "ldap", "dn": "inum=DAA9-BA60,ou=scripts,o=jans", "inum": "DAA9-BA60", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2017, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.authz import ConsentGatheringType\nfrom io.jans.util import StringHelper\n\nimport java\nimport random\n\nclass ConsentGathering(ConsentGatheringType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Consent-Gathering. Initializing ...\"\n print \"Consent-Gathering. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Consent-Gathering. Destroying ...\"\n print \"Consent-Gathering. Destroyed successfully\"\n\n return True\n\n def getApiVersion(self):\n return 1\n\n # Main consent-gather method. Must return True (if gathering performed successfully) or False (if fail).\n # All user entered values can be access via Map context.getPageAttributes()\n def authorize(self, step, context): # context is reference of io.jans.as.service.external.context.ConsentGatheringContext\n print \"Consent-Gathering. Authorizing...\"\n\n if step == 1:\n allowButton = context.getRequestParameters().get(\"authorizeForm:allowButton\")\n if (allowButton != None) and (len(allowButton) > 0):\n print \"Consent-Gathering. Authorization success for step 1\"\n return True\n\n print \"Consent-Gathering. Authorization declined for step 1\"\n elif step == 2:\n allowButton = context.getRequestParameters().get(\"authorizeForm:allowButton\")\n if (allowButton != None) and (len(allowButton) > 0):\n print \"Consent-Gathering. Authorization success for step 2\"\n return True\n\n print \"Consent-Gathering. Authorization declined for step 2\"\n\n return False\n\n def getNextStep(self, step, context):\n return -1\n\n def prepareForStep(self, step, context):\n if not context.isAuthenticated():\n print \"User is not authenticated. Aborting authorization flow ...\"\n return False\n\n if step == 2:\n pageAttributes = context.getPageAttributes()\n \n # Generate random consent gathering request\n consentRequest = \"Requested transaction #%s approval for the amount of sum $ %s.00\" % ( random.randint(100000, 1000000), random.randint(1, 100) )\n pageAttributes.put(\"consent_request\", consentRequest)\n return True\n\n return True\n\n def getStepsCount(self, context):\n return 2\n\n def getPageForStep(self, step, context):\n if step == 1:\n return \"/authz/authorize.xhtml\"\n elif step == 2:\n return \"/authz/transaction.xhtml\"\n\n return \"\"\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "consent_gathering", "name": "consent_gathering", "modified": false, "baseDn": "inum=DAA9-BA60,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "GitHub Inbound Authentication script", "locationType": "ldap", "dn": "inum=E706-F8A8,ou=scripts,o=jans", "inum": "E706-F8A8", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.as.common.model.common import User\nfrom io.jans.as.model.jwt import Jwt\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.common.service.common import UserService\nfrom io.jans.as.server.service.net import HttpService\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.as.persistence.model.configuration import GluuConfiguration\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nfrom io.jans.jsf2.service import FacesService\nfrom java.util import Arrays, UUID\n\nimport json\nimport sys\nimport datetime\nimport urllib\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"GitHub. Initialization\"\n\n # read config from github_creds_file\n github_creds_file = configurationAttributes.get(\"github_creds_file\").getValue2()\n f = open(github_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n print creds\n except:\n print \"GitHub: Initialization. Failed to load creds from file:\", github_creds_file\n print \"Exception: \", sys.exc_info()[1]\n return False\n finally:\n f.close()\n\n self.op_server = str(creds[\"op_server\"])\n self.client_id = str(creds[\"client_id\"])\n self.client_secret = str(creds[\"client_secret\"])\n self.authorization_uri = str(creds[\"authorization_uri\"])\n self.token_uri = str(creds[\"token_uri\"])\n self.userinfo_uri = str(creds[\"userinfo_uri\"])\n self.redirect_uri = str(creds[\"redirect_uri\"])\n self.scope = str(creds[\"scope\"])\n self.title = str(creds[\"title\"])\n self.auto_redirect = creds[\"auto_redirect\"]\n\n print \"GitHub: Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"GitHub. Destroy\"\n print \"GitHub. Destroyed successfully\"\n return True\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"GitHub: authenticate called for step %s\" % str(step)\n identity = CdiUtil.bean(Identity)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n # Get Access Token\n tokenResponse = self.getToken(requestParameters)\n if tokenResponse is None:\n return False\n\n # Get User Info\n userInfo = self.getUserInfo(tokenResponse[\"access_token\"])\n foundUser = self.addUser(userInfo)\n if foundUser is None:\n return False\n\n identity.setWorkingParameter(\"gihub_username\", userInfo[\"login\"])\n identity.setWorkingParameter(\"gihub_access_token\", tokenResponse[\"access_token\"])\n\n print \"GitHub: Successfully authenticated\"\n\n loggedIn = authenticationService.authenticate(foundUser.getUserId())\n print \"GitHub: Authentication: %s\" % str(loggedIn)\n return loggedIn\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n print \"GitHub: prepareForStep called for step %s\" % str(step)\n if step == 1:\n # redirect to external OIDC server\n\n redirect_url_elements = [self.authorization_uri,\n \"?response_type=code id_token\",\n \"&client_id=\", self.client_id,\n \"&scope=\", self.scope,\n \"&redirect_uri=\", self.redirect_uri]\n redirect_url = \"\".join(redirect_url_elements)\n\n identity = CdiUtil.bean(Identity)\n\n if self.auto_redirect:\n facesService = CdiUtil.bean(FacesService)\n facesService.redirectToExternalURL(redirect_url)\n else:\n identity.setWorkingParameter(\"oidc_redirect_uri\", redirect_url)\n identity.setWorkingParameter(\"oidc_title\", self.title)\n\n return True\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n print \"GitHub: getExtraParametersForStep called for step %s\" % str(step)\n return Arrays.asList(\"gihub_username\", \"gihub_access_token\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n print \"GitHub: getCountAuthenticationSteps called\"\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n print \"GitHub: getPageForStep called for step %s\" % str(step)\n if(step == 1):\n return \"/auth/github/github.xhtml\"\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n print \"GitHub: getNextStep called for step %s\" % str(step)\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"GitHub: Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def generalLogin(self, identity, authenticationService):\n print \"GitHub: general login\"\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n return logged_in\n\n def getLocalPrimaryKey(self):\n entryManager = CdiUtil.bean(PersistenceEntryManager)\n config = GluuConfiguration()\n config = entryManager.find(config.getClass(), \"ou=configuration,o=jans\")\n # Pick (one) attribute where user id is stored (e.g. uid/mail)\n # primaryKey is the primary key on the backend AD / LDAP Server\n # localPrimaryKey is the primary key on Janssen. This attr value has been mapped with the primary key attr of the backend AD / LDAP when configuring cache refresh\n uid_attr = config.getIdpAuthn().get(0).getConfig().findValue(\"localPrimaryKey\").asText()\n print \"GitHub: init. uid attribute is '%s'\" % uid_attr\n return uid_attr\n\n def getToken(self, requestParameters):\n print \"GitHub: Get Access Token\"\n oidcCode = ServerUtil.getFirstValue(requestParameters, \"code\")\n httpService = CdiUtil.bean(HttpService)\n httpclient = httpService.getHttpsClient()\n tokenRequestData = urllib.urlencode({\n \"code\" : oidcCode,\n \"grant_type\" : \"authorization_code\",\n \"redirect_uri\": self.redirect_uri,\n \"client_id\": self.client_id,\n \"client_secret\": self.client_secret\n })\n\n tokenRequestHeaders = { \"Content-type\" : \"application/x-www-form-urlencoded\", \"Accept\" : \"application/json\" }\n\n resultResponse = httpService.executePost(httpclient, self.token_uri, None, tokenRequestHeaders, tokenRequestData)\n httpResponse = resultResponse.getHttpResponse()\n httpResponseStatusCode = httpResponse.getStatusLine().getStatusCode()\n print \"OIDC: token response status code: %s\" % httpResponseStatusCode\n if str(httpResponseStatusCode) != \"200\":\n print \"OIDC: Failed to get token, status code %s\" % httpResponseStatusCode\n return None\n\n responseBytes = httpService.getResponseContent(httpResponse)\n responseString = httpService.convertEntityToString(responseBytes)\n tokenResponse = json.loads(responseString)\n\n return tokenResponse\n\n def addUser(self, user):\n try:\n print \"GitHub: Adding user\"\n userId = user[\"login\"]\n userService = CdiUtil.bean(UserService)\n foundUser = userService.getUserByAttribute(\"jansExtUid\", \"github:\"+userId)\n\n if foundUser is None:\n print \"GitHub: User not found, adding new\"\n foundUser = User()\n foundUser.setAttribute(\"jansExtUid\", \"github:\"+userId)\n foundUser.setAttribute(\"jansEmail\", user[\"email\"])\n foundUser.setAttribute(\"mail\", user[\"email\"])\n foundUser.setAttribute(\"displayName\", \"github:\"+userId)\n foundUser.setAttribute(\"givenName\", \"github:\"+userId)\n foundUser.setAttribute(self.getLocalPrimaryKey(), userId)\n foundUser = userService.addUser(foundUser, True)\n\n return foundUser\n except Exception as e:\n print e\n print \"GitHub: Add user Exception: \", sys.exc_info()[1]\n return None\n\n def getUserInfo(self, accessToken):\n try:\n print \"GitHub: Get Userinfo\"\n httpService = CdiUtil.bean(HttpService)\n httpclient = httpService.getHttpsClient()\n tokenRequestHeaders = { \"Authorization\" : \"Bearer %s\" % accessToken, \"Accept\" : \"application/json\" }\n\n resultResponse = httpService.executeGet(httpclient, self.userinfo_uri, tokenRequestHeaders)\n httpResponse = resultResponse.getHttpResponse()\n httpResponseStatusCode = httpResponse.getStatusLine().getStatusCode()\n print \"GitHub: userinfo response status code: %s\" % httpResponseStatusCode\n if str(httpResponseStatusCode) != \"200\":\n print \"GitHub: Failed to get userinfo, status code %s\" % httpResponseStatusCode\n return None\n\n responseBytes = httpService.getResponseContent(httpResponse)\n responseString = httpService.convertEntityToString(responseBytes)\n userinfoResponse = json.loads(responseString)\n\n print userinfoResponse\n\n return userinfoResponse\n except Exception as e:\n print e\n return None\n", "enabled": false, "revision": 0, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "github", "modified": false, "configurationProperties": [ { "hide": false, "value2": "true", "value1": "hide" }, { "hide": false, "value2": "/etc/jans/conf/github.json", "value1": "github_creds_file" }, { "hide": false, "value2": "GitHub Login", "value1": "description" } ], "baseDn": "inum=E706-F8A8,ou=scripts,o=jans" } ], "start": 0, "totalEntriesCount": 39 } 24-11 09:33:40.737 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:40.738 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:40.738 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:40.738 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:40.739 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:40.739 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:40.740 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:40.740 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:40.740 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:40.740 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:40.745 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:40.745 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:40.745 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:40.745 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:40.746 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:40.746 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:40.746 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:40.746 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:40.747 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:40.747 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:41.091 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 39, "entries": [ { "internal": false, "level": 1, "programmingLanguage": "java", "description": "Java Custom Sample Script", "locationType": "ldap", "dn": "inum=0300-BA90,ou=scripts,o=jans", "inum": "0300-BA90", "script": "/* Copyright (c) 2022, Gluu\n Author: Yuriy Z\n */\n\nimport io.jans.model.SimpleCustomProperty;\nimport io.jans.model.custom.script.model.CustomScript;\nimport io.jans.model.custom.script.type.discovery.DiscoveryType;\nimport io.jans.service.custom.script.CustomScriptManager;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.json.JSONObject;\n\nimport java.util.Map;\n\npublic class Discovery implements DiscoveryType {\n\n private static final Logger log = LoggerFactory.getLogger(Discovery.class);\n private static final Logger scriptLogger = LoggerFactory.getLogger(CustomScriptManager.class);\n\n @Override\n public boolean init(Map configurationAttributes) {\n log.info(\"Init of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public boolean init(CustomScript customScript, Map configurationAttributes) {\n log.info(\"Init of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public boolean destroy(Map configurationAttributes) {\n log.info(\"Destroy of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public int getApiVersion() {\n log.info(\"getApiVersion Discovery Java custom script: 11\");\n return 11;\n }\n\n @Override\n public boolean modifyResponse(Object responseAsJsonObject, Object context) {\n scriptLogger.info(\"write to script logger\");\n JSONObject response = (JSONObject) responseAsJsonObject;\n response.accumulate(\"key_from_java\", \"value_from_script_on_java\");\n return true;\n }\n}\n", "enabled": true, "revision": 11, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "discovery", "name": "discovery_java_params", "modified": false, "baseDn": "inum=0300-BA90,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Id Generator script", "locationType": "ldap", "dn": "inum=031C-4A65,ou=scripts,o=jans", "inum": "031C-4A65", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.id import IdGeneratorType\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList\n\nimport java\n\nclass IdGenerator(IdGeneratorType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Id generator. Initialization\"\n print \"Id generator. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Id generator. Destroy\"\n print \"Id generator. Destroyed successfully\"\n return True \n\n def getApiVersion(self):\n return 11\n\n # Id generator init method\n # appId is application Id\n # idType is Id Type\n # idPrefix is Id Prefix\n # user is io.jans.oxtrust.model.JanssenCustomPerson\n # configurationAttributes is java.util.Map\n def generateId(self, appId, idType, idPrefix, configurationAttributes):\n print \"Id generator. Generate Id\"\n print \"Id generator. Generate Id. AppId: '\", appId, \"', IdType: '\", idType, \"', IdPrefix: '\", idPrefix, \"'\"\n\n # Return None or empty string to trigger default Id generation method\n return None\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "id_generator", "name": "id_generator", "modified": false, "baseDn": "inum=031C-4A65,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Dynamic Scope script for org_name", "locationType": "ldap", "dn": "inum=031C-5621,ou=scripts,o=jans", "inum": "031C-5621", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.scope import DynamicScopeType\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList\n\nimport java\n\nclass DynamicScope(DynamicScopeType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Dynamic scope. Initialization\"\n\n print \"Dynamic scope. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Dynamic scope. Destroy\"\n print \"Dynamic scope. Destroyed successfully\"\n return True \n\n # Update Json Web token before signing/encrypring it\n # dynamicScopeContext is io.jans.as.service.external.context.DynamicScopeExternalContext\n # configurationAttributes is java.util.Map\n def update(self, dynamicScopeContext, configurationAttributes):\n print \"Dynamic scope. Update method\"\n\n dynamicScopes = dynamicScopeContext.getDynamicScopes()\n authorizationGrant = dynamicScopeContext.getAuthorizationGrant()\n user = dynamicScopeContext.getUser()\n jsonWebResponse = dynamicScopeContext.getJsonWebResponse()\n claims = jsonWebResponse.getClaims()\n\n # Add organization name if there is scope = org_name\n claims.setClaim(\"org_name\", \"Janssen, Inc.\")\n\n return True\n\n def getSupportedClaims(self, configurationAttributes):\n return Arrays.asList(\"org_name\")\n\n def getApiVersion(self):\n return 11\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "dynamic_scope", "name": "org_name", "modified": false, "baseDn": "inum=031C-5621,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Dynamic Scope script for work_phone", "locationType": "ldap", "dn": "inum=031C-5622,ou=scripts,o=jans", "inum": "031C-5622", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.scope import DynamicScopeType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList\n\nimport java\n\nclass DynamicScope(DynamicScopeType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Dynamic scope. Initialization\"\n\n print \"Dynamic scope. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Dynamic scope. Destroy\"\n print \"Dynamic scope. Destroyed successfully\"\n return True \n\n # Update Json Web token before signing/encrypring it\n # dynamicScopeContext is io.jans.as.service.external.context.DynamicScopeExternalContext\n # configurationAttributes is java.util.Map\n def update(self, dynamicScopeContext, configurationAttributes):\n print \"Dynamic scope. Update method\"\n\n dynamicScopes = dynamicScopeContext.getDynamicScopes()\n authorizationGrant = dynamicScopeContext.getAuthorizationGrant()\n user = dynamicScopeContext.getUser()\n jsonWebResponse = dynamicScopeContext.getJsonWebResponse()\n claims = jsonWebResponse.getClaims()\n\n # Add work phone if there is scope = work_phone\n userService = CdiUtil.bean(UserService)\n workPhone = userService.getCustomAttribute(user, \"telephoneNumber\")\n if workPhone != None:\n claims.setClaim(\"work_phone\", workPhone.getValues())\n\n return True\n\n def getSupportedClaims(self, configurationAttributes):\n return Arrays.asList(\"work_phone\")\n\n def getApiVersion(self):\n return 11\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "dynamic_scope", "name": "work_phone", "modified": false, "baseDn": "inum=031C-5622,ou=scripts,o=jans" }, { "internal": false, "level": 50, "programmingLanguage": "python", "description": "Twilio SMS authentication module", "locationType": "ldap", "dn": "inum=09A0-93D6,ou=scripts,o=jans", "inum": "09A0-93D6", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Gasmyr Mougang\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nimport com.twilio.Twilio as Twilio\nimport com.twilio.rest.api.v2010.account.Message as Message\nimport com.twilio.type.PhoneNumber as PhoneNumber\nimport org.codehaus.jettison.json.JSONArray as JSONArray\n\n\nimport java\nimport random\nimport jarray\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.mobile_number = None\n self.identity = CdiUtil.bean(Identity)\n\n def init(self, customScript, configurationAttributes):\n print \"==============================================\"\n print \"===TWILIO SMS INITIALIZATION==================\"\n print \"==============================================\"\n self.ACCOUNT_SID = None\n self.AUTH_TOKEN = None\n self.FROM_NUMBER = None\n\n # Get Custom Properties\n try:\n self.ACCOUNT_SID = configurationAttributes.get(\"twilio_sid\").getValue2()\n except:\n print 'TwilioSMS, Missing required configuration attribute \"twilio_sid\"'\n\n try:\n self.AUTH_TOKEN = configurationAttributes.get(\"twilio_token\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"twilio_token\"'\n try:\n self.FROM_NUMBER = configurationAttributes.get(\"from_number\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"from_number\"'\n\n if None in (self.ACCOUNT_SID, self.AUTH_TOKEN, self.FROM_NUMBER):\n print \"twilio_sid, twilio_token, from_number is empty ... returning False\"\n return False\n\n print \"===TWILIO SMS INITIALIZATION DONE PROPERLY=====\" \n return True\n\n def destroy(self, configurationAttributes):\n print \"Twilio SMS. Destroy\"\n print \"Twilio SMS. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"==============================================\"\n print \"====TWILIO SMS AUTHENCATION===================\"\n print \"==============================================\"\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n sessionIdService = CdiUtil.bean(SessionIdService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n form_name = ServerUtil.getFirstValue(requestParameters, \"TwilioSmsloginForm\")\n\n print \"TwilioSMS. form_response_passcode: %s\" % str(form_passcode)\n\n if step == 1:\n print \"==============================================\"\n print \"=TWILIO SMS STEP 1 | Password Authentication==\"\n print \"==============================================\"\n credentials = self.identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print 'TwilioSMS, Error retrieving user %s from LDAP' % (user_name)\n return False\n\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n self.mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"mobile\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if self.mobile_number == None:\n print \"TwilioSMS, Error finding mobile number for user '%s'\" % user_name \n \n except:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print 'TwilioSMS, Error finding mobile number for \"%s\". Exception: %s` % (user_name, sys.exc_info()[1])`'\n return False\n\n # Generate Random six digit code and store it in array\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n sessionId.getSessionAttributes().put(\"code\", code)\n\n try:\n Twilio.init(self.ACCOUNT_SID, self.AUTH_TOKEN);\n message = Message.creator(PhoneNumber(self.mobile_number), PhoneNumber(self.FROM_NUMBER), str(code)).create();\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print 'TwilioSMs, Message Sid: %s' % (message.getSid())\n print 'TwilioSMs, User phone: %s' % (self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n sessionId.getSessionAttributes().put(\"mobile_number\", self.mobile_number)\n sessionId.getSessionAttributes().put(\"mobile\", self.mobile_number)\n sessionIdService.updateSessionId(sessionId)\n self.identity.setWorkingParameter(\"mobile_number\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\",self.mobile_number)\n self.identity.setWorkingParameter(\"mobile\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile\",self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"Number: %s\" % (self.identity.getWorkingParameter(\"mobile_number\"))\n print \"Mobile: %s\" % (self.identity.getWorkingParameter(\"mobile\"))\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"========================================\"\n print \"===TWILIO SMS FIRST STEP DONE PROPERLY==\"\n print \"========================================\"\n return True\n except Exception, ex:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n print \"TwilioSMS. Error sending message to Twilio\"\n print \"TwilioSMS. Unexpected error:\", ex\n\n return False\n elif step == 2:\n # Retrieve the session attribute\n print \"==============================================\"\n print \"=TWILIO SMS STEP 2 | Password Authentication==\"\n print \"==============================================\"\n code = session_attributes.get(\"code\")\n print '=======> Session code is \"%s\"' % str(code)\n sessionIdService = CdiUtil.bean(SessionIdService)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n code = sessionId.getSessionAttributes().get(\"code\")\n print '=======> Database code is \"%s\"' % str(code)\n self.identity.setSessionId(sessionId)\n print \"==============================================\"\n print \"TwilioSMS. Code: %s\" % str(code)\n print \"==============================================\"\n if code is None:\n print \"TwilioSMS. Failed to find previously sent code\"\n return False\n\n if form_passcode is None:\n print \"TwilioSMS. Passcode is empty\"\n return False\n\n if len(form_passcode) != 6:\n print \"TwilioSMS. Passcode from response is not 6 digits: %s\" % form_passcode\n return False\n\n if form_passcode == code:\n print \"TiwlioSMS, SUCCESS! User entered the same code!\"\n print \"========================================\"\n print \"===TWILIO SMS SECOND STEP DONE PROPERLY\"\n print \"========================================\"\n return True\n\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n print \"TwilioSMS. FAIL! User entered the wrong code! %s != %s\" % (form_passcode, code)\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Incorrect Twilio code, please try again.\")\n print \"================================================\"\n print \"===TWILIO SMS SECOND STEP FAILED: INCORRECT CODE\"\n print \"================================================\"\n return False\n\n print \"TwilioSMS. ERROR: step param not found or != (1|2)\"\n\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"TwilioSMS. Prepare for Step 1\"\n return True\n elif step == 2:\n print \"TwilioSMS. Prepare for Step 2\"\n return True\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "twilio_sms", "modified": false, "configurationProperties": [ { "hide": false, "value1": "twilio_sid", "description": "Twilio account SID" }, { "hide": false, "value1": "twilio_token", "description": "Twilio API token" }, { "hide": false, "value1": "from_number", "description": "Twilio phone number with SMS capabilities" } ], "baseDn": "inum=09A0-93D6,ou=scripts,o=jans" }, { "internal": false, "level": 45, "programmingLanguage": "python", "description": "SMPP SMS authentication module", "locationType": "ldap", "dn": "inum=09A0-93D7,ou=scripts,o=jans", "inum": "09A0-93D7", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n# Copyright (c) 2019, Tele2\n\n# Author: Jose Gonzalez\n# Author: Gasmyr Mougang\n# Author: Stefan Andersson\n\nfrom java.util import Arrays, Date\nfrom java.io import IOException\nfrom java.lang import Enum\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import ArrayHelper\nfrom io.jans.util import StringHelper\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nfrom org.jsmpp import InvalidResponseException, PDUException\nfrom org.jsmpp.bean import Alphabet, BindType, ESMClass, GeneralDataCoding, MessageClass, NumberingPlanIndicator, RegisteredDelivery, SMSCDeliveryReceipt, TypeOfNumber\nfrom org.jsmpp.extra import NegativeResponseException, ResponseTimeoutException\nfrom org.jsmpp.session import BindParameter, SMPPSession\nfrom org.jsmpp.util import AbsoluteTimeFormatter, TimeFormatter\nimport random\n\n\nclass SmppAttributeError(Exception):\n pass\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.identity = CdiUtil.bean(Identity)\n\n def get_and_parse_smpp_config(self, config, attribute, _type = None, convert = False, optional = False, default_desc = None):\n try:\n value = config.get(attribute).getValue2()\n except:\n if default_desc:\n default_desc = \" using default '{}'\".format(default_desc)\n else:\n default_desc = \"\"\n\n if optional:\n raise SmppAttributeError(\"SMPP missing optional configuration attribute '{}'{}\".format(attribute, default_desc))\n else:\n raise SmppAttributeError(\"SMPP missing required configuration attribute '{}'\".format(attribute))\n\n if _type and issubclass(_type, Enum):\n try:\n return getattr(_type, value)\n except AttributeError:\n raise SmppAttributeError(\"SMPP could not find attribute '{}' in {}\".format(attribute, _type))\n\n if convert:\n try:\n value = int(value)\n except AttributeError:\n try:\n value = int(value, 16)\n except AttributeError:\n raise SmppAttributeError(\"SMPP could not parse value '{}' of attribute '{}'\".format(value, attribute))\n\n return value\n\n def init(self, customScript, configurationAttributes):\n print(\"SMPP Initialization\")\n\n self.TIME_FORMATTER = AbsoluteTimeFormatter()\n\n self.SMPP_SERVER = None\n self.SMPP_PORT = None\n\n self.SYSTEM_ID = None\n self.PASSWORD = None\n\n # Setup some good defaults for TON, NPI and source (from) address\n # TON (Type of Number), NPI (Number Plan Indicator)\n self.SRC_ADDR_TON = TypeOfNumber.ALPHANUMERIC # Alphanumeric\n self.SRC_ADDR_NPI = NumberingPlanIndicator.ISDN # ISDN (E163/E164)\n self.SRC_ADDR = \"Janssen OTP\"\n\n # Don't touch these unless you know what your doing, we don't handle number reformatting for\n # any other type than international.\n self.DST_ADDR_TON = TypeOfNumber.INTERNATIONAL # International\n self.DST_ADDR_NPI = NumberingPlanIndicator.ISDN # ISDN (E163/E164)\n\n # Priority flag and data_coding bits\n self.PRIORITY_FLAG = 3 # Very Urgent (ANSI-136), Emergency (IS-95)\n self.DATA_CODING_ALPHABET = Alphabet.ALPHA_DEFAULT # SMS default alphabet\n self.DATA_CODING_MESSAGE_CLASS = MessageClass.CLASS1 # EM (Mobile Equipment (mobile memory), normal message\n\n # Required server settings\n try:\n self.SMPP_SERVER = self.get_and_parse_smpp_config(configurationAttributes, \"smpp_server\")\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SMPP_PORT = self.get_and_parse_smpp_config(configurationAttributes, \"smpp_port\", convert = True)\n except SmppAttributeError as e:\n print(e)\n\n if None in (self.SMPP_SERVER, self.SMPP_PORT):\n print(\"SMPP smpp_server and smpp_port is empty, will not enable SMPP service\")\n return False\n\n # Optional system_id and password for bind auth\n try:\n self.SYSTEM_ID = self.get_and_parse_smpp_config(configurationAttributes, \"system_id\", optional = True)\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.PASSWORD = self.get_and_parse_smpp_config(configurationAttributes, \"password\", optional = True)\n except SmppAttributeError as e:\n print(e)\n\n if None in (self.SYSTEM_ID, self.PASSWORD):\n print(\"SMPP Authentication disabled\")\n\n # From number and to number settings\n try:\n self.SRC_ADDR_TON = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr_ton\",\n _type = TypeOfNumber,\n optional = True,\n default_desc = self.SRC_ADDR_TON\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SRC_ADDR_NPI = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr_npi\",\n _type = NumberingPlanIndicator,\n optional = True,\n default_desc = self.SRC_ADDR_NPI\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SRC_ADDR = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr\",\n optional = True,\n default_desc = self.SRC_ADDR\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DST_ADDR_TON = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"dest_addr_ton\",\n _type = TypeOfNumber,\n optional = True,\n default_desc = self.DST_ADDR_TON\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DST_ADDR_NPI = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"dest_addr_npi\",\n _type = NumberingPlanIndicator,\n optional = True,\n default_desc = self.DST_ADDR_NPI\n )\n except SmppAttributeError as e:\n print(e)\n\n # Priority flag and data coding, don't touch these unless you know what your doing...\n try:\n self.PRIORITY_FLAG = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"priority_flag\",\n convert = True,\n optional = True,\n default_desc = \"3 (Very Urgent, Emergency)\"\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DATA_CODING_ALPHABET = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"data_coding_alphabet\",\n _type = Alphabet,\n optional = True,\n default_desc = self.DATA_CODING_ALPHABET\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DATA_CODING_MESSAGE_CLASS = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"data_coding_alphabet\",\n _type = MessageClass,\n optional = True,\n default_desc = self.DATA_CODING_MESSAGE_CLASS\n )\n except SmppAttributeError as e:\n print(e)\n\n print(\"SMPP Initialized successfully\")\n return True\n\n def destroy(self, configurationAttributes):\n print(\"SMPP Destroy\")\n print(\"SMPP Destroyed successfully\")\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n\n print(\"SMPP form_response_passcode: {}\".format(str(form_passcode)))\n\n if step == 1:\n print(\"SMPP Step 1 Password Authentication\")\n credentials = self.identity.getCredentials()\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print(\"SMPP Error retrieving user {} from LDAP\".format(user_name))\n return False\n\n mobile_number = None\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if not mobile_number:\n mobile_number = foundUser.getAttribute(\"mobile\")\n if not mobile_number:\n mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if not mobile_number:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print(\"SMPP Error finding mobile number for user '{}'\".format(user_name))\n return False\n except Exception as e:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print(\"SMPP Error finding mobile number for {}: {}\".format(user_name, e))\n return False\n\n # Generate Random six digit code\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n\n self.identity.setWorkingParameter(\"mobile_number\", mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\", mobile_number)\n if not self.sendMessage(mobile_number, str(code)):\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n return False\n\n return True\n elif step == 2:\n # Retrieve the session attribute\n print(\"SMPP Step 2 SMS/OTP Authentication\")\n code = session_attributes.get(\"code\")\n print(\"SMPP Code: {}\".format(str(code)))\n\n if code is None:\n print(\"SMPP Failed to find previously sent code\")\n return False\n\n if form_passcode is None:\n print(\"SMPP Passcode is empty\")\n return False\n\n if len(form_passcode) != 6:\n print(\"SMPP Passcode from response is not 6 digits: {}\".format(form_passcode))\n return False\n\n if form_passcode == code:\n print(\"SMPP SUCCESS! User entered the same code!\")\n return True\n\n print(\"SMPP failed, user entered the wrong code! {} != {}\".format(form_passcode, code))\n facesMessages.add(facesMessage.SEVERITY_ERROR, \"Incorrect SMS code, please try again.\")\n return False\n\n print(\"SMPP ERROR: step param not found or != (1|2)\")\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print(\"SMPP Prepare for Step 1\")\n return True\n elif step == 2:\n print(\"SMPP Prepare for Step 2\")\n return True\n\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def sendMessage(self, number, code):\n status = False\n session = SMPPSession()\n session.setTransactionTimer(10000)\n\n # We only handle international destination number reformatting.\n # All others may vary by configuration decisions taken on SMPP\n # server side which we have no clue about.\n if self.DST_ADDR_TON == TypeOfNumber.INTERNATIONAL and number.startswith(\"+\"):\n number = number[1:]\n\n try:\n print(\"SMPP Connecting\")\n reference_id = session.connectAndBind(\n self.SMPP_SERVER,\n self.SMPP_PORT,\n BindParameter(\n BindType.BIND_TX,\n self.SYSTEM_ID,\n self.PASSWORD,\n None,\n self.SRC_ADDR_TON,\n self.SRC_ADDR_NPI,\n None\n )\n )\n print(\"SMPP Connected to server with system id {}\".format(reference_id))\n\n try:\n message_id = session.submitShortMessage(\n \"CMT\",\n self.SRC_ADDR_TON,\n self.SRC_ADDR_NPI,\n self.SRC_ADDR,\n self.DST_ADDR_TON,\n self.DST_ADDR_NPI,\n number,\n ESMClass(),\n 0,\n self.PRIORITY_FLAG,\n self.TIME_FORMATTER.format(Date()),\n None,\n RegisteredDelivery(SMSCDeliveryReceipt.DEFAULT),\n 0,\n GeneralDataCoding(\n self.DATA_CODING_ALPHABET,\n self.DATA_CODING_MESSAGE_CLASS,\n False\n ),\n 0,\n code\n )\n print(\"SMPP Message '{}' sent to #{} with message id {}\".format(code, number, message_id))\n status = True\n except PDUException as e:\n print(\"SMPP Invalid PDU parameter: {}\".format(e))\n except ResponseTimeoutException as e:\n print(\"SMPP Response timeout: {}\".format(e))\n except InvalidResponseException as e:\n print(\"SMPP Receive invalid response: {}\".format(e))\n except NegativeResponseException as e:\n print(\"SMPP Receive negative response: {}\".format(e))\n except IOException as e:\n print(\"SMPP IO error occured: {}\".format(e))\n finally:\n session.unbindAndClose()\n except IOException as e:\n print(\"SMPP Failed connect and bind to host: {}\".format(e))\n\n return status\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "smpp", "modified": false, "configurationProperties": [ { "hide": false, "value1": "smpp_server", "description": "IP or FQDN of SMPP server" }, { "hide": false, "value1": "smpp_port", "description": "TCP port of the SMPP server" }, { "hide": false, "value1": "system_id", "description": "Use if SMPP server requires authentication" }, { "hide": false, "value1": "password", "description": "Use if SMPP server requires authentication" }, { "hide": false, "value1": "source_addr_ton", "description": "Type of number, eg ALPHANUMERIC, INTERNATIONAL" }, { "hide": false, "value1": "source_addr", "description": "From number/name" } ], "baseDn": "inum=09A0-93D7,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Cache Refresh script", "locationType": "ldap", "dn": "inum=13D3-E7AD,ou=scripts,o=jans", "inum": "13D3-E7AD", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.user import CacheRefreshType\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList\nfrom io.jans.oxtrust.model import JanssenCustomAttribute\nfrom io.jans.model.custom.script.model.bind import BindCredentials\n\nimport java\n\nclass CacheRefresh(CacheRefreshType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Cache refresh. Initialization\"\n print \"Cache refresh. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Cache refresh. Destroy\"\n print \"Cache refresh. Destroyed successfully\"\n return True\n\n # Check if this instance conform starting conditions \n # configurationAttributes is java.util.Map\n # return True/False\n def isStartProcess(self, configurationAttributes):\n print \"Cache refresh. Is start process method\"\n\n return False\n \n # Get bind credentials required to access source server \n # configId is the source server\n # configurationAttributes is java.util.Map\n # return None (use password from configuration) or io.jans.model.custom.script.model.bind.BindCredentials\n def getBindCredentials(self, configId, configurationAttributes):\n print \"Cache refresh. GetBindCredentials method\"\n# if configId == \"source\":\n# return BindCredentials(\"cn=Directory Manager\", \"password\")\n\n return None\n\n # Update user entry before persist it\n # user is io.jans.oxtrust.model.JanssenCustomPerson\n # configurationAttributes is java.util.Map\n def updateUser(self, user, configurationAttributes):\n print \"Cache refresh. UpdateUser method\"\n\n attributes = user.getCustomAttributes()\n\n # Add new attribute preferredLanguage\n attrPrefferedLanguage = JanssenCustomAttribute(\"preferredLanguage\", \"en-us\")\n attributes.add(attrPrefferedLanguage)\n\n # Add new attribute userPassword\n attrUserPassword = JanssenCustomAttribute(\"userPassword\", \"test\")\n attributes.add(attrUserPassword)\n\n # Update givenName attribute\n for attribute in attributes:\n attrName = attribute.getName()\n if ((\"givenname\" == StringHelper.toLowerCase(attrName)) and StringHelper.isNotEmpty(attribute.getValue())):\n attribute.setValue(StringHelper.removeMultipleSpaces(attribute.getValue()) + \" (updated)\")\n\n return True\n\n def getApiVersion(self):\n return 11\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "cache_refresh", "name": "cache_refresh", "modified": false, "baseDn": "inum=13D3-E7AD,ou=scripts,o=jans" }, { "internal": false, "level": 30, "programmingLanguage": "python", "description": "Cert authentication module", "locationType": "ldap", "dn": "inum=2124-0CF1,ou=scripts,o=jans", "inum": "2124-0CF1", "script": "#\n# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom jakarta.faces.context import FacesContext\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.as.common.service.common import EncryptionService\nfrom java.util import Arrays\nfrom io.jans.as.common.cert.fingerprint import FingerprintHelper\nfrom io.jans.as.common.cert.validation import GenericCertificateVerifier\nfrom io.jans.as.common.cert.validation import PathCertificateVerifier\nfrom io.jans.as.common.cert.validation import OCSPCertificateVerifier\nfrom io.jans.as.common.cert.validation import CRLCertificateVerifier\nfrom io.jans.as.common.cert.validation.model import ValidationStatus\nfrom io.jans.as.server.util import CertUtil\nfrom io.jans.as.model.util import CertUtils\nfrom io.jans.as.server.service.net import HttpService\nfrom org.apache.http.params import CoreConnectionPNames\n\nimport sys\nimport base64\nimport urllib\n\nimport java\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Cert. Initialization\"\n\n if not (configurationAttributes.containsKey(\"chain_cert_file_path\")):\n print \"Cert. Initialization. Property chain_cert_file_path is mandatory\"\n return False\n\n if not (configurationAttributes.containsKey(\"map_user_cert\")):\n print \"Cert. Initialization. Property map_user_cert is mandatory\"\n return False\n\n chain_cert_file_path = configurationAttributes.get(\"chain_cert_file_path\").getValue2()\n\n self.chain_certs = CertUtil.loadX509CertificateFromFile(chain_cert_file_path)\n if self.chain_certs == None:\n print \"Cert. Initialization. Failed to load chain certificates from '%s'\" % chain_cert_file_path\n return False\n\n print \"Cert. Initialization. Loaded '%d' chain certificates\" % self.chain_certs.size()\n \n crl_max_response_size = 5 * 1024 * 1024 # 10Mb\n if configurationAttributes.containsKey(\"crl_max_response_size\"):\n crl_max_response_size = StringHelper.toInteger(configurationAttributes.get(\"crl_max_response_size\").getValue2(), crl_max_response_size)\n print \"Cert. Initialization. CRL max response size is '%d'\" % crl_max_response_size\n\n # Define array to order methods correctly\n self.validator_types = [ 'generic', 'path', 'ocsp', 'crl']\n self.validators = { 'generic' : [GenericCertificateVerifier(), False],\n 'path' : [PathCertificateVerifier(False), False],\n 'ocsp' : [OCSPCertificateVerifier(), False],\n 'crl' : [CRLCertificateVerifier(crl_max_response_size), False] }\n\n for type in self.validator_types:\n validator_param_name = \"use_%s_validator\" % type\n if configurationAttributes.containsKey(validator_param_name):\n validator_status = StringHelper.toBoolean(configurationAttributes.get(validator_param_name).getValue2(), False)\n self.validators[type][1] = validator_status\n\n print \"Cert. Initialization. Validation method '%s' status: '%s'\" % (type, self.validators[type][1])\n\n self.map_user_cert = StringHelper.toBoolean(configurationAttributes.get(\"map_user_cert\").getValue2(), False)\n print \"Cert. Initialization. map_user_cert: '%s'\" % self.map_user_cert\n\n self.enabled_recaptcha = self.initRecaptcha(configurationAttributes)\n print \"Cert. Initialization. enabled_recaptcha: '%s'\" % self.enabled_recaptcha\n\n print \"Cert. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Cert. Destroy\"\n\n for type in self.validator_types:\n self.validators[type][0].destroy()\n\n print \"Cert. Destroyed successfully\"\n\n return True\n\n def getApiVersion(self):\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n print \"Cert. Authenticate for step 1\"\n login_button = ServerUtil.getFirstValue(requestParameters, \"loginForm:loginButton\")\n if StringHelper.isEmpty(login_button):\n print \"Cert. Authenticate for step 1. Form were submitted incorrectly\"\n return False\n if self.enabled_recaptcha:\n print \"Cert. Authenticate for step 1. Validating recaptcha response\"\n recaptcha_response = ServerUtil.getFirstValue(requestParameters, \"g-recaptcha-response\")\n\n recaptcha_result = self.validateRecaptcha(recaptcha_response)\n print \"Cert. Authenticate for step 1. recaptcha_result: '%s'\" % recaptcha_result\n \n return recaptcha_result\n\n return True\n elif step == 2:\n print \"Cert. Authenticate for step 2\"\n\n # Validate if user selected certificate\n cert_x509 = self.getSessionAttribute(\"cert_x509\")\n if cert_x509 == None:\n print \"Cert. Authenticate for step 2. User not selected any certs\"\n identity.setWorkingParameter(\"cert_selected\", False)\n \n # Return True to inform user how to reset workflow\n return True\n else:\n identity.setWorkingParameter(\"cert_selected\", True)\n x509Certificate = self.certFromString(cert_x509)\n\n subjectX500Principal = x509Certificate.getSubjectX500Principal()\n print \"Cert. Authenticate for step 2. User selected certificate with DN '%s'\" % subjectX500Principal\n \n # Validate certificates which user selected\n valid = self.validateCertificate(x509Certificate)\n if not valid:\n print \"Cert. Authenticate for step 2. Certificate DN '%s' is not valid\" % subjectX500Principal\n identity.setWorkingParameter(\"cert_valid\", False)\n \n # Return True to inform user how to reset workflow\n return True\n\n identity.setWorkingParameter(\"cert_valid\", True)\n \n # Calculate certificate fingerprint\n x509CertificateFingerprint = self.calculateCertificateFingerprint(x509Certificate)\n identity.setWorkingParameter(\"cert_x509_fingerprint\", x509CertificateFingerprint)\n print \"Cert. Authenticate for step 2. Fingerprint is '%s' of certificate with DN '%s'\" % (x509CertificateFingerprint, subjectX500Principal)\n \n # Attempt to find user by certificate fingerprint\n cert_user_external_uid = \"cert:%s\" % x509CertificateFingerprint\n print \"Cert. Authenticate for step 2. Attempting to find user by jansExtUid attribute value %s\" % cert_user_external_uid\n\n find_user_by_external_uid = userService.getUserByAttribute(\"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n print \"Cert. Authenticate for step 2. Failed to find user\"\n \n if self.map_user_cert:\n print \"Cert. Authenticate for step 2. Storing cert_user_external_uid for step 3\"\n identity.setWorkingParameter(\"cert_user_external_uid\", cert_user_external_uid)\n return True\n else:\n print \"Cert. Authenticate for step 2. Mapping cert to user account is not allowed\"\n identity.setWorkingParameter(\"cert_count_login_steps\", 2)\n return False\n\n foundUserName = find_user_by_external_uid.getUserId()\n print \"Cert. Authenticate for step 2. foundUserName: \" + foundUserName\n\n logged_in = False\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(foundUserName)\n \n print \"Cert. Authenticate for step 2. Setting count steps to 2\"\n identity.setWorkingParameter(\"cert_count_login_steps\", 2)\n\n return logged_in\n elif step == 3:\n print \"Cert. Authenticate for step 3\"\n\n cert_user_external_uid = self.getSessionAttribute(\"cert_user_external_uid\")\n if cert_user_external_uid == None:\n print \"Cert. Authenticate for step 3. cert_user_external_uid is empty\"\n return False\n\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return False\n\n # Double check just to make sure. We did checking in previous step\n # Check if there is user which has cert_user_external_uid\n # Avoid mapping user cert to more than one IDP account\n find_user_by_external_uid = userService.getUserByAttribute(\"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n # Add cert_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n print \"Cert. Authenticate for step 3. Failed to update current user\"\n return False\n\n return True\n \n return True\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n print \"Cert. Prepare for step %d\" % step\n identity = CdiUtil.bean(Identity)\n \n if step == 1:\n if self.enabled_recaptcha:\n identity.setWorkingParameter(\"recaptcha_site_key\", self.recaptcha_creds['site_key'])\n elif step == 2:\n # Store certificate in session\n facesContext = CdiUtil.bean(FacesContext)\n externalContext = facesContext.getExternalContext()\n request = externalContext.getRequest()\n\n # Try to get certificate from header X-ClientCert\n clientCertificate = externalContext.getRequestHeaderMap().get(\"X-ClientCert\")\n if clientCertificate != None:\n x509Certificate = self.certFromPemString(clientCertificate)\n identity.setWorkingParameter(\"cert_x509\", self.certToString(x509Certificate))\n print \"Cert. Prepare for step 2. Storing user certificate obtained from 'X-ClientCert' header\"\n return True\n\n # Try to get certificate from attribute jakarta.servlet.request.X509Certificate\n x509Certificates = request.getAttribute('jakarta.servlet.request.X509Certificate')\n if (x509Certificates != None) and (len(x509Certificates) > 0):\n identity.setWorkingParameter(\"cert_x509\", self.certToString(x509Certificates[0]))\n print \"Cert. Prepare for step 2. Storing user certificate obtained from 'jakarta.servlet.request.X509Certificate' attribute\"\n return True\n\n if step < 4:\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"cert_selected\", \"cert_valid\", \"cert_x509\", \"cert_x509_fingerprint\", \"cert_count_login_steps\", \"cert_user_external_uid\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n cert_count_login_steps = self.getSessionAttribute(\"cert_count_login_steps\")\n if cert_count_login_steps != None:\n return cert_count_login_steps\n else:\n return 3\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n return \"/auth/cert/login.xhtml\"\n if step == 2:\n return \"/auth/cert/cert-login.xhtml\"\n elif step == 3:\n cert_selected = self.getSessionAttribute(\"cert_selected\")\n if True != cert_selected:\n return \"/auth/cert/cert-not-selected.xhtml\"\n\n cert_valid = self.getSessionAttribute(\"cert_valid\")\n if True != cert_valid:\n return \"/auth/cert/cert-invalid.xhtml\"\n \n return \"/login.xhtml\"\n\n return \"\"\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def processBasicAuthentication(self, credentials):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if (find_user_by_uid == None):\n print \"Cert. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def getSessionAttribute(self, attribute_name):\n identity = CdiUtil.bean(Identity)\n\n # Try to get attribute value from Seam event context\n if identity.isSetWorkingParameter(attribute_name):\n return identity.getWorkingParameter(attribute_name)\n \n # Try to get attribute from persistent session\n session_id = identity.getSessionId()\n if session_id == None:\n return None\n\n session_attributes = session_id.getSessionAttributes()\n if session_attributes == None:\n return None\n\n if session_attributes.containsKey(attribute_name):\n return session_attributes.get(attribute_name)\n\n return None\n\n def calculateCertificateFingerprint(self, x509Certificate):\n print \"Cert. Calculate fingerprint for certificate DN '%s'\" % x509Certificate.getSubjectX500Principal()\n \n publicKey = x509Certificate.getPublicKey()\n \n # Use oxAuth implementation\n fingerprint = FingerprintHelper.getPublicKeySshFingerprint(publicKey)\n \n return fingerprint \n\n def validateCertificate(self, x509Certificate):\n subjectX500Principal = x509Certificate.getSubjectX500Principal()\n\n print \"Cert. Validating certificate with DN '%s'\" % subjectX500Principal\n \n validation_date = java.util.Date()\n\n for type in self.validator_types:\n if self.validators[type][1]:\n result = self.validators[type][0].validate(x509Certificate, self.chain_certs, validation_date)\n print \"Cert. Validate certificate: '%s'. Validation method '%s' result: '%s'\" % (subjectX500Principal, type, result)\n \n if (result.getValidity() != ValidationStatus.CertificateValidity.VALID):\n print \"Cert. Certificate: '%s' is invalid\" % subjectX500Principal\n return False\n \n return True\n\n def certToString(self, x509Certificate):\n if x509Certificate == None:\n return None\n return base64.b64encode(x509Certificate.getEncoded())\n\n def certFromString(self, x509CertificateEncoded):\n x509CertificateDecoded = base64.b64decode(x509CertificateEncoded)\n return CertUtils.x509CertificateFromBytes(x509CertificateDecoded)\n\n def certFromPemString(self, pemCertificate):\n x509CertificateEncoded = pemCertificate.replace(\"-----BEGIN CERTIFICATE-----\", \"\").replace(\"-----END CERTIFICATE-----\", \"\").strip()\n return self.certFromString(x509CertificateEncoded)\n\n def initRecaptcha(self, configurationAttributes):\n print \"Cert. Initialize recaptcha\"\n if not configurationAttributes.containsKey(\"credentials_file\"):\n return False\n\n cert_creds_file = configurationAttributes.get(\"credentials_file\").getValue2()\n\n # Load credentials from file\n f = open(cert_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n except:\n print \"Cert. Initialize recaptcha. Failed to load credentials from file: %s\" % cert_creds_file\n return False\n finally:\n f.close()\n \n try:\n recaptcha_creds = creds[\"recaptcha\"]\n except:\n print \"Cert. Initialize recaptcha. Invalid credentials file '%s' format:\" % cert_creds_file\n return False\n \n self.recaptcha_creds = None\n if recaptcha_creds[\"enabled\"]:\n print \"Cert. Initialize recaptcha. Recaptcha is enabled\"\n\n encryptionService = CdiUtil.bean(EncryptionService)\n\n site_key = recaptcha_creds[\"site_key\"]\n secret_key = recaptcha_creds[\"secret_key\"]\n\n try:\n site_key = encryptionService.decrypt(site_key)\n except:\n # Ignore exception. Value is not encrypted\n print \"Cert. Initialize recaptcha. Assuming that 'site_key' in not encrypted\"\n\n try:\n secret_key = encryptionService.decrypt(secret_key)\n except:\n # Ignore exception. Value is not encrypted\n print \"Cert. Initialize recaptcha. Assuming that 'secret_key' in not encrypted\"\n\n \n self.recaptcha_creds = { 'site_key' : site_key, \"secret_key\" : secret_key }\n print \"Cert. Initialize recaptcha. Recaptcha is configured correctly\"\n\n return True\n else:\n print \"Cert. Initialize recaptcha. Recaptcha is disabled\"\n\n return False\n\n def validateRecaptcha(self, recaptcha_response):\n print \"Cert. Validate recaptcha response\"\n\n facesContext = CdiUtil.bean(FacesContext)\n request = facesContext.getExternalContext().getRequest()\n\n remoteip = ServerUtil.getIpAddress(request)\n print \"Cert. Validate recaptcha response. remoteip: '%s'\" % remoteip\n\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n http_client_params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15 * 1000)\n \n recaptcha_validation_url = \"https://www.google.com/recaptcha/api/siteverify\"\n recaptcha_validation_request = urllib.urlencode({ \"secret\" : self.recaptcha_creds['secret_key'], \"response\" : recaptcha_response, \"remoteip\" : remoteip })\n recaptcha_validation_headers = { \"Content-type\" : \"application/x-www-form-urlencoded\", \"Accept\" : \"application/json\" }\n\n try:\n http_service_response = httpService.executePost(http_client, recaptcha_validation_url, None, recaptcha_validation_headers, recaptcha_validation_request)\n http_response = http_service_response.getHttpResponse()\n except:\n print \"Cert. Validate recaptcha response. Exception: \", sys.exc_info()[1]\n return False\n\n try:\n if not httpService.isResponseStastusCodeOk(http_response):\n print \"Cert. Validate recaptcha response. Get invalid response from validation server: \", str(http_response.getStatusLine().getStatusCode())\n httpService.consume(http_response)\n return False\n \n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes)\n httpService.consume(http_response)\n finally:\n http_service_response.closeConnection()\n\n if response_string == None:\n print \"Cert. Validate recaptcha response. Get empty response from validation server\"\n return False\n \n response = json.loads(response_string)\n \n return response[\"success\"]\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "cert", "modified": false, "configurationProperties": [ { "hide": false, "value2": "/etc/certs/chain_cert.pem", "value1": "chain_cert_file_path" }, { "hide": false, "value2": "/etc/certs/cert_creds.json", "value1": "credentials_file" }, { "hide": false, "value2": "true", "value1": "map_user_cert" }, { "hide": false, "value2": "true", "value1": "use_generic_validator" }, { "hide": false, "value2": "true", "value1": "use_path_validator" }, { "hide": false, "value2": "false", "value1": "use_ocsp_validator" }, { "hide": false, "value2": "false", "value1": "use_crl_validator" }, { "hide": false, "value2": "10485760", "value1": "crl_max_response_size" } ], "baseDn": "inum=2124-0CF1,ou=scripts,o=jans" }, { "internal": false, "level": 40, "programmingLanguage": "python", "description": "OTP Validation of passwords using Yubicloud authentication module", "locationType": "ldap", "dn": "inum=24FD-B96E,ou=scripts,o=jans", "inum": "24FD-B96E", "script": "# Janssen Project software is available under the Apache License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan, Arunmozhi\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper\n\nimport java\n\nimport urllib2\nimport urllib\nimport uuid\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Yubicloud. Initialization\"\n\n self.api_server = configurationAttributes.get(\"yubicloud_uri\").getValue2()\n self.api_key = configurationAttributes.get(\"yubicloud_api_key\").getValue2()\n self.client_id = configurationAttributes.get(\"yubicloud_id\").getValue2()\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Yubicloud. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Yubicloud. Authenticate for step 1\"\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n username = credentials.getUsername()\n otp = credentials.getPassword()\n\n # Validate otp length\n if len(otp) < 32 or len(otp) > 48:\n print \"Yubicloud. Invalid OTP length\"\n return False\n\n user_service = CdiUtil.bean(UserService)\n user = user_service.getUser(username)\n\n public_key = user.getAttribute('yubikeyId')\n\n # Match the user with the yubikey\n if public_key not in otp:\n print \"Yubicloud. Public Key not matching OTP\"\n return False\n\n data = \"\"\n try:\n nonce = str(uuid.uuid4()).replace(\"-\", \"\")\n params = urllib.urlencode({\"id\": self.client_id, \"otp\": otp, \"nonce\": nonce})\n url = \"https://\" + self.api_server + \"/wsapi/2.0/verify/?\" + params\n f = urllib2.urlopen(url)\n data = f.read()\n except Exception as e:\n print \"Yubicloud. Exception \", e\n\n if 'status=OK' in data:\n user_service.authenticate(username)\n print \"Yubicloud. Authentication Successful\"\n return True\n\n print \"Yubicloud. End of Step 1. Returning False.\"\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Yubicloud. Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "yubicloud", "modified": false, "configurationProperties": [ { "hide": false, "value2": "api.yubico.com", "value1": "yubicloud_uri" }, { "hide": false, "value1": "yubicloud_api_key" }, { "hide": false, "value1": "yubicloud_id" } ], "baseDn": "inum=24FD-B96E,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Update token sample script", "locationType": "ldap", "dn": "inum=2D3E.5A03,ou=scripts,o=jans", "inum": "2D3E.5A03", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2021, Gluu\n#\n# Author: Yuriy Movchan\n#\n#\n\nfrom io.jans.model.custom.script.type.token import UpdateTokenType\n\nclass UpdateToken(UpdateTokenType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Update token script. Initializing ...\"\n print \"Update token script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Update token script. Destroying ...\"\n print \"Update token script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - indicates that script applied changes\n # This method is called after adding headers and claims. Hence script can override them\n # Note :\n # jsonWebResponse - is io.jans.as.model.token.JsonWebResponse, you can use any method to manipulate JWT\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def modifyIdToken(self, jsonWebResponse, context):\n print \"Update token script. Modify idToken: %s\" % jsonWebResponse\n\n jsonWebResponse.getHeader().setClaim(\"custom_header_name\", \"custom_header_value\")\n jsonWebResponse.getClaims().setClaim(\"custom_claim_name\", \"custom_claim_value\")\n\n print \"Update token script. After modify idToken: %s\" % jsonWebResponse\n return True\n\n # Returns boolean, true - indicates that script applied changes. If false is returned token will not be created.\n # refreshToken is reference of io.jans.as.server.model.common.RefreshToken (note authorization grant can be taken as context.getGrant())\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def modifyRefreshToken(self, refreshToken, context):\n return True\n\n # Returns boolean, true - indicates that script applied changes. If false is returned token will not be created.\n # accessToken is reference of io.jans.as.server.model.common.AccessToken (note authorization grant can be taken as context.getGrant())\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def modifyAccessToken(self, accessToken, context):\n return True\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getRefreshTokenLifetimeInSeconds(self, context):\n return 0\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getIdTokenLifetimeInSeconds(self, context):\n return 0\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getAccessTokenLifetimeInSeconds(self, context):\n return 0\n", "enabled": false, "revision": 12, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "update_token", "name": "update_token_sample", "modified": false, "baseDn": "inum=2D3E.5A03,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Introspection Sample Script", "locationType": "ldap", "dn": "inum=2DAF-AA90,ou=scripts,o=jans", "inum": "2DAF-AA90", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2018, Janssen\n#\n# Author: Yuriy Zabrovarnyy\n#\n#\n\nfrom io.jans.model.custom.script.type.introspection import IntrospectionType\nfrom java.lang import String\n\nclass Introspection(IntrospectionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Introspection script. Initializing ...\"\n print \"Introspection script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Introspection script. Destroying ...\"\n print \"Introspection script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - apply introspection method, false - ignore it.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def modifyResponse(self, responseAsJsonObject, context):\n responseAsJsonObject.accumulate(\"key_from_script\", \"value_from_script\")\n return True\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "introspection", "name": "introspection_sample", "modified": false, "baseDn": "inum=2DAF-AA90,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Resource Owner Password Credentials Example", "locationType": "ldap", "dn": "inum=2DAF-AA91,ou=scripts,o=jans", "inum": "2DAF-AA91", "script": "from io.jans.model.custom.script.type.owner import ResourceOwnerPasswordCredentialsType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.service.cdi.util import CdiUtil\nfrom java.lang import String\n\nclass ResourceOwnerPasswordCredentials(ResourceOwnerPasswordCredentialsType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"ROPC script. Initializing ...\"\n\n self.usernameParamName = \"username\"\n self.passwordParamName = \"password\"\n\n print \"ROPC script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"ROPC script. Destroying ...\"\n print \"ROPC script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns True and set user into context when user authenticated succesfully\n # Returns False when user not authenticated or it's needed to cancel notmal flow\n # Note :\n # context is reference of io.jans.as.service.external.context.ExternalResourceOwnerPasswordCredentialsContext#ExternalResourceOwnerPasswordCredentialsContext (in https://github.com/JanssenFederation/oxauth project, )\n def authenticate(self, context):\n print \"ROPC script. Authenticate\"\n deviceIdParam = context.getHttpRequest().getParameterValues(\"device_id\")\n if deviceIdParam != None and (deviceIdParam.lenght > 0 ):\n result = deviceIdParam[0] == \"device_id_1\"\n if not result:\n return False\n\n # Set auntenticated user in context\n # context.setUser(user)\n return True\n\n # Do generic authentication in other cases\n authService = CdiUtil.bean(AuthenticationService)\n\n username = context.getHttpRequest().getParameter(self.usernameParamName)\n password = context.getHttpRequest().getParameter(self.passwordParamName)\n result = authService.authenticate(username, password)\n if not result:\n print \"ROPC script. Authenticate. Could not authenticate user '%s' \" % username\n return False\n\n context.setUser(authService.getAuthenticatedUser())\n\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "resource_owner_password_credentials", "name": "resource_owner_password_credentials_example", "modified": false, "baseDn": "inum=2DAF-AA91,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Introspection Custom Parameters Sample Script", "locationType": "ldap", "dn": "inum=2DAF-BA90,ou=scripts,o=jans", "inum": "2DAF-BA90", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2019, Janssen\n#\n# Author: Yuriy Mochan\n#\n#\n\nfrom io.jans.model.custom.script.type.introspection import IntrospectionType\nfrom io.jans.as.model.common import AuthorizationGrantList\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.service.cdi.util import CdiUtil\nfrom java.lang import String\n\nclass Introspection(IntrospectionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Introspection script. Initializing ...\"\n print \"Introspection script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Introspection script. Destroying ...\"\n print \"Introspection script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - apply introspection method, false - ignore it.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def modifyResponse(self, responseAsJsonObject, context):\n token = context.getHttpRequest().getParameter(\"token\")\n if token is None:\n print \"Introspection. There is no token in request\"\n return False\n\n authorizationGrantList = CdiUtil.bean(AuthorizationGrantList)\n authorizationGrant = authorizationGrantList.getAuthorizationGrantByAccessToken(token);\n if authorizationGrant is None:\n print \"Introspection. Failed to load authorization grant by token\"\n return False\n\n # Put user_id into response\n responseAsJsonObject.accumulate(\"user_id\", authorizationGrant.getUser().getUserId())\n\n # Put custom parameters into response\n sessionDn = authorizationGrant.getSessionDn();\n if sessionDn is None:\n # There is no session\n return True\n\n sessionIdService = CdiUtil.bean(SessionIdService)\n session = sessionIdService.getSessionById(sessionDn)\n if sessionDn is None:\n print \"Introspection. Failed to load session '%s'\" % sessionDn\n return False\n\n # Return session_id\n responseAsJsonObject.accumulate(\"session_id\", sessionDn)\n \n sessionAttributes = session.getSessionAttributes()\n if sessionAttributes is None:\n # There is no session attributes\n return True\n\n # Append custom claims\n if sessionAttributes.containsKey(\"custom1\"):\n responseAsJsonObject.accumulate(\"custom1\", sessionAttributes.get(\"custom1\"))\n if sessionAttributes.containsKey(\"custom2\"):\n responseAsJsonObject.accumulate(\"custom2\", sessionAttributes.get(\"custom2\"))\n\n return True\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "introspection", "name": "introspection_custom_params", "modified": false, "baseDn": "inum=2DAF-BA90,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Resource Owner Password Credentials Custom Parameters Example", "locationType": "ldap", "dn": "inum=2DAF-BA91,ou=scripts,o=jans", "inum": "2DAF-BA91", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2019, Janssen\n#\n# Author: Yuriy Mochan\n#\n#\n\nfrom io.jans.model.custom.script.type.owner import ResourceOwnerPasswordCredentialsType\nfrom io.jans.as.server.service import AuthenticationService, SessionIdService\nfrom io.jans.as.model.common import SessionIdState\nfrom io.jans.as.server.security import Identity\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.model.authorize import AuthorizeRequestParam\nfrom io.jans.as.model.config import Constants\nfrom io.jans.util import StringHelper\nfrom java.lang import String\nfrom java.util import Date, HashMap\n\nclass ResourceOwnerPasswordCredentials(ResourceOwnerPasswordCredentialsType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"ROPC script. Initializing ...\"\n print \"ROPC script. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"ROPC script. Destroying ...\"\n print \"ROPC script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns True and set user into context when user authenticated succesfully\n # Returns False when user not authenticated or it's needed to cancel notmal flow\n # Note :\n # context is reference of io.jans.as.service.external.context.ExternalResourceOwnerPasswordCredentialsContext#ExternalResourceOwnerPasswordCredentialsContext (in https://github.com/JanssenFederation/oxauth project, )\n def authenticate(self, context):\n print \"ROPC script. Authenticate\"\n\n # Do generic authentication\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n username = context.getHttpRequest().getParameter(\"username\")\n password = context.getHttpRequest().getParameter(\"password\")\n result = authenticationService.authenticate(username, password)\n if not result:\n print \"ROPC script. Authenticate. Could not authenticate user '%s' \" % username\n return False\n\n context.setUser(authenticationService.getAuthenticatedUser())\n print \"ROPC script. Authenticate. User '%s' authenticated successfully\" % username\n \n\n # Get cusom parameters from request\n customParam1Value = context.getHttpRequest().getParameter(\"custom1\")\n customParam2Value = context.getHttpRequest().getParameter(\"custom2\")\n\n customParameters = {}\n customParameters[\"custom1\"] = customParam1Value\n customParameters[\"custom2\"] = customParam2Value\n print \"ROPC script. Authenticate. User '%s'. Creating authenticated session with custom attributes: '%s'\" % (username, customParameters)\n\n session = self.createNewAuthenticatedSession(context, customParameters)\n \n # This is needed to allow store in token entry sessionId\n authenticationService.configureEventUser(session)\n\n print \"ROPC script. Authenticate. User '%s'. Created authenticated session: '%s'\" % (username, customParameters)\n\n return True\n\n def createNewAuthenticatedSession(self, context, customParameters={}):\n sessionIdService = CdiUtil.bean(SessionIdService)\n\n user = context.getUser()\n client = CdiUtil.bean(Identity).getSessionClient().getClient()\n\n # Add mandatory session parameters\n sessionAttributes = HashMap()\n sessionAttributes.put(Constants.AUTHENTICATED_USER, user.getUserId())\n sessionAttributes.put(AuthorizeRequestParam.CLIENT_ID, client.getClientId())\n sessionAttributes.put(AuthorizeRequestParam.PROMPT, \"\")\n\n # Add custom session parameters\n for key, value in customParameters.iteritems():\n if StringHelper.isNotEmpty(value):\n sessionAttributes.put(key, value)\n\n # Generate authenticated session\n sessionId = sessionIdService.generateAuthenticatedSessionId(context.getHttpRequest(), user.getDn(), sessionAttributes)\n\n print \"ROPC script. Generated session id. DN: '%s'\" % sessionId.getDn()\n\n return sessionId\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "resource_owner_password_credentials", "name": "resource_owner_password_credentials_custom_params_example", "modified": false, "baseDn": "inum=2DAF-BA91,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Frontchannel logout Sample", "locationType": "ldap", "dn": "inum=2DAF-CA90,ou=scripts,o=jans", "inum": "2DAF-CA90", "script": "# Copyright (c) 2020, Janssen\n#\n# Author: Yuriy Zabrovarnyy\n#\n\nfrom io.jans.model.custom.script.type.logout import EndSessionType\nfrom java.lang import String\n\nclass EndSession(EndSessionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"EndSession script. Initializing ...\"\n print \"EndSession script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"EndSession script. Destroying ...\"\n print \"EndSession script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns string, it must be valid HTML (with iframes according to spec http://openid.net/specs/openid-connect-frontchannel-1_0.html)\n # This method is called on `/end_session` after actual session is killed and oxauth construct HTML to return to RP.\n # Note :\n # context is reference of io.jans.as.service.external.context.EndSessionContext (in https://github.com/JanssenFederation/oxauth project, )\n def getFrontchannelHtml(self, context):\n return \"\"", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "end_session", "name": "frontchannel_logout_sample", "modified": false, "baseDn": "inum=2DAF-CA90,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample UMA RPT Policy", "locationType": "ldap", "dn": "inum=2DAF-F995,ou=scripts,o=jans", "inum": "2DAF-F995", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2017, Janssen\n#\n# Author: Yuriy Zabrovarnyy\n#\n# Call sequence\n# 1. First is call constructor of the Script __init__\n# 2. Next init() method\n# 3. Next getRequiredClaims() - method returns required claims, so UMA engine checks whether\n# in request RP provided all claims that are required. Pay attention that there can be\n# multiple scripts bound to the scopes, means that UMA engine will build set of required claims\n# from all scripts. If not all claims are provided need_info error is sent to RP.\n# During need_info construction getClaimsGatheringScriptName() method is called\n# 4. authorize() method is called if all required claims are provided.\n# 5. destroy()\n\nfrom io.jans.model.custom.script.type.uma import UmaRptPolicyType\nfrom io.jans.model.uma import ClaimDefinitionBuilder\nfrom java.lang import String\n\nclass UmaRptPolicy(UmaRptPolicyType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"RPT Policy. Initializing ...\"\n print \"RPT Policy. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"RPT Policy. Destroying ...\"\n print \"RPT Policy. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns required claims definitions.\n # This method must provide definition of all claims that is used in 'authorize' method.\n # Note : name in both places must match.\n # %1$s - placeholder for issuer. It uses standard Java Formatter, docs : https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html\n def getRequiredClaims(self, context): # context is reference of io.jans.as.uma.authorization.UmaAuthorizationContext\n json = \"\"\"[\n {\n \"issuer\" : [ \"%1$s\" ],\n \"name\" : \"country\",\n \"claim_token_format\" : [ \"http://openid.net/specs/openid-connect-core-1_0.html#IDToken\" ],\n \"claim_type\" : \"string\",\n \"friendly_name\" : \"country\"\n },\n {\n \"issuer\" : [ \"%1$s\" ],\n \"name\" : \"city\",\n \"claim_token_format\" : [ \"http://openid.net/specs/openid-connect-core-1_0.html#IDToken\" ],\n \"claim_type\" : \"string\",\n \"friendly_name\" : \"city\"\n }\n ]\"\"\"\n context.addRedirectUserParam(\"customUserParam1\", \"value1\") # pass some custom parameters to need_info uri. It can be removed if you don't need custom parameters.\n return ClaimDefinitionBuilder.build(String.format(json, context.getIssuer()))\n\n # Main authorization method. Must return True or False.\n def authorize(self, context): # context is reference of io.jans.as.uma.authorization.UmaAuthorizationContext\n print \"RPT Policy. Authorizing ...\"\n\n if context.getClaim(\"country\") == 'US' and context.getClaim(\"city\") == 'NY':\n print \"Authorized successfully!\"\n return True\n\n return False\n\n # Returns name of the Claims-Gathering script which will be invoked if need_info error is returned.\n def getClaimsGatheringScriptName(self, context): # context is reference of io.jans.as.uma.authorization.UmaAuthorizationContext\n context.addRedirectUserParam(\"customUserParam2\", \"value2\") # pass some custom parameters to need_info uri. It can be removed if you don't need custom parameters.\n return \"sampleClaimsGathering\"", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "uma_rpt_policy", "name": "uma_rpt_policy", "modified": false, "configurationProperties": [ { "hide": false, "value1": "allowed_clients" } ], "baseDn": "inum=2DAF-F995,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Sample UMA Claims Gathering", "locationType": "ldap", "dn": "inum=2DAF-F996,ou=scripts,o=jans", "inum": "2DAF-F996", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2017, Janssen\n#\n# Author: Yuriy Zabrovarnyy\n#\n\nfrom io.jans.model.custom.script.type.uma import UmaClaimsGatheringType\n\nclass UmaClaimsGathering(UmaClaimsGatheringType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Claims-Gathering. Initializing ...\"\n print \"Claims-Gathering. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Claims-Gathering. Destroying ...\"\n print \"Claims-Gathering. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n\n # Main gather method. Must return True (if gathering performed successfully) or False (if fail).\n # Method must set claim into context (via context.putClaim('name', value)) in order to persist it (otherwise it will be lost).\n # All user entered values can be access via Map context.getPageClaims()\n def gather(self, step, context): # context is reference of io.jans.as.uma.authorization.UmaGatherContext\n print \"Claims-Gathering. Gathering ...\"\n\n if step == 1:\n if (context.getPageClaims().containsKey(\"country\")):\n country = context.getPageClaims().get(\"country\")\n print \"Country: \" + country\n\n context.putClaim(\"country\", country)\n return True\n\n print \"Claims-Gathering. 'country' is not provided on step 1.\"\n return False\n\n elif step == 2:\n if (context.getPageClaims().containsKey(\"city\")):\n city = context.getPageClaims().get(\"city\")\n print \"City: \" + city\n\n context.putClaim(\"city\", city)\n print \"Claims-Gathering. 'city' is not provided on step 2.\"\n return True\n\n return False\n\n def getNextStep(self, step, context):\n return -1\n\n def prepareForStep(self, step, context):\n if step == 10 and not context.isAuthenticated():\n # user is not authenticated, so we are redirecting user to authorization endpoint\n # client_id is specified via configuration attribute.\n # Make sure that given client has redirect_uri to Claims-Gathering Endpoint with parameter authentication=true\n # Sample https://sample.com/restv1/uma/gather_claims?authentication=true\n # If redirect to external url is performated, make sure that viewAction has onPostback=\"true\" (otherwise redirect will not work)\n # After user is authenticated then within the script it's possible to get user attributes as\n # context.getUser(\"uid\", \"sn\")\n # If user is authenticated to current AS (to the same server, not external one) then it's possible to\n # access Connect session attributes directly (no need to obtain id_token after redirect with 'code').\n # To fetch attributes please use getConnectSessionAttributes() method.\n\n print \"User is not authenticated. Redirect for authentication ...\"\n clientId = context.getConfigurationAttributes().get(\"client_id\").getValue2()\n redirectUri = context.getClaimsGatheringEndpoint() + \"?authentication=true\" # without authentication=true parameter it will not work\n authorizationUrl = context.getAuthorizationEndpoint() + \"?client_id=\" + clientId + \"&redirect_uri=\" + redirectUri + \"&scope=openid&response_type=code\"\n context.redirectToExternalUrl(authorizationUrl) # redirect to external url\n return False\n if step == 10 and context.isAuthenticated(): # example how to get session attribute if user is authenticated to same AS\n arc = context.getConnectSessionAttributes().get(\"acr\")\n\n return True\n\n def getStepsCount(self, context):\n return 2\n\n def getPageForStep(self, step, context):\n if step == 1:\n return \"/uma2/sample/country.xhtml\"\n elif step == 2:\n return \"/uma2/sample/city.xhtml\"\n return \"\"", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "uma_claims_gathering", "name": "sampleClaimsGathering", "modified": false, "baseDn": "inum=2DAF-F996,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Client authorization UMA RPT Policy for SCIM and Passport", "locationType": "ldap", "dn": "inum=2DAF-F9A5,ou=scripts,o=jans", "inum": "2DAF-F9A5", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2017, Janssen\n#\n# Author: Jose Gonzalez\n# Adapted from previous 3.0.1 script of Yuriy Movchan\n#\n# oxConfigurationProperty required:\n# allowed_clients - comma separated list of dns of allowed clients\n# (i.e. the SCIM RP client)\n\nfrom io.jans.as.model.uma import UmaConstants\nfrom io.jans.model.uma import ClaimDefinitionBuilder\nfrom io.jans.model.custom.script.type.uma import UmaRptPolicyType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList, HashSet\nfrom java.lang import String\n\nclass UmaRptPolicy(UmaRptPolicyType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"RPT Policy. Initializing ...\"\n self.clientsSet = self.prepareClientsSet(configurationAttributes)\n print \"RPT Policy. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"RPT Policy. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def getRequiredClaims(self, context):\n json = \"\"\"[\n ]\"\"\"\n return ClaimDefinitionBuilder.build(json)\n\n def authorize(self, context): # context is reference of io.jans.as.uma.authorization.UmaAuthorizationContext\n print \"RPT Policy. Authorizing ...\"\n\n client_id=context.getClient().getClientId()\n print \"UmaRptPolicy. client_id = %s\" % client_id\n\n if (StringHelper.isEmpty(client_id)):\n return False\n \n if (self.clientsSet.contains(client_id)):\n print \"UmaRptPolicy. Authorizing client\"\n return True\n else:\n print \"UmaRptPolicy. Client isn't authorized\"\n return False\n\n def getClaimsGatheringScriptName(self, context):\n return UmaConstants.NO_SCRIPT\n\n def prepareClientsSet(self, configurationAttributes):\n clientsSet = HashSet()\n if (not configurationAttributes.containsKey(\"allowed_clients\")):\n return clientsSet\n\n allowedClientsList = configurationAttributes.get(\"allowed_clients\").getValue2()\n if (StringHelper.isEmpty(allowedClientsList)):\n print \"UmaRptPolicy. The property allowed_clients is empty\"\n return clientsSet \n\n allowedClientsListArray = StringHelper.split(allowedClientsList, \",\")\n if (ArrayHelper.isEmpty(allowedClientsListArray)):\n print \"UmaRptPolicy. No clients specified in allowed_clients property\"\n return clientsSet\n \n # Convert to HashSet to quick search\n i = 0\n count = len(allowedClientsListArray)\n while (i < count):\n client = allowedClientsListArray[i]\n clientsSet.add(client)\n i = i + 1\n\n return clientsSet\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "uma_rpt_policy", "name": "scim_access_policy", "modified": false, "configurationProperties": [ { "hide": false, "value1": "allowed_clients" } ], "baseDn": "inum=2DAF-F9A5,ou=scripts,o=jans" }, { "internal": false, "level": 20, "programmingLanguage": "python", "description": "Basic (with user locking) authentication module", "locationType": "ldap", "dn": "inum=4BBE-C6A8,ou=scripts,o=jans", "inum": "4BBE-C6A8", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n# Author: Gasmyr Mougang\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.service import CacheService\nfrom io.jans.util import StringHelper\nfrom io.jans.orm.exception import AuthenticationException\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\nfrom java.time import LocalDateTime, Duration\nfrom java.time.format import DateTimeFormatter\n\nimport java\nimport datetime\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Basic (lock account). Initialization\"\n\n self.invalidLoginCountAttribute = \"jansCountInvalidLogin\"\n if configurationAttributes.containsKey(\"invalid_login_count_attribute\"):\n self.invalidLoginCountAttribute = configurationAttributes.get(\"invalid_login_count_attribute\").getValue2()\n else:\n print \"Basic (lock account). Initialization. Using default attribute\"\n\n self.maximumInvalidLoginAttemps = 3\n if configurationAttributes.containsKey(\"maximum_invalid_login_attemps\"):\n self.maximumInvalidLoginAttemps = StringHelper.toInteger(configurationAttributes.get(\"maximum_invalid_login_attemps\").getValue2())\n else:\n print \"Basic (lock account). Initialization. Using default number attempts\"\n\n self.lockExpirationTime = 180\n if configurationAttributes.containsKey(\"lock_expiration_time\"):\n self.lockExpirationTime = StringHelper.toInteger(configurationAttributes.get(\"lock_expiration_time\").getValue2())\n else:\n print \"Basic (lock account). Initialization. Using default lock expiration time\"\n\n\n print \"Basic (lock account). Initialized successfully. invalid_login_count_attribute: '%s', maximum_invalid_login_attemps: '%s', lock_expiration_time: '%s'\" % (self.invalidLoginCountAttribute, self.maximumInvalidLoginAttemps, self.lockExpirationTime)\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Basic (lock account). Destroy\"\n print \"Basic (lock account). Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n print \"Basic (lock account). Authenticate for step 1\"\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n cacheService = CdiUtil.bean(CacheService)\n userService = CdiUtil.bean(UserService)\n\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n try:\n logged_in = authenticationService.authenticate(user_name, user_password)\n except AuthenticationException:\n print \"Basic (lock account). Authenticate. Failed to authenticate user '%s'\" % user_name\n\n if logged_in:\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(0))\n else:\n countInvalidLoginArributeValue = self.getUserAttributeValue(user_name, self.invalidLoginCountAttribute)\n userSatus = self.getUserAttributeValue(user_name, \"jansStatus\")\n print \"Current user '%s' status is '%s'\" % ( user_name, userSatus )\n\n countInvalidLogin = StringHelper.toInteger(countInvalidLoginArributeValue, 0)\n\n if countInvalidLogin < self.maximumInvalidLoginAttemps:\n countInvalidLogin = countInvalidLogin + 1\n remainingAttempts = self.maximumInvalidLoginAttemps - countInvalidLogin\n\n print \"Remaining login count attempts '%s' for user '%s'\" % ( remainingAttempts, user_name )\n\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(countInvalidLogin))\n if remainingAttempts > 0 and userSatus == \"active\":\n facesMessages.add(FacesMessage.SEVERITY_INFO, StringHelper.toString(remainingAttempts)+\" more attempt(s) before account is LOCKED!\")\n\n if (countInvalidLogin >= self.maximumInvalidLoginAttemps) and ((userSatus == None) or (userSatus == \"active\")):\n print \"Basic (lock account). Locking '%s' for '%s' seconds\" % ( user_name, self.lockExpirationTime)\n self.lockUser(user_name)\n return False\n\n if (countInvalidLogin >= self.maximumInvalidLoginAttemps) and userSatus == \"inactive\":\n print \"Basic (lock account). User '%s' is locked. Checking if we can unlock him\" % user_name\n \n unlock_and_authenticate = False\n\n object_from_store = cacheService.get(None, \"lock_user_\" + user_name)\n if object_from_store == None:\n # Object in cache was expired. We need to unlock user\n print \"Basic (lock account). User locking details for user '%s' not exists\" % user_name\n unlock_and_authenticate = True\n else:\n # Analyze object from cache\n user_lock_details = json.loads(object_from_store)\n\n user_lock_details_locked = user_lock_details['locked']\n user_lock_details_created = user_lock_details['created']\n user_lock_details_created_date = LocalDateTime.parse(user_lock_details_created, DateTimeFormatter.ISO_LOCAL_DATE_TIME)\n user_lock_details_created_diff = Duration.between(user_lock_details_created_date, LocalDateTime.now()).getSeconds()\n print \"Basic (lock account). Get user '%s' locking details. locked: '%s', Created: '%s', Difference in seconds: '%s'\" % ( user_name, user_lock_details_locked, user_lock_details_created, user_lock_details_created_diff )\n\n if user_lock_details_locked and user_lock_details_created_diff >= self.lockExpirationTime:\n print \"Basic (lock account). Unlocking user '%s' after lock expiration\" % user_name\n unlock_and_authenticate = True\n\n if unlock_and_authenticate:\n self.unLockUser(user_name)\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(0))\n logged_in = authenticationService.authenticate(user_name, user_password)\n if not logged_in:\n # Update number of attempts \n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(1))\n if self.maximumInvalidLoginAttemps == 1:\n # Lock user if maximum count login attempts is 1 \n self.lockUser(user_name)\n return False\n\n\n return logged_in\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"Basic (lock account). Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def getUserAttributeValue(self, user_name, attribute_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n\n find_user_by_uid = userService.getUser(user_name, attribute_name)\n if find_user_by_uid == None:\n return None\n\n custom_attribute_value = userService.getCustomAttribute(find_user_by_uid, attribute_name)\n if custom_attribute_value == None:\n return None\n \n attribute_value = custom_attribute_value.getValue()\n\n print \"Basic (lock account). Get user attribute. User's '%s' attribute '%s' value is '%s'\" % (user_name, attribute_name, attribute_value)\n\n return attribute_value\n\n def setUserAttributeValue(self, user_name, attribute_name, attribute_value):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n\n find_user_by_uid = userService.getUser(user_name)\n if find_user_by_uid == None:\n return None\n \n userService.setCustomAttribute(find_user_by_uid, attribute_name, attribute_value)\n updated_user = userService.updateUser(find_user_by_uid)\n\n print \"Basic (lock account). Set user attribute. User's '%s' attribute '%s' value is '%s'\" % (user_name, attribute_name, attribute_value)\n\n return updated_user\n\n def lockUser(self, user_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n cacheService= CdiUtil.bean(CacheService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n find_user_by_uid = userService.getUser(user_name)\n if (find_user_by_uid == None):\n return None\n\n status_attribute_value = userService.getCustomAttribute(find_user_by_uid, \"gluuStatus\")\n if status_attribute_value != None:\n user_status = status_attribute_value.getValue()\n if StringHelper.equals(user_status, \"inactive\"):\n print \"Basic (lock account). Lock user. User '%s' locked already\" % user_name\n return\n \n userService.setCustomAttribute(find_user_by_uid, \"gluuStatus\", \"inactive\")\n updated_user = userService.updateUser(find_user_by_uid)\n\n object_to_store = json.dumps({'locked': True, 'created': LocalDateTime.now().toString()}, separators=(',',':'))\n\n cacheService.put(StringHelper.toString(self.lockExpirationTime), \"lock_user_\"+user_name, object_to_store);\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Your account is locked. Please try again after \" + StringHelper.toString(self.lockExpirationTime) + \" secs\")\n\n print \"Basic (lock account). Lock user. User '%s' locked\" % user_name\n\n def unLockUser(self, user_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n cacheService= CdiUtil.bean(CacheService)\n\n find_user_by_uid = userService.getUser(user_name)\n if (find_user_by_uid == None):\n return None\n\n object_to_store = json.dumps({'locked': False, 'created': LocalDateTime.now().toString()}, separators=(',',':'))\n cacheService.put(StringHelper.toString(self.lockExpirationTime), \"lock_user_\"+user_name, object_to_store);\n\n userService.setCustomAttribute(find_user_by_uid, \"jansStatus\", \"active\")\n userService.setCustomAttribute(find_user_by_uid, self.invalidLoginCountAttribute, None)\n updated_user = userService.updateUser(find_user_by_uid)\n\n\n print \"Basic (lock account). Lock user. User '%s' unlocked\" % user_name\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "basic_lock", "modified": false, "configurationProperties": [ { "hide": false, "value2": "oxCountInvalidLogin", "value1": "invalid_login_count_attribute" }, { "hide": false, "value2": "3", "value1": "maximum_invalid_login_attemps" }, { "hide": false, "value2": "120", "value1": "lock_expiration_time" } ], "baseDn": "inum=4BBE-C6A8,ou=scripts,o=jans" }, { "internal": false, "level": 40, "programmingLanguage": "python", "description": "HOTP/TOPT authentication module", "locationType": "ldap", "dn": "inum=5018-D4BF,ou=scripts,o=jans", "inum": "5018-D4BF", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\n# Requires the following custom properties and values:\n# otp_type: totp/hotp\n# issuer: Janssen Inc\n# otp_conf_file: /etc/certs/otp_configuration.json\n#\n# These are non mandatory custom properties and values:\n# label: Janssen OTP\n# qr_options: { width: 400, height: 400 }\n# registration_uri: https://ce-dev.jans.org/identity/register\n\nimport jarray\nimport json\nimport sys\nfrom com.google.common.io import BaseEncoding\nfrom com.lochbridge.oath.otp import HOTP\nfrom com.lochbridge.oath.otp import HOTPValidator\nfrom com.lochbridge.oath.otp import HmacShaAlgorithm\nfrom com.lochbridge.oath.otp import TOTP\nfrom com.lochbridge.oath.otp.keyprovisioning import OTPAuthURIBuilder\nfrom com.lochbridge.oath.otp.keyprovisioning import OTPKey\nfrom com.lochbridge.oath.otp.keyprovisioning.OTPKey import OTPType\nfrom java.security import SecureRandom\nfrom java.util import Arrays\nfrom java.util.concurrent import TimeUnit\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"OTP. Initialization\"\n\n if not configurationAttributes.containsKey(\"otp_type\"):\n print \"OTP. Initialization. Property otp_type is mandatory\"\n return False\n self.otpType = configurationAttributes.get(\"otp_type\").getValue2()\n\n if not self.otpType in [\"hotp\", \"totp\"]:\n print \"OTP. Initialization. Property value otp_type is invalid\"\n return False\n\n if not configurationAttributes.containsKey(\"issuer\"):\n print \"OTP. Initialization. Property issuer is mandatory\"\n return False\n self.otpIssuer = configurationAttributes.get(\"issuer\").getValue2()\n\n self.customLabel = None\n if configurationAttributes.containsKey(\"label\"):\n self.customLabel = configurationAttributes.get(\"label\").getValue2()\n\n self.customQrOptions = {}\n if configurationAttributes.containsKey(\"qr_options\"):\n self.customQrOptions = configurationAttributes.get(\"qr_options\").getValue2()\n\n self.registrationUri = None\n if configurationAttributes.containsKey(\"registration_uri\"):\n self.registrationUri = configurationAttributes.get(\"registration_uri\").getValue2()\n\n validOtpConfiguration = self.loadOtpConfiguration(configurationAttributes)\n if not validOtpConfiguration:\n return False\n\n print \"OTP. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"OTP. Destroy\"\n print \"OTP. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n print \"getNextStep Invoked\"\n # If user not pass current step change step to previous\n identity = CdiUtil.bean(Identity)\n retry_current_step = identity.getWorkingParameter(\"retry_current_step\")\n if retry_current_step:\n print \"OTP. Get next step. Retrying current step %s\" % step\n # Remove old QR code\n #identity.setWorkingParameter(\"super_gluu_request\", \"timeout\")\n resultStep = step\n return resultStep\n return -1\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n self.setRequestScopedParameters(identity)\n\n if step == 1:\n print \"OTP. Authenticate for step 1\"\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n otp_auth_method = \"authenticate\"\n # Uncomment this block if you need to allow user second OTP registration\n #enrollment_mode = ServerUtil.getFirstValue(requestParameters, \"loginForm:registerButton\")\n #if StringHelper.isNotEmpty(enrollment_mode):\n # otp_auth_method = \"enroll\"\n\n if otp_auth_method == \"authenticate\":\n user_enrollments = self.findEnrollments(authenticated_user.getUserId())\n if len(user_enrollments) == 0:\n otp_auth_method = \"enroll\"\n print \"OTP. Authenticate for step 1. There is no OTP enrollment for user '%s'. Changing otp_auth_method to '%s'\" % (authenticated_user.getUserId(), otp_auth_method)\n\n if otp_auth_method == \"enroll\":\n print \"OTP. Authenticate for step 1. Setting count steps: '%s'\" % 3\n identity.setWorkingParameter(\"otp_count_login_steps\", 3)\n\n print \"OTP. Authenticate for step 1. otp_auth_method: '%s'\" % otp_auth_method\n identity.setWorkingParameter(\"otp_auth_method\", otp_auth_method)\n\n return True\n elif step == 2:\n print \"OTP. Authenticate for step 2\"\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Authenticate for step 2. Failed to determine user name\"\n return False\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n # Restore state from session\n identity.setWorkingParameter(\"retry_current_step\", False)\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if otp_auth_method == 'enroll':\n auth_result = ServerUtil.getFirstValue(requestParameters, \"auth_result\")\n if not StringHelper.isEmpty(auth_result):\n # defect fix #1225 - Retry the step, show QR code again\n if auth_result == 'timeout':\n\t\t\t\t\t\tprint \"OTP. QR-code timeout. Authenticate for step %s. Reinitializing current step\" % step\n\t\t\t\t\t\tidentity.setWorkingParameter(\"retry_current_step\", True)\n\t\t\t\t\t\treturn True\n\n print \"OTP. Authenticate for step 2. User not enrolled OTP\"\n return False\n\n print \"OTP. Authenticate for step 2. Skipping this step during enrollment\"\n return True\n\n otp_auth_result = self.processOtpAuthentication(requestParameters, user.getUserId(), identity, otp_auth_method)\n print \"OTP. Authenticate for step 2. OTP authentication result: '%s'\" % otp_auth_result\n\n return otp_auth_result\n elif step == 3:\n print \"OTP. Authenticate for step 3\"\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Authenticate for step 2. Failed to determine user name\"\n return False\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n # Restore state from session\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if otp_auth_method != 'enroll':\n return False\n\n otp_auth_result = self.processOtpAuthentication(requestParameters, user.getUserId(), identity, otp_auth_method)\n print \"OTP. Authenticate for step 3. OTP authentication result: '%s'\" % otp_auth_result\n\n return otp_auth_result\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n self.setRequestScopedParameters(identity)\n\n if step == 1:\n print \"OTP. Prepare for step 1\"\n\n return True\n elif step == 2:\n print \"OTP. Prepare for step 2\"\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Prepare for step 2. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Prepare for step 2. Failed to load user enty\"\n return False\n\n if self.otpType == \"hotp\":\n otp_secret_key = self.generateSecretHotpKey()\n otp_enrollment_request = self.generateHotpSecretKeyUri(otp_secret_key, self.otpIssuer, user.getAttribute(\"displayName\"))\n elif self.otpType == \"totp\":\n otp_secret_key = self.generateSecretTotpKey()\n otp_enrollment_request = self.generateTotpSecretKeyUri(otp_secret_key, self.otpIssuer, user.getAttribute(\"displayName\"))\n else:\n print \"OTP. Prepare for step 2. Unknown OTP type: '%s'\" % self.otpType\n return False\n\n print \"OTP. Prepare for step 2. Prepared enrollment request for user: '%s'\" % user.getUserId()\n identity.setWorkingParameter(\"otp_secret_key\", self.toBase64Url(otp_secret_key))\n identity.setWorkingParameter(\"otp_enrollment_request\", otp_enrollment_request)\n\n return True\n elif step == 3:\n print \"OTP. Prepare for step 3\"\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Prepare for step 3. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n return True\n\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"otp_auth_method\", \"otp_count_login_steps\", \"otp_secret_key\", \"otp_enrollment_request\",\"retry_current_step\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n identity = CdiUtil.bean(Identity)\n\n if identity.isSetWorkingParameter(\"otp_count_login_steps\"):\n return StringHelper.toInteger(\"%s\" % identity.getWorkingParameter(\"otp_count_login_steps\"))\n else:\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n identity = CdiUtil.bean(Identity)\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Gep page for step 2. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n return \"/auth/otp/enroll.xhtml\"\n else:\n return \"/auth/otp/otplogin.xhtml\"\n elif step == 3:\n return \"/auth/otp/otplogin.xhtml\"\n\n return \"\"\n\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def setRequestScopedParameters(self, identity):\n if self.registrationUri != None:\n identity.setWorkingParameter(\"external_registration_uri\", self.registrationUri)\n\n if self.customLabel != None:\n identity.setWorkingParameter(\"qr_label\", self.customLabel)\n\n identity.setWorkingParameter(\"qr_options\", self.customQrOptions)\n\n def loadOtpConfiguration(self, configurationAttributes):\n print \"OTP. Load OTP configuration\"\n if not configurationAttributes.containsKey(\"otp_conf_file\"):\n return False\n\n otp_conf_file = configurationAttributes.get(\"otp_conf_file\").getValue2()\n\n # Load configuration from file\n f = open(otp_conf_file, 'r')\n try:\n otpConfiguration = json.loads(f.read())\n except:\n print \"OTP. Load OTP configuration. Failed to load configuration from file:\", otp_conf_file\n return False\n finally:\n f.close()\n\n # Check configuration file settings\n try:\n self.hotpConfiguration = otpConfiguration[\"hotp\"]\n self.totpConfiguration = otpConfiguration[\"totp\"]\n \n hmacShaAlgorithm = self.totpConfiguration[\"hmacShaAlgorithm\"]\n hmacShaAlgorithmType = None\n\n if StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha1\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_1\n elif StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha256\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_256\n elif StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha512\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_512\n else:\n print \"OTP. Load OTP configuration. Invalid TOTP HMAC SHA algorithm: '%s'\" % hmacShaAlgorithm\n \n self.totpConfiguration[\"hmacShaAlgorithmType\"] = hmacShaAlgorithmType\n except:\n print \"OTP. Load OTP configuration. Invalid configuration file '%s' format. Exception: '%s'\" % (otp_conf_file, sys.exc_info()[1])\n return False\n \n\n return True\n\n def processBasicAuthentication(self, credentials):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if find_user_by_uid == None:\n print \"OTP. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def findEnrollments(self, user_name, skipPrefix = True):\n result = []\n\n userService = CdiUtil.bean(UserService)\n user = userService.getUser(user_name, \"jansExtUid\")\n if user == None:\n print \"OTP. Find enrollments. Failed to find user\"\n return result\n \n user_custom_ext_attribute = userService.getCustomAttribute(user, \"jansExtUid\")\n if user_custom_ext_attribute == None:\n return result\n\n otp_prefix = \"%s:\" % self.otpType\n \n otp_prefix_length = len(otp_prefix) \n for user_external_uid in user_custom_ext_attribute.getValues():\n index = user_external_uid.find(otp_prefix)\n if index != -1:\n if skipPrefix:\n enrollment_uid = user_external_uid[otp_prefix_length:]\n else:\n enrollment_uid = user_external_uid\n\n result.append(enrollment_uid)\n \n return result\n\n def validateSessionId(self, identity):\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"OTP. Validate session id. Failed to determine session_id\"\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if not otp_auth_method in ['enroll', 'authenticate']:\n print \"OTP. Validate session id. Failed to authenticate user. otp_auth_method: '%s'\" % otp_auth_method\n return False\n\n return True\n\n def processOtpAuthentication(self, requestParameters, user_name, identity, otp_auth_method):\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n userService = CdiUtil.bean(UserService)\n\n otpCode = ServerUtil.getFirstValue(requestParameters, \"loginForm:otpCode\")\n if StringHelper.isEmpty(otpCode):\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to authenticate. OTP code is empty\")\n print \"OTP. Process OTP authentication. otpCode is empty\"\n\n return False\n \n if otp_auth_method == \"enroll\":\n # Get key from session\n otp_secret_key_encoded = identity.getWorkingParameter(\"otp_secret_key\")\n if otp_secret_key_encoded == None:\n print \"OTP. Process OTP authentication. OTP secret key is invalid\"\n return False\n \n otp_secret_key = self.fromBase64Url(otp_secret_key_encoded)\n\n if self.otpType == \"hotp\":\n validation_result = self.validateHotpKey(otp_secret_key, 1, otpCode)\n \n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process HOTP authentication during enrollment. otpCode is valid\"\n # Store HOTP Secret Key and moving factor in user entry\n otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, validation_result[\"movingFactor\"] )\n\n # Add otp_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n\n print \"OTP. Process HOTP authentication during enrollment. Failed to update user entry\"\n elif self.otpType == \"totp\":\n validation_result = self.validateTotpKey(otp_secret_key, otpCode,user_name)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process TOTP authentication during enrollment. otpCode is valid\"\n # Store TOTP Secret Key and moving factor in user entry\n otp_user_external_uid = \"totp:%s\" % otp_secret_key_encoded\n\n # Add otp_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n\n print \"OTP. Process TOTP authentication during enrollment. Failed to update user entry\"\n elif otp_auth_method == \"authenticate\":\n user_enrollments = self.findEnrollments(user_name)\n\n if len(user_enrollments) == 0:\n print \"OTP. Process OTP authentication. There is no OTP enrollment for user '%s'\" % user_name\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"There is no valid OTP user enrollments\")\n return False\n\n if self.otpType == \"hotp\":\n for user_enrollment in user_enrollments:\n user_enrollment_data = user_enrollment.split(\";\")\n otp_secret_key_encoded = user_enrollment_data[0]\n\n # Get current moving factor from user entry\n moving_factor = StringHelper.toInteger(user_enrollment_data[1])\n otp_secret_key = self.fromBase64Url(otp_secret_key_encoded)\n\n # Validate TOTP\n validation_result = self.validateHotpKey(otp_secret_key, moving_factor, otpCode)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process HOTP authentication during authentication. otpCode is valid\"\n otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, moving_factor )\n new_otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, validation_result[\"movingFactor\"] )\n \n # Update moving factor in user entry\n find_user_by_external_uid = userService.replaceUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, new_otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n \n print \"OTP. Process HOTP authentication during authentication. Failed to update user entry\"\n elif self.otpType == \"totp\":\n for user_enrollment in user_enrollments:\n otp_secret_key = self.fromBase64Url(user_enrollment)\n\n # Validate TOTP\n validation_result = self.validateTotpKey(otp_secret_key, otpCode, user_name)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process TOTP authentication during authentication. otpCode is valid\"\n return True\n\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to authenticate. OTP code is invalid\")\n print \"OTP. Process OTP authentication. OTP code is invalid\"\n\n return False\n\n # Shared HOTP/TOTP methods\n def generateSecretKey(self, keyLength):\n bytes = jarray.zeros(keyLength, \"b\")\n secureRandom = SecureRandom()\n secureRandom.nextBytes(bytes)\n \n return bytes\n \n # HOTP methods\n def generateSecretHotpKey(self):\n keyLength = self.hotpConfiguration[\"keyLength\"]\n \n return self.generateSecretKey(keyLength)\n\n def generateHotpKey(self, secretKey, movingFactor):\n digits = self.hotpConfiguration[\"digits\"]\n\n hotp = HOTP.key(secretKey).digits(digits).movingFactor(movingFactor).build()\n \n return hotp.value()\n\n def validateHotpKey(self, secretKey, movingFactor, totpKey):\n lookAheadWindow = self.hotpConfiguration[\"lookAheadWindow\"]\n digits = self.hotpConfiguration[\"digits\"]\n\n htopValidationResult = HOTPValidator.lookAheadWindow(lookAheadWindow).validate(secretKey, movingFactor, digits, totpKey)\n if htopValidationResult.isValid():\n return { \"result\": True, \"movingFactor\": htopValidationResult.getNewMovingFactor() }\n\n return { \"result\": False, \"movingFactor\": None }\n\n def generateHotpSecretKeyUri(self, secretKey, issuer, userDisplayName):\n digits = self.hotpConfiguration[\"digits\"]\n\n secretKeyBase32 = self.toBase32(secretKey)\n otpKey = OTPKey(secretKeyBase32, OTPType.HOTP)\n label = issuer + \" %s\" % userDisplayName\n\n otpAuthURI = OTPAuthURIBuilder.fromKey(otpKey).label(label).issuer(issuer).digits(digits).build()\n\n return otpAuthURI.toUriString()\n\n # TOTP methods\n def generateSecretTotpKey(self):\n keyLength = self.totpConfiguration[\"keyLength\"]\n \n return self.generateSecretKey(keyLength)\n\n def generateTotpKey(self, secretKey):\n digits = self.totpConfiguration[\"digits\"]\n timeStep = self.totpConfiguration[\"timeStep\"]\n hmacShaAlgorithmType = self.totpConfiguration[\"hmacShaAlgorithmType\"]\n\n totp = TOTP.key(secretKey).digits(digits).timeStep(TimeUnit.SECONDS.toMillis(timeStep)).hmacSha(hmacShaAlgorithmType).build()\n \n return totp.value()\n\n def validateTotpKey(self, secretKey, totpKey, user_name):\n localTotpKey = self.generateTotpKey(secretKey)\n cachedOTP = self.getCachedOTP(user_name)\n\n if StringHelper.equals(localTotpKey, totpKey) and not StringHelper.equals(localTotpKey, cachedOTP):\n userService = CdiUtil.bean(UserService)\n if cachedOTP is None:\n userService.addUserAttribute(user_name, \"jansOTPCache\",localTotpKey)\n else :\n userService.replaceUserAttribute(user_name, \"jansOTPCache\", cachedOTP, localTotpKey)\n print \"OTP. Caching OTP: '%s'\" % localTotpKey\n return { \"result\": True }\n return { \"result\": False }\n\t\n def getCachedOTP(self, user_name):\n userService = CdiUtil.bean(UserService)\n user = userService.getUser(user_name, \"jansOTPCache\")\n if user is None:\n print \"OTP. Get Cached OTP. Failed to find OTP\"\n return None\n customAttribute = userService.getCustomAttribute(user, \"jansOTPCache\")\n \n if customAttribute is None:\n print \"OTP. Custom attribute is null\"\n return None\n user_cached_OTP = customAttribute.getValue()\n if user_cached_OTP is None:\n print \"OTP. no OTP is present in LDAP\"\n return None\n \n print \"OTP.Cached OTP: '%s'\" % user_cached_OTP\n return user_cached_OTP\n \n def generateTotpSecretKeyUri(self, secretKey, issuer, userDisplayName):\n digits = self.totpConfiguration[\"digits\"]\n timeStep = self.totpConfiguration[\"timeStep\"]\n\n secretKeyBase32 = self.toBase32(secretKey)\n otpKey = OTPKey(secretKeyBase32, OTPType.TOTP)\n label = issuer + \" %s\" % userDisplayName\n\n otpAuthURI = OTPAuthURIBuilder.fromKey(otpKey).label(label).issuer(issuer).digits(digits).timeStep(TimeUnit.SECONDS.toMillis(timeStep)).build()\n\n return otpAuthURI.toUriString()\n\n # Utility methods\n def toBase32(self, bytes):\n return BaseEncoding.base32().omitPadding().encode(bytes)\n\n def toBase64Url(self, bytes):\n return BaseEncoding.base64Url().encode(bytes)\n\n def fromBase64Url(self, chars):\n return BaseEncoding.base64Url().decode(chars)\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "otp", "modified": false, "configurationProperties": [ { "hide": false, "value2": "totp", "value1": "otp_type" }, { "hide": false, "value2": "/etc/certs/otp_configuration.json", "value1": "otp_conf_file" }, { "hide": false, "value2": "Gluu Inc", "value1": "issuer" }, { "hide": false, "value2": "Gluu OTP", "value1": "label" }, { "hide": false, "value2": "{ size: 400, mSize: 0.05 }", "value1": "qr_options" }, { "hide": false, "value2": "https://jenkins-build.jans.io/identity/register", "value1": "registration_uri" } ], "baseDn": "inum=5018-D4BF,ou=scripts,o=jans" }, { "internal": false, "level": 50, "programmingLanguage": "python", "description": "DUO authentication module", "locationType": "ldap", "dn": "inum=5018-F9CF,ou=scripts,o=jans", "inum": "5018-F9CF", "script": "from io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService, SessionIdService\nfrom io.jans.as.server.service.common import UserService\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom io.jans.as.server.service.net import HttpService\nimport os\nimport java\nimport sys\nfrom com.duosecurity import Client\nfrom com.duosecurity.exception import DuoException\nfrom com.duosecurity.model import Token\nfrom io.jans.jsf2.service import FacesService\nfrom jakarta.faces.context import FacesContext\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.as.server.util import ServerUtil\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Duo-Universal. Initialization\"\n \n if (not configurationAttributes.containsKey(\"client_id\")):\n\t print \"Duo Universal. Initialization. Property client_id is not specified\"\n\t return False\n else: \n \tself.client_id = configurationAttributes.get(\"client_id\").getValue2() \n \t\n if (not configurationAttributes.containsKey(\"client_secret\")):\n\t print \"Duo Universal. Initialization. Property client_secret is not specified\"\n\t return False\n else: \n \tself.client_secret = configurationAttributes.get(\"client_secret\").getValue2() \n \t\n if (not configurationAttributes.containsKey(\"api_hostname\")):\n\t print \"Duo Universal. Initialization. Property api_hostname is not specified\"\n\t return False\n else: \n \tself.api_hostname = configurationAttributes.get(\"api_hostname\").getValue2() \n \n print \"Duo-Universal. Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Duo-Universal. Destroy\"\n print \"Duo-Universal. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"Duo-Universal. Authenticate for step %s\" % step\n \n identity = CdiUtil.bean(Identity)\n if (step == 1):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n # Check if user authenticated already in another custom script\n user = authenticationService.getAuthenticatedUser()\n \n if user == None:\n print \"user is none\"\n credentials = identity.getCredentials()\n \n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n \n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n \t\t\t\t\n if (not logged_in):\n print \"return false\"\n return False\n identity.setWorkingParameter('username',user_name)\n return True\n \n elif (step == 2):\n \n identity = CdiUtil.bean(Identity)\n \n state = ServerUtil.getFirstValue(requestParameters, \"state\")\n \t\t\t# Get state to verify consistency and originality\n if identity.getWorkingParameter('state_duo') == state :\n \t\n \t# Get authorization token to trade for 2FA\n \tduoCode = ServerUtil.getFirstValue(requestParameters, \"duo_code\")\n\t \ttry:\n\t token = self.duo_client.exchangeAuthorizationCodeFor2FAResult(duoCode, identity.getWorkingParameter('username'))\n print \"token status %s \" % token.getAuth_result().getStatus()\n\t \texcept:\n\t # Handle authentication failure.\n\t print \"authentication failure\", sys.exc_info()[1]\n\t return False\n\t \n\t # User successfully passed Duo authentication.\n\t \n\t if \"allow\" == token.getAuth_result().getStatus():\n\t return True\n\t \n\t return False\n \n else:\n print \"Neither step 1 or 2\" \n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \tprint \"Duo-Universal. Prepare for step %s\" % step\n \n if (step == 1):\n return True\n elif (step == 2):\n \tidentity = CdiUtil.bean(Identity)\n user_name = identity.getWorkingParameter('username')\n \tfacesContext = CdiUtil.bean(FacesContext)\n \trequest = facesContext.getExternalContext().getRequest()\n \thttpService = CdiUtil.bean(HttpService)\n \turl = httpService.constructServerUrl(request) + \"/postlogin.htm\"\n \t\n \ttry:\n\t \tself.duo_client = Client(self.client_id,self.client_secret,self.api_hostname,url)\n\t \tself.duo_client.healthCheck()\n\t \texcept:\n print \"Duo-Universal. Duo config error. Verify the values in Duo-Universal.conf are correct \", sys.exc_info()[1]\n \n state = self.duo_client.generateState()\n identity.setWorkingParameter(\"state_duo\",state)\n prompt_uri = self.duo_client.createAuthUrl(user_name, state)\n \n facesService = CdiUtil.bean(FacesService)\n facesService.redirectToExternalURL(prompt_uri )\n\n return True\n \n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"state_duo\", \"username\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n print \"Duo-Universal. getPageForStep - %s \" % step\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n ", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "duo", "modified": false, "configurationProperties": [ { "hide": false, "value2": "/etc/certs/duo_creds.json", "value1": "duo_creds_file" }, { "hide": false, "value2": "api-random.duosecurity.com", "value1": "duo_host" } ], "baseDn": "inum=5018-F9CF,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "Add GitHub claims to introspection response", "locationType": "ldap", "dn": "inum=8333-DFBC,ou=scripts,o=jans", "inum": "8333-DFBC", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2019, Janssen\n#\n#\n\nfrom io.jans.model.custom.script.type.introspection import IntrospectionType\nfrom io.jans.as.server.model.common import AuthorizationGrantList\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.service.cdi.util import CdiUtil\nfrom java.lang import String\n\nclass Introspection(IntrospectionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Github. Introspection script. Initializing ...\"\n print \"Github. Introspection script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Github. Introspection script. Destroying ...\"\n print \"Github. Introspection script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - apply introspection method, false - ignore it.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def modifyResponse(self, responseAsJsonObject, context):\n print \"Github. Checking for saved parameters in session ...\"\n try:\n token = context.getHttpRequest().getParameter(\"token\")\n if token is None:\n print \"Github. Introspection. There is no token in request\"\n return True\n\n authorizationGrantList = CdiUtil.bean(AuthorizationGrantList)\n authorizationGrant = authorizationGrantList.getAuthorizationGrantByAccessToken(token)\n if authorizationGrant is None:\n print \"Github. Introspection. Failed to load authorization grant by token\"\n return False\n\n # Put user_id into response\n responseAsJsonObject.accumulate(\"user_id\", authorizationGrant.getUser().getUserId())\n\n # Put custom parameters into response\n sessionDn = authorizationGrant.getSessionDn();\n print \"sessionDn '%s'\" % sessionDn\n if sessionDn is None:\n print \"There is no session\"\n return True\n\n sessionIdService = CdiUtil.bean(SessionIdService)\n session = sessionIdService.getSessionByDn(sessionDn, False)\n if sessionDn is None:\n print \"Github. Introspection. Failed to load session '%s'\" % sessionDn\n return False\n\n # Return session_id\n responseAsJsonObject.accumulate(\"session_id\", sessionDn)\n\n sessionAttributes = session.getSessionAttributes()\n if sessionAttributes is None:\n print \"There is no session attributes\"\n return True\n\n # Append custom claims\n customClaims = {}\n\n if sessionAttributes.containsKey(\"gihub_username\"):\n customClaims[\"gihub_username\"] = sessionAttributes.get(\"gihub_username\")\n if sessionAttributes.containsKey(\"gihub_access_token\"):\n customClaims[\"gihub_access_token\"] = sessionAttributes.get(\"gihub_access_token\")\n\n responseAsJsonObject.accumulate(\"customClaims\", customClaims)\n except Exception as e:\n print \"Exception occured. Unable to resolve role/scope mapping.\"\n print e\n\n return True\n\n", "enabled": false, "revision": 0, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "introspection", "name": "github-claims-introspection-script", "modified": false, "baseDn": "inum=8333-DFBC,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "locationType": "ldap", "dn": "inum=8AF7.D82A,ou=scripts,o=jans", "inum": "8AF7.D82A", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2020, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.model.custom.script.type.persistence import PersistenceType\nfrom io.jans.util import StringHelper\nfrom io.jans.persist.operation.auth import PasswordEncryptionHelper\nfrom io.jans.persist.operation.auth import PasswordEncryptionMethod\n\nimport java\n\nclass PersistenceExtension(PersistenceType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Persistence extension. Initialization\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Persistence extension. Destroy\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def onAfterCreate(self, context, configurationAttributes):\n print \"Persistence extension. Method: onAfterCreate\"\n\n def onAfterDestroy(self, context, configurationAttributes):\n print \"Persistence extension. Method: onAfterDestroy\"\n\n def createHashedPassword(self, credential):\n print \"Persistence extension. Method: createHashedPassword\"\n\n hashed_password= PasswordEncryptionHelper.createStoragePassword(credential, PasswordEncryptionMethod.HASH_METHOD_PKCS5S2)\n\n return hashed_password\n\n def compareHashedPasswords(self, credential, storedCredential):\n print \"Persistence extension. Method: compareHashedPasswords\"\n \n auth_result = PasswordEncryptionHelper.compareCredentials(credential, storedCredential)\n\n return auth_result \n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "persistence_extension", "name": "persistence_extension", "modified": false, "baseDn": "inum=8AF7.D82A,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "locationType": "ldap", "dn": "inum=8AF7.D82B,ou=scripts,o=jans", "inum": "8AF7.D82B", "script": "# oxShibboleth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2020, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.idp import IdpType\nfrom io.jans.util import StringHelper\nfrom io.jans.idp.externalauth import AuthenticatedNameTranslator\nfrom net.shibboleth.idp.authn.principal import UsernamePrincipal, IdPAttributePrincipal\nfrom net.shibboleth.idp.authn import ExternalAuthentication\nfrom net.shibboleth.idp.attribute import IdPAttribute, StringAttributeValue\nfrom net.shibboleth.idp.authn.context import AuthenticationContext, ExternalAuthenticationContext\nfrom net.shibboleth.idp.attribute.context import AttributeContext\nfrom javax.security.auth import Subject\nfrom java.util import Collections, HashMap, HashSet, ArrayList, Arrays\n\nimport java\n\nclass IdpExtension(IdpType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Idp extension. Initialization\"\n \n self.defaultNameTranslator = AuthenticatedNameTranslator()\n \n return True\n\n def destroy(self, configurationAttributes):\n print \"Idp extension. Destroy\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Translate attributes from user profile\n # context is io.jans.idp.externalauth.TranslateAttributesContext (https://github.com/JanssenFederation/shib-oxauth-authn3/blob/master/src/main/java/io.jans.idp/externalauth/TranslateAttributesContext.java)\n # configurationAttributes is java.util.Map\n def translateAttributes(self, context, configurationAttributes):\n print \"Idp extension. Method: translateAttributes\"\n \n # Return False to use default method\n #return False\n \n request = context.getRequest()\n userProfile = context.getUserProfile()\n principalAttributes = self.defaultNameTranslator.produceIdpAttributePrincipal(userProfile.getAttributes())\n print \"Idp extension. Converted user profile: '%s' to attribute principal: '%s'\" % (userProfile, principalAttributes)\n\n if not principalAttributes.isEmpty():\n print \"Idp extension. Found attributes from oxAuth. Processing...\"\n \n # Start: Custom part\n # Add givenName attribute\n givenNameAttribute = IdPAttribute(\"jansEnrollmentCode\")\n givenNameAttribute.setValues(ArrayList(Arrays.asList(StringAttributeValue(\"Dummy\"))))\n principalAttributes.add(IdPAttributePrincipal(givenNameAttribute))\n print \"Idp extension. Updated attribute principal: '%s'\" % principalAttributes\n # End: Custom part\n\n principals = HashSet()\n principals.addAll(principalAttributes)\n principals.add(UsernamePrincipal(userProfile.getId()))\n\n request.setAttribute(ExternalAuthentication.SUBJECT_KEY, Subject(False, Collections.singleton(principals),\n Collections.emptySet(), Collections.emptySet()))\n\n print \"Created an IdP subject instance with principals containing attributes for: '%s'\" % userProfile.getId()\n\n if False:\n idpAttributes = ArrayList()\n for principalAttribute in principalAttributes:\n idpAttributes.add(principalAttribute.getAttribute())\n \n request.setAttribute(ExternalAuthentication.ATTRIBUTES_KEY, idpAttributes)\n \n authenticationKey = context.getAuthenticationKey()\n profileRequestContext = ExternalAuthentication.getProfileRequestContext(authenticationKey, request)\n authContext = profileRequestContext.getSubcontext(AuthenticationContext)\n extContext = authContext.getSubcontext(ExternalAuthenticationContext)\n \n extContext.setSubject(Subject(False, Collections.singleton(principals), Collections.emptySet(), Collections.emptySet()));\n \n extContext.getSubcontext(AttributeContext, True).setUnfilteredIdPAttributes(idpAttributes)\n extContext.getSubcontext(AttributeContext).setIdPAttributes(idpAttributes)\n else:\n print \"No attributes released from oxAuth. Creating an IdP principal for: '%s'\" % userProfile.getId()\n request.setAttribute(ExternalAuthentication.PRINCIPAL_NAME_KEY, userProfile.getId())\n\n #Return True to specify that default method is not needed\n return False\n\n # Update attributes before releasing them\n # context is io.jans.idp.consent.processor.PostProcessAttributesContext (https://github.com/JanssenFederation/shib-oxauth-authn3/blob/master/src/main/java/io.jans.idp/consent/processor/PostProcessAttributesContext.java)\n # configurationAttributes is java.util.Map\n def updateAttributes(self, context, configurationAttributes):\n print \"Idp extension. Method: updateAttributes\"\n attributeContext = context.getAttributeContext()\n\n customAttributes = HashMap()\n customAttributes.putAll(attributeContext.getIdPAttributes())\n\n # Remove givenName attribute\n customAttributes.remove(\"givenName\")\n\n # Update surname attribute\n if customAttributes.containsKey(\"sn\"):\n customAttributes.get(\"sn\").setValues(ArrayList(Arrays.asList(StringAttributeValue(\"Dummy\"))))\n \n # Set updated attributes\n attributeContext.setIdPAttributes(customAttributes.values())\n\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "idp", "name": "idp", "modified": false, "baseDn": "inum=8AF7.D82B,ou=scripts,o=jans" }, { "internal": false, "level": 70, "programmingLanguage": "python", "description": "Fido2 authentication module", "locationType": "ldap", "dn": "inum=8BAF-80D7,ou=scripts,o=jans", "inum": "8BAF-80D7", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.fido2.client import Fido2ClientFactory\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\nfrom java.util import Arrays\nfrom java.util.concurrent.locks import ReentrantLock\nfrom jakarta.ws.rs import ClientErrorException\nfrom jakarta.ws.rs.core import Response\n\nimport java\nimport sys\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Fido2. Initialization\"\n\n if not configurationAttributes.containsKey(\"fido2_server_uri\"):\n print \"fido2_server_uri. Initialization. Property fido2_server_uri is not specified\"\n return False\n\n self.fido2_server_uri = configurationAttributes.get(\"fido2_server_uri\").getValue2()\n\n self.fido2_domain = None\n if configurationAttributes.containsKey(\"fido2_domain\"):\n self.fido2_domain = configurationAttributes.get(\"fido2_domain\").getValue2()\n\n self.metaDataLoaderLock = ReentrantLock()\n self.metaDataConfiguration = None\n\n print \"Fido2. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Fido2. Destroy\"\n print \"Fido2. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n\n if step == 1:\n print \"Fido2. Authenticate for step 1\"\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\",ServerUtil.getFirstValue(requestParameters, \"loginForm:platformAuthenticator\"))\n\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n return True\n elif step == 2:\n print \"Fido2. Authenticate for step 2\"\n\n token_response = ServerUtil.getFirstValue(requestParameters, \"tokenResponse\")\n if token_response == None:\n print \"Fido2. Authenticate for step 2. tokenResponse is empty\"\n return False\n\n auth_method = ServerUtil.getFirstValue(requestParameters, \"authMethod\")\n if auth_method == None:\n print \"Fido2. Authenticate for step 2. authMethod is empty\"\n return False\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Fido2. Prepare for step 2. Failed to determine user name\"\n return False\n\n if auth_method == 'authenticate':\n print \"Fido2. Prepare for step 2. Call Fido2 in order to finish authentication flow\"\n assertionService = Fido2ClientFactory.instance().createAssertionService(self.metaDataConfiguration)\n assertionStatus = assertionService.verify(token_response)\n authenticationStatusEntity = assertionStatus.readEntity(java.lang.String)\n\n if assertionStatus.getStatus() != Response.Status.OK.getStatusCode():\n print \"Fido2. Authenticate for step 2. Get invalid authentication status from Fido2 server\"\n return False\n\n return True\n elif auth_method == 'enroll':\n print \"Fido2. Prepare for step 2. Call Fido2 in order to finish registration flow\"\n attestationService = Fido2ClientFactory.instance().createAttestationService(self.metaDataConfiguration)\n attestationStatus = attestationService.verify(token_response)\n\n if attestationStatus.getStatus() != Response.Status.OK.getStatusCode():\n print \"Fido2. Authenticate for step 2. Get invalid registration status from Fido2 server\"\n return False\n\n return True\n else:\n print \"Fido2. Prepare for step 2. Authentication method is invalid\"\n return False\n\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n\n if step == 1:\n return True\n elif step == 2:\n print \"Fido2. Prepare for step 2\"\n\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Fido2. Prepare for step 2. Failed to determine session_id\"\n return False\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Fido2. Prepare for step 2. Failed to determine user name\"\n return False\n\n userName = user.getUserId()\n\n metaDataConfiguration = self.getMetaDataConfiguration()\n\n assertionResponse = None\n attestationResponse = None\n\n # Check if user have registered devices\n count = CdiUtil.bean(UserService).countFido2RegisteredDevices(userName, self.fido2_domain)\n if count > 0:\n print \"Fido2. Prepare for step 2. Call Fido2 endpoint in order to start assertion flow\"\n\n try:\n assertionService = Fido2ClientFactory.instance().createAssertionService(metaDataConfiguration)\n assertionRequest = json.dumps({'username': userName}, separators=(',', ':'))\n assertionResponse = assertionService.authenticate(assertionRequest).readEntity(java.lang.String)\n # if device has only platform authenticator and assertion is expecting a security key\n if \"internal\" in assertionResponse:\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\", \"true\")\n else:\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\", \"false\")\n\n except ClientErrorException, ex:\n print \"Fido2. Prepare for step 2. Failed to start assertion flow. Exception:\", sys.exc_info()[1]\n return False\n else:\n print \"Fido2. Prepare for step 2. Call Fido2 endpoint in order to start attestation flow\"\n\n try:\n attestationService = Fido2ClientFactory.instance().createAttestationService(metaDataConfiguration)\n platformAuthenticatorAvailable = identity.getWorkingParameter(\"platformAuthenticatorAvailable\") == \"true\"\n basic_json = {'username': userName, 'displayName': userName, 'attestation' : 'direct'}\n print \"% s\" % identity.getWorkingParameter(\"platformAuthenticatorAvailable\")\n if platformAuthenticatorAvailable is True:\n # the reason behind userVerification = discouraged --> https://chromium.googlesource.com/chromium/src/+/master/content/browser/webauth/uv_preferred.md\n platform_json = {\"authenticatorSelection\":{\"authenticatorAttachment\":\"platform\",\"requireResidentKey\" : \"false\", \"userVerification\" : \"discouraged\" } }\n basic_json.update(platform_json)\n\n # also need to add this --> excludeCredentials : [//registered ids]\n print \" basic_json %s\" % basic_json\n\n attestationRequest = json.dumps(basic_json)\n #, separators=(',', ':'))\n\n attestationResponse = attestationService.register(attestationRequest).readEntity(java.lang.String)\n except ClientErrorException, ex:\n print \"Fido2. Prepare for step 2. Failed to start attestation flow. Exception:\", sys.exc_info()[1]\n return False\n\n identity.setWorkingParameter(\"fido2_assertion_request\", ServerUtil.asJson(assertionResponse))\n identity.setWorkingParameter(\"fido2_attestation_request\", ServerUtil.asJson(attestationResponse))\n print \"Fido2. Prepare for step 2. Successfully start flow with next requests.\\nfido2_assertion_request: '%s'\\nfido2_attestation_request: '%s'\" % ( assertionResponse, attestationResponse )\n\n return True\n elif step == 3:\n print \"Fido2. Prepare for step 3\"\n\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList( \"platformAuthenticatorAvailable\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n return \"/auth/fido2/step1.xhtml\"\n elif step == 2:\n identity = CdiUtil.bean(Identity)\n if identity.getWorkingParameter(\"platformAuthenticatorAvailable\") == \"true\":\n return \"/auth/fido2/platform.xhtml\"\n else:\n return \"/auth/fido2/secKeys.xhtml\"\n return \"\"\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def getMetaDataConfiguration(self):\n if self.metaDataConfiguration != None:\n return self.metaDataConfiguration\n\n self.metaDataLoaderLock.lock()\n # Make sure that another thread not loaded configuration already\n if self.metaDataConfiguration != None:\n return self.metaDataConfiguration\n\n try:\n print \"Fido2. Initialization. Downloading Fido2 metadata\"\n self.fido2_server_metadata_uri = self.fido2_server_uri + \"/.well-known/fido2-configuration\"\n\n metaDataConfigurationService = Fido2ClientFactory.instance().createMetaDataConfigurationService(self.fido2_server_metadata_uri)\n\n max_attempts = 10\n for attempt in range(1, max_attempts + 1):\n try:\n self.metaDataConfiguration = metaDataConfigurationService.getMetadataConfiguration().readEntity(java.lang.String)\n return self.metaDataConfiguration\n except ClientErrorException, ex:\n # Detect if last try or we still get Service Unavailable HTTP error\n if (attempt == max_attempts) or (ex.getResponse().getResponseStatus() != Response.Status.SERVICE_UNAVAILABLE):\n raise ex\n\n java.lang.Thread.sleep(3000)\n print \"Attempting to load metadata: %d\" % attempt\n finally:\n self.metaDataLoaderLock.unlock()\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "fido2", "modified": false, "configurationProperties": [ { "hide": false, "value2": "https://jenkins-build.jans.io", "value1": "fido2_server_uri" } ], "baseDn": "inum=8BAF-80D7,ou=scripts,o=jans" }, { "internal": false, "level": 60, "programmingLanguage": "python", "description": "Super Gluu authentication module", "locationType": "ldap", "dn": "inum=92F0-BF9E,ou=scripts,o=jans", "inum": "92F0-BF9E", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom com.google.android.gcm.server import Sender, Message\nfrom com.notnoop.apns import APNS\nfrom java.util import Arrays\nfrom org.apache.http.params import CoreConnectionPNames\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.model.config import ConfigurationFactory\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.service.fido.u2f import DeviceRegistrationService\nfrom io.jans.as.server.service.net import HttpService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.as.common.service.common import EncryptionService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.service import MailService\nfrom io.jans.as.server.service.push.sns import PushPlatform\nfrom io.jans.as.server.service.push.sns import PushSnsService\nfrom io.jans.notify.client import NotifyClientFactory \nfrom java.util import Arrays, HashMap, IdentityHashMap, Date\nfrom java.time import ZonedDateTime\nfrom java.time.format import DateTimeFormatter\n\nimport datetime\nimport urllib\n\nimport sys\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Super-Gluu. Initialization\"\n\n if not configurationAttributes.containsKey(\"authentication_mode\"):\n print \"Super-Gluu. Initialization. Property authentication_mode is mandatory\"\n return False\n\n self.applicationId = None\n if configurationAttributes.containsKey(\"application_id\"):\n self.applicationId = configurationAttributes.get(\"application_id\").getValue2()\n\n self.registrationUri = None\n if configurationAttributes.containsKey(\"registration_uri\"):\n self.registrationUri = configurationAttributes.get(\"registration_uri\").getValue2()\n\n authentication_mode = configurationAttributes.get(\"authentication_mode\").getValue2()\n if StringHelper.isEmpty(authentication_mode):\n print \"Super-Gluu. Initialization. Failed to determine authentication_mode. authentication_mode configuration parameter is empty\"\n return False\n \n self.oneStep = StringHelper.equalsIgnoreCase(authentication_mode, \"one_step\")\n self.twoStep = StringHelper.equalsIgnoreCase(authentication_mode, \"two_step\")\n\n if not (self.oneStep or self.twoStep):\n print \"Super-Gluu. Initialization. Valid authentication_mode values are one_step and two_step\"\n return False\n \n self.enabledPushNotifications = self.initPushNotificationService(configurationAttributes)\n\n self.androidUrl = None\n if configurationAttributes.containsKey(\"supergluu_android_download_url\"):\n self.androidUrl = configurationAttributes.get(\"supergluu_android_download_url\").getValue2()\n\n self.IOSUrl = None\n if configurationAttributes.containsKey(\"supergluu_ios_download_url\"):\n self.IOSUrl = configurationAttributes.get(\"supergluu_ios_download_url\").getValue2()\n\n self.customLabel = None\n if configurationAttributes.containsKey(\"label\"):\n self.customLabel = configurationAttributes.get(\"label\").getValue2()\n\n self.customQrOptions = {}\n if configurationAttributes.containsKey(\"qr_options\"):\n self.customQrOptions = configurationAttributes.get(\"qr_options\").getValue2()\n\n self.use_super_gluu_group = False\n if configurationAttributes.containsKey(\"super_gluu_group\"):\n self.super_gluu_group = configurationAttributes.get(\"super_gluu_group\").getValue2()\n self.use_super_gluu_group = True\n print \"Super-Gluu. Initialization. Using super_gluu only if user belong to group: %s\" % self.super_gluu_group\n\n self.use_audit_group = False\n if configurationAttributes.containsKey(\"audit_group\"):\n self.audit_group = configurationAttributes.get(\"audit_group\").getValue2()\n\n if (not configurationAttributes.containsKey(\"audit_group_email\")):\n print \"Super-Gluu. Initialization. Property audit_group_email is not specified\"\n return False\n\n self.audit_email = configurationAttributes.get(\"audit_group_email\").getValue2()\n self.use_audit_group = True\n\n print \"Super-Gluu. Initialization. Using audit group: %s\" % self.audit_group\n \n if self.use_super_gluu_group or self.use_audit_group:\n if not configurationAttributes.containsKey(\"audit_attribute\"):\n print \"Super-Gluu. Initialization. Property audit_attribute is not specified\"\n return False\n else:\n self.audit_attribute = configurationAttributes.get(\"audit_attribute\").getValue2()\n\n print \"Super-Gluu. Initialized successfully. oneStep: '%s', twoStep: '%s', pushNotifications: '%s', customLabel: '%s'\" % (self.oneStep, self.twoStep, self.enabledPushNotifications, self.customLabel)\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Super-Gluu. Destroy\"\n\n self.pushAndroidService = None\n self.pushAppleService = None\n\n print \"Super-Gluu. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n client_redirect_uri = self.getApplicationUri(session_attributes)\n if client_redirect_uri == None:\n print \"Super-Gluu. Authenticate. redirect_uri is not set\"\n return False\n\n self.setRequestScopedParameters(identity, step)\n\n # Validate form result code and initialize QR code regeneration if needed (retry_current_step = True)\n identity.setWorkingParameter(\"retry_current_step\", False)\n form_auth_result = ServerUtil.getFirstValue(requestParameters, \"auth_result\")\n if StringHelper.isNotEmpty(form_auth_result):\n print \"Super-Gluu. Authenticate for step %s. Get auth_result: '%s'\" % (step, form_auth_result)\n if form_auth_result in ['error']:\n return False\n\n if form_auth_result in ['timeout']:\n if ((step == 1) and self.oneStep) or ((step == 2) and self.twoStep): \n print \"Super-Gluu. Authenticate for step %s. Reinitializing current step\" % step\n identity.setWorkingParameter(\"retry_current_step\", True)\n return False\n\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n if step == 1:\n print \"Super-Gluu. Authenticate for step 1\"\n\n user_name = credentials.getUsername()\n if self.oneStep:\n session_device_status = self.getSessionDeviceStatus(session_attributes, user_name)\n if session_device_status == None:\n return False\n\n u2f_device_id = session_device_status['device_id']\n\n validation_result = self.validateSessionDeviceStatus(client_redirect_uri, session_device_status)\n if validation_result:\n print \"Super-Gluu. Authenticate for step 1. User successfully authenticated with u2f_device '%s'\" % u2f_device_id\n else:\n return False\n \n if not session_device_status['one_step']:\n print \"Super-Gluu. Authenticate for step 1. u2f_device '%s' is not one step device\" % u2f_device_id\n return False\n \n # There are two steps only in enrollment mode\n if session_device_status['enroll']:\n return validation_result\n\n identity.setWorkingParameter(\"super_gluu_count_login_steps\", 1)\n\n user_inum = session_device_status['user_inum']\n\n u2f_device = deviceRegistrationService.findUserDeviceRegistration(user_inum, u2f_device_id, \"jansId\")\n if u2f_device == None:\n print \"Super-Gluu. Authenticate for step 1. Failed to load u2f_device '%s'\" % u2f_device_id\n return False\n\n logged_in = authenticationService.authenticate(user_name)\n if not logged_in:\n print \"Super-Gluu. Authenticate for step 1. Failed to authenticate user '%s'\" % user_name\n return False\n\n print \"Super-Gluu. Authenticate for step 1. User '%s' successfully authenticated with u2f_device '%s'\" % (user_name, u2f_device_id)\n \n return True\n elif self.twoStep:\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n if (self.use_super_gluu_group):\n print \"Super-Gluu. Authenticate for step 1. Checking if user belong to super_gluu group\"\n is_member_super_gluu_group = self.isUserMemberOfGroup(authenticated_user, self.audit_attribute, self.super_gluu_group)\n if (is_member_super_gluu_group):\n print \"Super-Gluu. Authenticate for step 1. User '%s' member of super_gluu group\" % authenticated_user.getUserId()\n super_gluu_count_login_steps = 2\n else:\n if self.use_audit_group:\n self.processAuditGroup(authenticated_user, self.audit_attribute, self.audit_group)\n super_gluu_count_login_steps = 1\n \n identity.setWorkingParameter(\"super_gluu_count_login_steps\", super_gluu_count_login_steps)\n \n if super_gluu_count_login_steps == 1:\n return True\n \n auth_method = 'authenticate'\n enrollment_mode = ServerUtil.getFirstValue(requestParameters, \"loginForm:registerButton\")\n if StringHelper.isNotEmpty(enrollment_mode):\n auth_method = 'enroll'\n \n if auth_method == 'authenticate':\n user_inum = userService.getUserInum(authenticated_user)\n u2f_devices_list = deviceRegistrationService.findUserDeviceRegistrations(user_inum, client_redirect_uri, \"jansId\")\n if u2f_devices_list.size() == 0:\n auth_method = 'enroll'\n print \"Super-Gluu. Authenticate for step 1. There is no U2F '%s' user devices associated with application '%s'. Changing auth_method to '%s'\" % (user_name, client_redirect_uri, auth_method)\n \n print \"Super-Gluu. Authenticate for step 1. auth_method: '%s'\" % auth_method\n \n identity.setWorkingParameter(\"super_gluu_auth_method\", auth_method)\n\n return True\n\n return False\n elif step == 2:\n print \"Super-Gluu. Authenticate for step 2\"\n\n user = authenticationService.getAuthenticatedUser()\n if (user == None):\n print \"Super-Gluu. Authenticate for step 2. Failed to determine user name\"\n return False\n user_name = user.getUserId()\n\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n session_device_status = self.getSessionDeviceStatus(session_attributes, user_name)\n if session_device_status == None:\n return False\n\n u2f_device_id = session_device_status['device_id']\n\n # There are two steps only in enrollment mode\n if self.oneStep and session_device_status['enroll']:\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n user_inum = userService.getUserInum(authenticated_user)\n \n attach_result = deviceRegistrationService.attachUserDeviceRegistration(user_inum, u2f_device_id)\n\n print \"Super-Gluu. Authenticate for step 2. Result after attaching u2f_device '%s' to user '%s': '%s'\" % (u2f_device_id, user_name, attach_result) \n\n return attach_result\n elif self.twoStep:\n if user_name == None:\n print \"Super-Gluu. Authenticate for step 2. Failed to determine user name\"\n return False\n\n validation_result = self.validateSessionDeviceStatus(client_redirect_uri, session_device_status, user_name)\n if validation_result:\n print \"Super-Gluu. Authenticate for step 2. User '%s' successfully authenticated with u2f_device '%s'\" % (user_name, u2f_device_id)\n else:\n return False\n \n super_gluu_request = json.loads(session_device_status['super_gluu_request'])\n auth_method = super_gluu_request['method']\n if auth_method in ['enroll', 'authenticate']:\n if validation_result and self.use_audit_group:\n user = authenticationService.getAuthenticatedUser()\n self.processAuditGroup(user, self.audit_attribute, self.audit_group)\n\n return validation_result\n\n print \"Super-Gluu. Authenticate for step 2. U2F auth_method is invalid\"\n\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n client_redirect_uri = self.getApplicationUri(session_attributes)\n if client_redirect_uri == None:\n print \"Super-Gluu. Prepare for step. redirect_uri is not set\"\n return False\n\n self.setRequestScopedParameters(identity, step)\n\n if step == 1:\n print \"Super-Gluu. Prepare for step 1\"\n if self.oneStep:\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine session_id\"\n return False\n\n issuer = CdiUtil.bean(ConfigurationFactory).getConfiguration().getIssuer()\n super_gluu_request_dictionary = {'app': client_redirect_uri,\n 'issuer': issuer,\n 'state': session.getId(),\n 'created': DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now().withNano(0))}\n\n self.addGeolocationData(session_attributes, super_gluu_request_dictionary)\n\n super_gluu_request = json.dumps(super_gluu_request_dictionary, separators=(',',':'))\n print \"Super-Gluu. Prepare for step 1. Prepared super_gluu_request:\", super_gluu_request\n \n identity.setWorkingParameter(\"super_gluu_request\", super_gluu_request)\n elif self.twoStep:\n identity.setWorkingParameter(\"display_register_action\", True)\n\n return True\n elif step == 2:\n print \"Super-Gluu. Prepare for step 2\"\n if self.oneStep:\n return True\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine user name\"\n return False\n\n if session_attributes.containsKey(\"super_gluu_request\"):\n super_gluu_request = session_attributes.get(\"super_gluu_request\")\n if not StringHelper.equalsIgnoreCase(super_gluu_request, \"timeout\"):\n print \"Super-Gluu. Prepare for step 2. Request was generated already\"\n return True\n \n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine session_id\"\n return False\n\n auth_method = session_attributes.get(\"super_gluu_auth_method\")\n if StringHelper.isEmpty(auth_method):\n print \"Super-Gluu. Prepare for step 2. Failed to determine auth_method\"\n return False\n\n print \"Super-Gluu. Prepare for step 2. auth_method: '%s'\" % auth_method\n \n issuer = CdiUtil.bean(ConfigurationFactory).getAppConfiguration().getIssuer()\n super_gluu_request_dictionary = {'username': user.getUserId(),\n 'app': client_redirect_uri,\n 'issuer': issuer,\n 'method': auth_method,\n 'state': session.getId(),\n 'created': DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now().withNano(0))}\n\n self.addGeolocationData(session_attributes, super_gluu_request_dictionary)\n\n super_gluu_request = json.dumps(super_gluu_request_dictionary, separators=(',',':'))\n print \"Super-Gluu. Prepare for step 2. Prepared super_gluu_request:\", super_gluu_request\n\n identity.setWorkingParameter(\"super_gluu_request\", super_gluu_request)\n identity.setWorkingParameter(\"super_gluu_auth_method\", auth_method)\n\n if auth_method in ['authenticate']:\n self.sendPushNotification(client_redirect_uri, user, super_gluu_request)\n\n return True\n else:\n return False\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n # If user not pass current step change step to previous\n identity = CdiUtil.bean(Identity)\n retry_current_step = identity.getWorkingParameter(\"retry_current_step\")\n if retry_current_step:\n print \"Super-Gluu. Get next step. Retrying current step\"\n\n # Remove old QR code\n identity.setWorkingParameter(\"super_gluu_request\", \"timeout\")\n\n resultStep = step\n return resultStep\n\n return -1\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 1:\n if self.oneStep: \n return Arrays.asList(\"super_gluu_request\")\n elif self.twoStep:\n return Arrays.asList(\"display_register_action\")\n elif step == 2:\n return Arrays.asList(\"super_gluu_auth_method\", \"super_gluu_request\")\n \n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n identity = CdiUtil.bean(Identity)\n if identity.isSetWorkingParameter(\"super_gluu_count_login_steps\"):\n return identity.getWorkingParameter(\"super_gluu_count_login_steps\")\n else:\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n if self.oneStep: \n return \"/auth/super-gluu/login.xhtml\"\n elif step == 2:\n if self.oneStep:\n return \"/login.xhtml\"\n else:\n identity = CdiUtil.bean(Identity)\n authmethod = identity.getWorkingParameter(\"super_gluu_auth_method\")\n print \"Super-Gluu. authmethod '%s'\" % authmethod\n if authmethod == \"enroll\":\n return \"/auth/super-gluu/login.xhtml\"\n else:\n return \"/auth/super-gluu/login.xhtml\"\n\n return \"\"\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def processBasicAuthentication(self, credentials):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if find_user_by_uid == None:\n print \"Super-Gluu. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def validateSessionDeviceStatus(self, client_redirect_uri, session_device_status, user_name = None):\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n\n u2f_device_id = session_device_status['device_id']\n\n u2f_device = None\n if session_device_status['enroll'] and session_device_status['one_step']:\n u2f_device = deviceRegistrationService.findOneStepUserDeviceRegistration(u2f_device_id)\n if u2f_device == None:\n print \"Super-Gluu. Validate session device status. There is no one step u2f_device '%s'\" % u2f_device_id\n return False\n else:\n # Validate if user has specified device_id enrollment\n user_inum = userService.getUserInum(user_name)\n\n if session_device_status['one_step']:\n user_inum = session_device_status['user_inum']\n \n u2f_device = deviceRegistrationService.findUserDeviceRegistration(user_inum, u2f_device_id)\n if u2f_device == None:\n print \"Super-Gluu. Validate session device status. There is no u2f_device '%s' associated with user '%s'\" % (u2f_device_id, user_inum)\n return False\n\n if not StringHelper.equalsIgnoreCase(client_redirect_uri, u2f_device.application):\n print \"Super-Gluu. Validate session device status. u2f_device '%s' associated with other application '%s'\" % (u2f_device_id, u2f_device.application)\n return False\n \n return True\n\n def getSessionDeviceStatus(self, session_attributes, user_name):\n print \"Super-Gluu. Get session device status\"\n\n if not session_attributes.containsKey(\"super_gluu_request\"):\n print \"Super-Gluu. Get session device status. There is no Super-Gluu request in session attributes\"\n return None\n\n # Check session state extended\n if not session_attributes.containsKey(\"session_custom_state\"):\n print \"Super-Gluu. Get session device status. There is no session_custom_state in session attributes\"\n return None\n\n session_custom_state = session_attributes.get(\"session_custom_state\")\n if not StringHelper.equalsIgnoreCase(\"approved\", session_custom_state):\n print \"Super-Gluu. Get session device status. User '%s' not approve or not pass U2F authentication. session_custom_state: '%s'\" % (user_name, session_custom_state)\n return None\n\n # Try to find device_id in session attribute\n if not session_attributes.containsKey(\"oxpush2_u2f_device_id\"):\n print \"Super-Gluu. Get session device status. There is no u2f_device associated with this request\"\n return None\n\n # Try to find user_inum in session attribute\n if not session_attributes.containsKey(\"oxpush2_u2f_device_user_inum\"):\n print \"Super-Gluu. Get session device status. There is no user_inum associated with this request\"\n return None\n \n enroll = False\n if session_attributes.containsKey(\"oxpush2_u2f_device_enroll\"):\n enroll = StringHelper.equalsIgnoreCase(\"true\", session_attributes.get(\"oxpush2_u2f_device_enroll\"))\n\n one_step = False\n if session_attributes.containsKey(\"oxpush2_u2f_device_one_step\"):\n one_step = StringHelper.equalsIgnoreCase(\"true\", session_attributes.get(\"oxpush2_u2f_device_one_step\"))\n \n super_gluu_request = session_attributes.get(\"super_gluu_request\")\n u2f_device_id = session_attributes.get(\"oxpush2_u2f_device_id\")\n user_inum = session_attributes.get(\"oxpush2_u2f_device_user_inum\")\n\n session_device_status = {\"super_gluu_request\": super_gluu_request, \"device_id\": u2f_device_id, \"user_inum\" : user_inum, \"enroll\" : enroll, \"one_step\" : one_step}\n print \"Super-Gluu. Get session device status. session_device_status: '%s'\" % (session_device_status)\n \n return session_device_status\n\n def initPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize Native/SNS/Gluu notification services\"\n\n self.pushSnsMode = False\n self.pushGluuMode = False\n if configurationAttributes.containsKey(\"notification_service_mode\"):\n notificationServiceMode = configurationAttributes.get(\"notification_service_mode\").getValue2()\n if StringHelper.equalsIgnoreCase(notificationServiceMode, \"sns\"):\n return self.initSnsPushNotificationService(configurationAttributes)\n elif StringHelper.equalsIgnoreCase(notificationServiceMode, \"gluu\"):\n return self.initGluuPushNotificationService(configurationAttributes)\n\n return self.initNativePushNotificationService(configurationAttributes)\n\n def initNativePushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize native notification services\"\n \n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n android_creds = creds[\"android\"][\"gcm\"]\n ios_creds = creds[\"ios\"][\"apns\"]\n except:\n print \"Super-Gluu. Initialize native notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if android_creds[\"enabled\"]:\n self.pushAndroidService = Sender(android_creds[\"api_key\"]) \n print \"Super-Gluu. Initialize native notification services. Created Android notification service\"\n \n if ios_creds[\"enabled\"]:\n p12_file_path = ios_creds[\"p12_file_path\"]\n p12_password = ios_creds[\"p12_password\"]\n\n try:\n encryptionService = CdiUtil.bean(EncryptionService)\n p12_password = encryptionService.decrypt(p12_password)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize native notification services. Assuming that 'p12_password' password in not encrypted\"\n\n apnsServiceBuilder = APNS.newService().withCert(p12_file_path, p12_password)\n if ios_creds[\"production\"]:\n self.pushAppleService = apnsServiceBuilder.withProductionDestination().build()\n else:\n self.pushAppleService = apnsServiceBuilder.withSandboxDestination().build()\n\n self.pushAppleServiceProduction = ios_creds[\"production\"]\n\n print \"Super-Gluu. Initialize native notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def initSnsPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize SNS notification services\"\n self.pushSnsMode = True\n\n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n sns_creds = creds[\"sns\"]\n android_creds = creds[\"android\"][\"sns\"]\n ios_creds = creds[\"ios\"][\"sns\"]\n except:\n print \"Super-Gluu. Initialize SNS notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if not (android_creds[\"enabled\"] or ios_creds[\"enabled\"]):\n print \"Super-Gluu. Initialize SNS notification services. SNS disabled for all platforms\"\n return False\n\n sns_access_key = sns_creds[\"access_key\"]\n sns_secret_access_key = sns_creds[\"secret_access_key\"]\n sns_region = sns_creds[\"region\"]\n\n encryptionService = CdiUtil.bean(EncryptionService)\n\n try:\n sns_secret_access_key = encryptionService.decrypt(sns_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize SNS notification services. Assuming that 'sns_secret_access_key' in not encrypted\"\n \n pushSnsService = CdiUtil.bean(PushSnsService)\n pushClient = pushSnsService.createSnsClient(sns_access_key, sns_secret_access_key, sns_region)\n\n if android_creds[\"enabled\"]:\n self.pushAndroidService = pushClient\n self.pushAndroidPlatformArn = android_creds[\"platform_arn\"]\n print \"Super-Gluu. Initialize SNS notification services. Created Android notification service\"\n\n if ios_creds[\"enabled\"]:\n self.pushAppleService = pushClient \n self.pushApplePlatformArn = ios_creds[\"platform_arn\"]\n self.pushAppleServiceProduction = ios_creds[\"production\"]\n print \"Super-Gluu. Initialize SNS notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def initGluuPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize Gluu notification services\"\n\n self.pushGluuMode = True\n\n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n gluu_conf = creds[\"gluu\"]\n android_creds = creds[\"android\"][\"gluu\"]\n ios_creds = creds[\"ios\"][\"gluu\"]\n except:\n print \"Super-Gluu. Initialize Gluu notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if not (android_creds[\"enabled\"] or ios_creds[\"enabled\"]):\n print \"Super-Gluu. Initialize Gluu notification services. Gluu disabled for all platforms\"\n return False\n\n gluu_server_uri = gluu_conf[\"server_uri\"]\n notifyClientFactory = NotifyClientFactory.instance()\n metadataConfiguration = None\n try:\n metadataConfiguration = notifyClientFactory.createMetaDataConfigurationService(gluu_server_uri).getMetadataConfiguration()\n except:\n print \"Super-Gluu. Initialize Gluu notification services. Failed to load metadata. Exception: \", sys.exc_info()[1]\n return False\n\n gluuClient = notifyClientFactory.createNotifyService(metadataConfiguration)\n encryptionService = CdiUtil.bean(EncryptionService)\n\n if android_creds[\"enabled\"]:\n gluu_access_key = android_creds[\"access_key\"]\n gluu_secret_access_key = android_creds[\"secret_access_key\"]\n \n try:\n gluu_secret_access_key = encryptionService.decrypt(gluu_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize Gluu notification services. Assuming that 'gluu_secret_access_key' in not encrypted\"\n \n self.pushAndroidService = gluuClient \n self.pushAndroidServiceAuth = notifyClientFactory.getAuthorization(gluu_access_key, gluu_secret_access_key);\n print \"Super-Gluu. Initialize Gluu notification services. Created Android notification service\"\n\n if ios_creds[\"enabled\"]:\n gluu_access_key = ios_creds[\"access_key\"]\n gluu_secret_access_key = ios_creds[\"secret_access_key\"]\n \n try:\n gluu_secret_access_key = encryptionService.decrypt(gluu_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize Gluu notification services. Assuming that 'gluu_secret_access_key' in not encrypted\"\n \n self.pushAppleService = gluuClient \n self.pushAppleServiceAuth = notifyClientFactory.getAuthorization(gluu_access_key, gluu_secret_access_key);\n print \"Super-Gluu. Initialize Gluu notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def loadPushNotificationCreds(self, configurationAttributes):\n print \"Super-Gluu. Initialize notification services\"\n if not configurationAttributes.containsKey(\"credentials_file\"):\n return None\n\n super_gluu_creds_file = configurationAttributes.get(\"credentials_file\").getValue2()\n\n # Load credentials from file\n f = open(super_gluu_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n except:\n print \"Super-Gluu. Initialize notification services. Failed to load credentials from file:\", super_gluu_creds_file\n return None\n finally:\n f.close()\n\n return creds\n\n def sendPushNotification(self, client_redirect_uri, user, super_gluu_request):\n try:\n self.sendPushNotificationImpl(client_redirect_uri, user, super_gluu_request)\n except:\n print \"Super-Gluu. Send push notification. Failed to send push notification: \", sys.exc_info()[1]\n\n def sendPushNotificationImpl(self, client_redirect_uri, user, super_gluu_request):\n if not self.enabledPushNotifications:\n return\n\n user_name = user.getUserId()\n print \"Super-Gluu. Send push notification. Loading user '%s' devices\" % user_name\n\n send_notification = False\n send_notification_result = True\n\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n\n user_inum = userService.getUserInum(user_name)\n\n send_android = 0\n send_ios = 0\n u2f_devices_list = deviceRegistrationService.findUserDeviceRegistrations(user_inum, client_redirect_uri, \"jansId\", \"jansDeviceData\", \"jansDeviceNotificationConf\")\n if u2f_devices_list.size() > 0:\n for u2f_device in u2f_devices_list:\n device_data = u2f_device.getDeviceData()\n\n # Device data which Super-Gluu gets during enrollment\n if device_data == None:\n continue\n\n platform = device_data.getPlatform()\n push_token = device_data.getPushToken()\n debug = False\n\n if StringHelper.equalsIgnoreCase(platform, \"ios\") and StringHelper.isNotEmpty(push_token):\n # Sending notification to iOS user's device\n if self.pushAppleService == None:\n print \"Super-Gluu. Send push notification. Apple native push notification service is not enabled\"\n else:\n send_notification = True\n \n title = \"Super Gluu\"\n message = \"Confirm your sign in request to: %s\" % client_redirect_uri\n\n if self.pushSnsMode or self.pushGluuMode:\n pushSnsService = CdiUtil.bean(PushSnsService)\n targetEndpointArn = self.getTargetEndpointArn(deviceRegistrationService, pushSnsService, PushPlatform.APNS, user, u2f_device)\n if targetEndpointArn == None:\n \treturn\n\n send_notification = True\n \n sns_push_request_dictionary = { \"aps\": \n { \"badge\": 0,\n \"alert\" : {\"body\": message, \"title\" : title},\n \"category\": \"ACTIONABLE\",\n \"content-available\": \"1\",\n \"sound\": 'default'\n },\n \"request\" : super_gluu_request\n }\n push_message = json.dumps(sns_push_request_dictionary, separators=(',',':'))\n \n if self.pushSnsMode:\n apple_push_platform = PushPlatform.APNS\n if not self.pushAppleServiceProduction:\n apple_push_platform = PushPlatform.APNS_SANDBOX\n \n send_notification_result = pushSnsService.sendPushMessage(self.pushAppleService, apple_push_platform, targetEndpointArn, push_message, None)\n if debug:\n print \"Super-Gluu. Send iOS SNS push notification. token: '%s', message: '%s', send_notification_result: '%s', apple_push_platform: '%s'\" % (push_token, push_message, send_notification_result, apple_push_platform)\n elif self.pushGluuMode:\n send_notification_result = self.pushAppleService.sendNotification(self.pushAppleServiceAuth, targetEndpointArn, push_message)\n if debug:\n print \"Super-Gluu. Send iOS Gluu push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n else:\n additional_fields = { \"request\" : super_gluu_request }\n \n msgBuilder = APNS.newPayload().alertBody(message).alertTitle(title).sound(\"default\")\n msgBuilder.category('ACTIONABLE').badge(0)\n msgBuilder.forNewsstand()\n msgBuilder.customFields(additional_fields)\n push_message = msgBuilder.build()\n \n send_notification_result = self.pushAppleService.push(push_token, push_message)\n if debug:\n print \"Super-Gluu. Send iOS Native push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n send_ios = send_ios + 1\n\n if StringHelper.equalsIgnoreCase(platform, \"android\") and StringHelper.isNotEmpty(push_token):\n # Sending notification to Android user's device\n if self.pushAndroidService == None:\n print \"Super-Gluu. Send native push notification. Android native push notification service is not enabled\"\n else:\n send_notification = True\n\n title = \"Super-Gluu\"\n if self.pushSnsMode or self.pushGluuMode:\n pushSnsService = CdiUtil.bean(PushSnsService)\n targetEndpointArn = self.getTargetEndpointArn(deviceRegistrationService, pushSnsService, PushPlatform.GCM, user, u2f_device)\n if targetEndpointArn == None:\n \treturn\n\n send_notification = True\n \n sns_push_request_dictionary = { \"collapse_key\": \"single\",\n \"content_available\": True,\n \"time_to_live\": 60,\n \"data\": \n { \"message\" : super_gluu_request,\n \"title\" : title }\n }\n push_message = json.dumps(sns_push_request_dictionary, separators=(',',':'))\n \n if self.pushSnsMode:\n send_notification_result = pushSnsService.sendPushMessage(self.pushAndroidService, PushPlatform.GCM, targetEndpointArn, push_message, None)\n if debug:\n print \"Super-Gluu. Send Android SNS push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n elif self.pushGluuMode:\n send_notification_result = self.pushAndroidService.sendNotification(self.pushAndroidServiceAuth, targetEndpointArn, push_message)\n if debug:\n print \"Super-Gluu. Send Android Gluu push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n else:\n msgBuilder = Message.Builder().addData(\"message\", super_gluu_request).addData(\"title\", title).collapseKey(\"single\").contentAvailable(True)\n push_message = msgBuilder.build()\n \n send_notification_result = self.pushAndroidService.send(push_message, push_token, 3)\n if debug:\n print \"Super-Gluu. Send Android Native push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n send_android = send_android + 1\n\n print \"Super-Gluu. Send push notification. send_android: '%s', send_ios: '%s'\" % (send_android, send_ios)\n\n def getTargetEndpointArn(self, deviceRegistrationService, pushSnsService, platform, user, u2fDevice):\n targetEndpointArn = None\n \n # Return endpoint ARN if it created already\n notificationConf = u2fDevice.getDeviceNotificationConf()\n if StringHelper.isNotEmpty(notificationConf):\n notificationConfJson = json.loads(notificationConf)\n targetEndpointArn = notificationConfJson['sns_endpoint_arn']\n if StringHelper.isNotEmpty(targetEndpointArn):\n print \"Super-Gluu. Get target endpoint ARN. There is already created target endpoint ARN\"\n return targetEndpointArn\n\n # Create endpoint ARN \n pushClient = None\n pushClientAuth = None\n platformApplicationArn = None\n if platform == PushPlatform.GCM:\n pushClient = self.pushAndroidService\n if self.pushSnsMode:\n platformApplicationArn = self.pushAndroidPlatformArn\n if self.pushGluuMode:\n pushClientAuth = self.pushAndroidServiceAuth\n elif platform == PushPlatform.APNS:\n pushClient = self.pushAppleService\n if self.pushSnsMode:\n platformApplicationArn = self.pushApplePlatformArn\n if self.pushGluuMode:\n pushClientAuth = self.pushAppleServiceAuth\n else:\n return None\n\n deviceData = u2fDevice.getDeviceData()\n pushToken = deviceData.getPushToken()\n \n print \"Super-Gluu. Get target endpoint ARN. Attempting to create target endpoint ARN for user: '%s'\" % user.getUserId()\n if self.pushSnsMode:\n targetEndpointArn = pushSnsService.createPlatformArn(pushClient, platformApplicationArn, pushToken, user)\n else:\n customUserData = pushSnsService.getCustomUserData(user)\n registerDeviceResponse = pushClient.registerDevice(pushClientAuth, pushToken, customUserData);\n if registerDeviceResponse != None and registerDeviceResponse.getStatusCode() == 200:\n targetEndpointArn = registerDeviceResponse.getEndpointArn()\n \n if StringHelper.isEmpty(targetEndpointArn):\n\t print \"Super-Gluu. Failed to get endpoint ARN for user: '%s'\" % user.getUserId()\n \treturn None\n\n print \"Super-Gluu. Get target endpoint ARN. Create target endpoint ARN '%s' for user: '%s'\" % (targetEndpointArn, user.getUserId())\n \n # Store created endpoint ARN in device entry\n userInum = user.getAttribute(\"inum\")\n u2fDeviceUpdate = deviceRegistrationService.findUserDeviceRegistration(userInum, u2fDevice.getId())\n u2fDeviceUpdate.setDeviceNotificationConf('{\"sns_endpoint_arn\" : \"%s\"}' % targetEndpointArn)\n deviceRegistrationService.updateDeviceRegistration(userInum, u2fDeviceUpdate)\n\n return targetEndpointArn\n\n def getApplicationUri(self, session_attributes):\n if self.applicationId != None:\n return self.applicationId\n \n if not session_attributes.containsKey(\"redirect_uri\"):\n return None\n\n return session_attributes.get(\"redirect_uri\")\n\n def setRequestScopedParameters(self, identity, step):\n downloadMap = HashMap()\n if self.registrationUri != None:\n identity.setWorkingParameter(\"external_registration_uri\", self.registrationUri)\n\n if self.androidUrl!= None and step == 1:\n downloadMap.put(\"android\", self.androidUrl)\n\n if self.IOSUrl != None and step == 1:\n downloadMap.put(\"ios\", self.IOSUrl)\n \n if self.customLabel != None:\n identity.setWorkingParameter(\"super_gluu_label\", self.customLabel)\n \n identity.setWorkingParameter(\"download_url\", downloadMap)\n identity.setWorkingParameter(\"super_gluu_qr_options\", self.customQrOptions)\n\n def addGeolocationData(self, session_attributes, super_gluu_request_dictionary):\n if session_attributes.containsKey(\"remote_ip\"):\n remote_ip = session_attributes.get(\"remote_ip\")\n if StringHelper.isNotEmpty(remote_ip):\n print \"Super-Gluu. Prepare for step 2. Adding req_ip and req_loc to super_gluu_request\"\n super_gluu_request_dictionary['req_ip'] = remote_ip\n\n remote_loc_dic = self.determineGeolocationData(remote_ip)\n if remote_loc_dic == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine remote location by remote IP '%s'\" % remote_ip\n return\n\n remote_loc = \"%s, %s, %s\" % ( remote_loc_dic['country'], remote_loc_dic['regionName'], remote_loc_dic['city'] )\n remote_loc_encoded = urllib.quote(remote_loc.encode('utf-8'))\n super_gluu_request_dictionary['req_loc'] = remote_loc_encoded\n\n def determineGeolocationData(self, remote_ip):\n print \"Super-Gluu. Determine remote location. remote_ip: '%s'\" % remote_ip\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n http_client_params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15 * 1000)\n \n geolocation_service_url = \"http://ip-api.com/json/%s?fields=49177\" % remote_ip\n geolocation_service_headers = { \"Accept\" : \"application/json\" }\n\n try:\n http_service_response = httpService.executeGet(http_client, geolocation_service_url, geolocation_service_headers)\n http_response = http_service_response.getHttpResponse()\n except:\n print \"Super-Gluu. Determine remote location. Exception: \", sys.exc_info()[1]\n return None\n\n try:\n if not httpService.isResponseStastusCodeOk(http_response):\n print \"Super-Gluu. Determine remote location. Get invalid response from validation server: \", str(http_response.getStatusLine().getStatusCode())\n httpService.consume(http_response)\n return None\n \n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes)\n httpService.consume(http_response)\n finally:\n http_service_response.closeConnection()\n\n if response_string == None:\n print \"Super-Gluu. Determine remote location. Get empty response from location server\"\n return None\n \n response = json.loads(response_string)\n \n if not StringHelper.equalsIgnoreCase(response['status'], \"success\"):\n print \"Super-Gluu. Determine remote location. Get response with status: '%s'\" % response['status']\n return None\n\n return response\n\n def isUserMemberOfGroup(self, user, attribute, group):\n is_member = False\n member_of_list = user.getAttributeValues(attribute)\n if (member_of_list != None):\n for member_of in member_of_list:\n if StringHelper.equalsIgnoreCase(group, member_of) or member_of.endswith(group):\n is_member = True\n break\n\n return is_member\n\n def processAuditGroup(self, user, attribute, group):\n is_member = self.isUserMemberOfGroup(user, attribute, group)\n if (is_member):\n print \"Super-Gluu. Authenticate for processAuditGroup. User '%s' member of audit group\" % user.getUserId()\n print \"Super-Gluu. Authenticate for processAuditGroup. Sending e-mail about user '%s' login to %s\" % (user.getUserId(), self.audit_email)\n \n # Send e-mail to administrator\n user_id = user.getUserId()\n mailService = CdiUtil.bean(MailService)\n subject = \"User log in: %s\" % user_id\n body = \"User log in: %s\" % user_id\n mailService.sendMail(self.audit_email, subject, body)\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "super_gluu", "modified": false, "configurationProperties": [ { "hide": false, "value2": "{ size: 500, mSize: 0.05 }", "value1": "qr_options" }, { "hide": false, "value2": "Super Gluu", "value1": "label" }, { "hide": false, "value2": "https://jenkins-build.jans.io/identity/register", "value1": "registration_uri" }, { "hide": false, "value2": "two_step", "value1": "authentication_mode" }, { "hide": false, "value2": "gluu", "value1": "notification_service_mode" }, { "hide": false, "value2": "/etc/certs/super_gluu_creds.json", "value1": "credentials_file" }, { "hide": false, "value2": "https://play.google.com/store/apps/details?id=gluu.org.super.gluu&hl=en_US", "value1": "supergluu_android_download_url" }, { "hide": false, "value2": "https://itunes.apple.com/us/app/super-gluu/id1093479646", "value1": "supergluu_ios_download_url" } ], "baseDn": "inum=92F0-BF9E,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Jans Config Api authorization script", "locationType": "ldap", "dn": "inum=A110-88AB,ou=scripts,o=jans", "inum": "A110-88AB", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2018, Janssen\n#\n# Author: Puja Sharma\n#\n#\n\nfrom io.jans.as.model.jwt import Jwt\nfrom io.jans.as.model.crypto import AuthCryptoProvider\nfrom io.jans.model.custom.script.conf import CustomScriptConfiguration\nfrom io.jans.model.custom.script.type.configapi import ConfigApiType\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom io.jans.configapi.model.configuration import ApiAppConfiguration\n\nfrom org.json import JSONObject\nfrom java.lang import String\nfrom jakarta.servlet.http import HttpServletRequest\nfrom jakarta.servlet.http import HttpServletResponse\n\n\nclass ConfigApiAuthorization(ConfigApiType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, configurationAttributes):\n print \"ConfigApiType script. Initializing ...\"\n print \"ConfigApiType script. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"ConfigApiType script. Destroying ...\"\n print \"ConfigApiType script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 1\n\n\n # Returns boolean true or false depending on the process, if the client is authorized\n # or not.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def authorize(self, responseAsJsonObject, context):\n print \" responseAsJsonObject: %s\" % responseAsJsonObject\n print \" context: %s\" % context\n\n print \"Config Authentication process\"\n request = context.httpRequest\n response = context.httpResponse\n print \" request = : %s\" % request\n print \" response = : %s\" % response\n\n appConfiguration = context.getApiAppConfiguration()\n customScriptConfiguration = context.getScript()\n issuer = context.getRequestParameters().get(\"ISSUER\")\n token = context.getRequestParameters().get(\"TOKEN\")\n method = context.getRequestParameters().get(\"METHOD\")\n path = context.getRequestParameters().get(\"PATH\")\n \n print \" requese2: %s\" % request\n print \" response2 new: %s\" % response\n print \"ConfigApiType.appConfiguration: %s\" % appConfiguration\n print \"ConfigApiType.customScriptConfiguration: %s\" % customScriptConfiguration\n print \"ConfigApiType.issuer: %s\" % issuer\n print \"ConfigApiType.token: %s\" % token\n print \"ConfigApiType.method: %s\" % method\n print \"ConfigApiType.path: %s\" % path\n\n #Example to validate method\n if (\"GET\" == StringHelper.toUpperCase(method) ):\n print \"Validate method: %s\" % method\n \n if (\"attributes\" == StringHelper.toLowerCase(path) ):\n print \"ConfigApiType.path: %s\" % path\n \n responseAsJsonObject.accumulate(\"key_from_script\", \"value_from_script\")\n print \" final responseAsJsonObject: %s\" % responseAsJsonObject\n\n return True\n\n\n\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "config_api_auth", "name": "config_api_authorization", "modified": false, "configurationProperties": [ { "hide": false, "value2": "Test value 1", "value1": "testProp1" }, { "hide": false, "value2": "Test value 2", "value1": "testProp2" } ], "baseDn": "inum=A110-88AB,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Role Based Scopes", "locationType": "ldap", "dn": "inum=A44E-4F3D,ou=scripts,o=jans", "inum": "A44E-4F3D", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2018, Janssen\n#\n# Author: Yuriy Zabrovarnyy, Arnab Dutta, Mustafa Baser\n#\n#\nfrom io.jans.as.model.jwt import Jwt\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.model.crypto import AuthCryptoProvider\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.model.custom.script.type.introspection import IntrospectionType\nfrom io.jans.as.server.model.config import ConfigurationFactory\nfrom io.jans.as.model.config.adminui import AdminConf\nfrom org.json import JSONObject\nfrom java.lang import String\n\ntry:\n import json\nexcept ImportError:\n import simplejson as json\n\n\nclass Introspection(IntrospectionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Introspection script. Initializing ...\"\n print \"Introspection script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Introspection script. Destroying ...\"\n print \"Introspection script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - apply introspection method, false - ignore it.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def modifyResponse(self, responseAsJsonObject, context):\n print \"Inside modifyResponse method of introspection script ....\"\n try:\n # Getting user-info-jwt\n ujwt = context.getHttpRequest().getParameter(\"ujwt\")\n print ujwt\n if not ujwt:\n print \"UJWT is empty or null. Only the default scopes will be added to the token.\"\n entryManager = CdiUtil.bean(PersistenceEntryManager)\n adminConf = AdminConf()\n adminUIConfig = entryManager.find(adminConf.getClass(), \"ou=admin-ui,ou=configuration,o=jans\")\n permissions = adminUIConfig.getDynamic().getPermissions()\n scopes = []\n for ele in permissions:\n if ele.getDefaultPermissionInToken() is not None and ele.getDefaultPermissionInToken():\n scopes.append(ele.getPermission())\n\n responseAsJsonObject.accumulate(\"scope\", scopes)\n return True\n\n # Parse jwt\n userInfoJwt = Jwt.parse(ujwt)\n\n configObj = CdiUtil.bean(ConfigurationFactory)\n jwksObj = configObj.getWebKeysConfiguration()\n jwks = JSONObject(jwksObj)\n\n # Validate JWT\n authCryptoProvider = AuthCryptoProvider()\n validJwt = authCryptoProvider.verifySignature(userInfoJwt.getSigningInput(), userInfoJwt.getEncodedSignature(), userInfoJwt.getHeader().getKeyId(), jwks, None, userInfoJwt.getHeader().getSignatureAlgorithm())\n\n if validJwt == True:\n # Get claims from parsed JWT\n jwtClaims = userInfoJwt.getClaims()\n jansAdminUIRole = jwtClaims.getClaim(\"jansAdminUIRole\")\n # fetch role-scope mapping from database\n scopes = None\n try:\n entryManager = CdiUtil.bean(PersistenceEntryManager)\n adminConf = AdminConf()\n adminUIConfig = entryManager.find(adminConf.getClass(), \"ou=admin-ui,ou=configuration,o=jans\")\n roleScopeMapping = adminUIConfig.getDynamic().getRolePermissionMapping()\n\n for ele in roleScopeMapping:\n if ele.getRole() == jansAdminUIRole.getString(0):\n scopes = ele.getPermissions()\n except Exception as e:\n print \"Error: Failed to fetch/parse Admin UI roleScopeMapping from DB\"\n print e\n\n print \"Following scopes will be added in api token: {}\".format(scopes)\n\n responseAsJsonObject.accumulate(\"scope\", scopes)\n except Exception as e:\n print \"Exception occured. Unable to resolve role/scope mapping.\"\n print e\n return True", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "introspection", "name": "role_based_scopes", "modified": false, "baseDn": "inum=A44E-4F3D,ou=scripts,o=jans" }, { "internal": false, "aliases": [ "basic_alias1", "basic_alias2" ], "level": 10, "programmingLanguage": "python", "description": "Sample authentication module", "locationType": "ldap", "dn": "inum=A51E-76DA,ou=scripts,o=jans", "inum": "A51E-76DA", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.util import StringHelper\n\nimport java\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Basic. Initialization\"\n print \"Basic. Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Basic. Destroy\"\n print \"Basic. Destroyed successfully\"\n return True\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if (step == 1):\n print \"Basic. Authenticate for step 1\"\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return False\n\n return True\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Basic. Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "basic", "modified": false, "baseDn": "inum=A51E-76DA,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample script for SCIM events", "locationType": "ldap", "dn": "inum=A910-56AB,ou=scripts,o=jans", "inum": "A910-56AB", "script": "# Visit https://www.gluu.org/docs/gluu-server/user-management/scim-scripting/ to learn more\nfrom io.jans.model.custom.script.type.scim import ScimType\n\nimport java\n\nclass ScimEventHandler(ScimType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, configurationAttributes):\n print \"ScimEventHandler (init): Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"ScimEventHandler (destroy): Destroyed successfully\"\n return True \n\n def getApiVersion(self):\n return 5\n\n def createUser(self, user, configurationAttributes):\n return True\n\n def updateUser(self, user, configurationAttributes):\n return True\n\n def deleteUser(self, user, configurationAttributes):\n return True\n\n def createGroup(self, group, configurationAttributes):\n return True\n\n def updateGroup(self, group, configurationAttributes):\n return True\n\n def deleteGroup(self, group, configurationAttributes):\n return True\n \n def postCreateUser(self, user, configurationAttributes):\n return True\n\n def postUpdateUser(self, user, configurationAttributes):\n return True\n\n def postDeleteUser(self, user, configurationAttributes):\n return True\n\n def postUpdateGroup(self, group, configurationAttributes):\n return True\n\n def postCreateGroup(self, group, configurationAttributes):\n return True\n\n def postDeleteGroup(self, group, configurationAttributes):\n return True\n \n def getUser(self, user, configurationAttributes):\n return True\n \n def getGroup(self, group, configurationAttributes):\n return True\n \n def postSearchUsers(self, results, configurationAttributes):\n return True\n\n def postSearchGroups(self, results, configurationAttributes):\n return True\n \n def allowResourceOperation(self, context, entity, configurationAttributes):\n return True \n \n def allowSearchOperation(self, context, configurationAttributes):\n return \"\"\n \n def rejectedResourceOperationResponse(self, context, entity, configurationAttributes):\n return None \n \n def rejectedSearchOperationResponse(self, context, configurationAttributes):\n return None\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "scim", "name": "scim_event_handler", "modified": false, "configurationProperties": [ { "hide": false, "value2": "Test value 1", "value1": "testProp1" }, { "hide": false, "value2": "Test value 2", "value1": "testProp2" } ], "baseDn": "inum=A910-56AB,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "This script is a 2 in 1. It can be used to enable user to reset its password or to enable 2FA sending a token to user's email", "dn": "inum=B270-381E,ou=scripts,o=jans", "inum": "B270-381E", "script": "# coding: utf-8\n# Janssen Project software is available under the Apache License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Christian Eland\n\n\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\n# from org.gluu.oxauth.auth import Authenticator\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.as.common.service.common import ConfigurationService\nfrom io.jans.as.common.service.common import EncryptionService\nfrom io.jans.jsf2.message import FacesMessages\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.orm.exception import AuthenticationException\n\n#dealing with smtp server\nimport smtplib\n\n#dealing with emails\nfrom email.mime.multipart import MIMEMultipart\nfrom email.mime.text import MIMEText\n\n# This one is from core Java\nfrom java.util import Arrays\n\n# to generate string token\nimport random\nimport string\n\n# regex\nimport re\n\nimport urllib\n\nimport java\n\nclass EmailValidator():\n '''\n Class to check e-mail format\n '''\n regex = '^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$'\n\n def check(self, email):\n '''\n Check if email format is valid\n returns: boolean\n '''\n\n if(re.search(self.regex,email)):\n print \"Forgot Password - %s is a valid email format\" % email\n return True\n else:\n print \"Forgot Password - %s is an invalid email format\" % email\n return False\n\nclass Token:\n #class that deals with string token\n\n def generateToken(self):\n ''' method to generate token string\n returns: String\n '''\n letters = string.ascii_lowercase\n\n #token lenght\n lenght = 20\n\n #generate token\n token = ''.join(random.choice(letters) for i in range(lenght))\n print \"Forgot Password - Generating token\"\n\n return token\n\n\nclass EmailSender():\n #class that sends e-mail through smtp\n\n def getSmtpConfig(self):\n '''\n get SMTP config from Gluu Server\n return dict\n '''\n \n smtpconfig = CdiUtil.bean(ConfigurationService).getConfiguration().getSmtpConfiguration()\n \n if smtpconfig is None:\n print \"Forgot Password - SMTP CONFIG DOESN'T EXIST - Please configure\"\n\n else:\n print \"Forgot Password - SMTP CONFIG FOUND\"\n encryptionService = CdiUtil.bean(EncryptionService)\n smtp_config = {\n 'host' : smtpconfig.getHost(),\n 'port' : smtpconfig.getPort(),\n 'user' : smtpconfig.getUserName(),\n 'from' : smtpconfig.getFromEmailAddress(),\n 'pwd_decrypted' : encryptionService.decrypt(smtpconfig.getPassword()),\n 'req_ssl' : smtpconfig.isRequiresSsl(),\n 'requires_authentication' : smtpconfig.isRequiresAuthentication(),\n 'server_trust' : smtpconfig.isServerTrust()\n }\n\n return smtp_config\n\n \n\n def sendEmail(self,useremail,token):\n '''\n send token by e-mail to useremail\n '''\n\n # server connection \n smtpconfig = self.getSmtpConfig()\n \n try:\n s = smtplib.SMTP(smtpconfig['host'], port=smtpconfig['port'])\n \n\n if smtpconfig['requires_authentication']:\n \n if smtpconfig['req_ssl']:\n s.starttls()\n \n s.login(smtpconfig['user'], smtpconfig['pwd_decrypted'])\n\n \n #message setup\n msg = MIMEMultipart() #create message\n \n message = \"Here is your token: %s\" % token\n\n msg['From'] = smtpconfig['from'] #sender\n msg['To'] = useremail #recipient\n msg['Subject'] = \"Password Reset Request\" #subject\n\n #attach message body\n msg.attach(MIMEText(message, 'plain'))\n\n #send message via smtp server\n # send_message method is for python3 only s.send_message(msg)\n\n #send email (python2)\n s.sendmail(msg['From'],msg['To'],msg.as_string())\n \n #after sent, delete\n del msg\n\n except smtplib.SMTPAuthenticationError as err:\n print \"Forgot Password - SMTPAuthenticationError - %s - %s\" % (MY_ADDRESS,PASSWORD)\n print err\n\n except smtplib.smtplib.SMTPSenderRefused as err:\n print \"Forgot Password - SMTPSenderRefused - \" + err\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n\n print \"Forgot Password - Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Forgot Password - Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n # I'm not sure why is 11 and not 2\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n '''\n Authenticates user\n Step 1 will be defined according to SCRIPT_FUNCTION custom attribute\n returns: boolean\n '''\n\n #gets custom attribute\n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n\n print \"Forgot Password - %s - Authenticate for step %s\" % (sf, step)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n\n if step == 1:\n\n if sf == \"forgot_password\":\n\n \n authenticationService = CdiUtil.bean(AuthenticationService)\n\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n \n if not logged_in:\n\n \n email = ServerUtil.getFirstValue(requestParameters, \"ForgotPasswordForm:useremail\")\n validator = EmailValidator()\n if not validator.check(email):\n print \"Forgot Password - Email format invalid\"\n return False\n\n else:\n print \"Forgot Password -Email format valid\"\n \n print \"Forgot Password - Entered email is %s\" % email\n identity.setWorkingParameter(\"useremail\",email)\n \n # Just trying to get the user by the email\n user_service = CdiUtil.bean(UserService)\n user2 = user_service.getUserByAttribute(\"mail\", email)\n\n if user2 is not None:\n \n print user2\n print \"Forgot Password - User with e-mail %s found.\" % user2.getAttribute(\"mail\")\n \n # send email\n new_token = Token()\n token = new_token.generateToken() \n sender = EmailSender()\n print \"Email: \" + email\n print \"Token: \" + token\n sender.sendEmail(email,token)\n\n \n identity.setWorkingParameter(\"token\", token)\n print identity.getWorkingParameter(\"token\")\n \n \n \n else:\n print \"Forgot Password - User with e-mail %s not found\" % email\n\n return True\n\n\n else:\n # if user is already authenticated, returns true.\n\n user = authenticationService.getAuthenticatedUser()\n print \"Forgot Password - User %s is authenticated\" % user.getUserId()\n\n return True\n\n if sf == \"email_2FA\":\n\n try:\n # Just trying to get the user by the uid\n authenticationService = CdiUtil.bean(AuthenticationService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n \n print 'email_2FA user_name: ' + str(user_name)\n \n user_service = CdiUtil.bean(UserService)\n user2 = user_service.getUserByAttribute(\"uid\", user_name)\n\n if user2 is not None:\n print \"user:\"\n print user2\n print \"Forgot Password - User with e-mail %s found.\" % user2.getAttribute(\"mail\")\n email = user2.getAttribute(\"mail\")\n uid = user2.getAttribute(\"uid\")\n\n # send token\n # send email\n new_token = Token()\n token = new_token.generateToken() \n sender = EmailSender()\n print \"Email: \" + email\n print \"Token: \" + token\n sender.sendEmail(email,token)\n\n identity.setWorkingParameter(\"token\", token)\n\n return True\n\n except AuthenticationException as err:\n print err\n return False\n\n \n \n\n if step == 2:\n # step 2 user enters token\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n \n authenticationService = CdiUtil.bean(AuthenticationService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n # retrieves token typed by user\n input_token = ServerUtil.getFirstValue(requestParameters, \"ResetTokenForm:inputToken\")\n\n print \"Forgot Password - Token inputed by user is %s\" % input_token\n\n token = identity.getWorkingParameter(\"token\")\n print \"Forgot Password - Retrieved token\"\n email = identity.getWorkingParameter(\"useremail\")\n print \"Forgot Password - Retrieved email\" \n\n # compares token sent and token entered by user\n if input_token == token:\n print \"Forgot Password - token entered correctly\"\n identity.setWorkingParameter(\"token_valid\", True)\n \n return True\n\n else:\n print \"Forgot Password - wrong token\"\n return False\n\n \n if step == 3:\n # step 3 enters new password (only runs if custom attibute is forgot_password\n\n user_service = CdiUtil.bean(UserService)\n\n email = identity.getWorkingParameter(\"useremail\")\n user2 = user_service.getUserByAttribute(\"mail\", email)\n\n\n user_name = user2.getUserId()\n \n new_password = ServerUtil.getFirstValue(requestParameters, \"UpdatePasswordForm:newPassword\")\n \n print \"Forgot Password - New password submited\"\n \n # update user info with new password\n user2.setAttribute(\"userPassword\",new_password)\n print \"Forgot Password - user uid is %s\" % user_name\n print \"Forgot Password - Updating user with new password...\"\n user_service.updateUser(user2)\n print \"Forgot Password - User updated with new password\"\n # authenticates and login user\n print \"Forgot Password - Loading authentication service...\"\n authenticationService2 = CdiUtil.bean(AuthenticationService)\n\n print \"Forgot Password - Trying to authenticate user...\"\n login = authenticationService2.authenticate(user_name, new_password)\n \n return True\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \n print \"Forgot Password - Preparing for step %s\" % step\n \n return True\n\n\n # Return value is a java.util.List \n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"token\",\"useremail\",\"token_valid\")\n\n\n # This method determines how many steps the authentication flow may have\n # It doesn't have to be a constant value\n def getCountAuthenticationSteps(self, configurationAttributes):\n \n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n \n\n # if option is forgot_token\n if sf == \"forgot_password\":\n print \"Entered sf == forgot_password\"\n return 3\n \n # if ption is email_2FA\n if sf == \"email_2FA\":\n print \"Entered if sf=email_2FA\"\n return 2\n\n else:\n print \"Forgot Password - Custom Script Custom Property Incorrect, please check\"\n\n\n # The xhtml page to render upon each step of the flow\n # returns a string relative to oxAuth webapp root\n def getPageForStep(self, configurationAttributes, step):\n \n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n\n if step == 1:\n\n if sf == \"forgot_password\":\n return \"/auth/forgot_password/forgot.xhtml\"\n\n if sf == 'email_2FA':\n return \"\"\n\n if step == 2:\n return \"/auth/forgot_password/entertoken.xhtml\"\n\n if step == 3:\n if sf == \"forgot_password\":\n return \"/auth/forgot_password/newpassword.xhtml\"\n\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n # Method used on version 2 (11?)\n return -1\n \n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "SCRIPT_FUNCTION" } ], "scriptType": "person_authentication", "name": "Forgot_Password_2FA_Token", "modified": false, "configurationProperties": [ { "hide": false, "value2": "forgot_password", "value1": "SCRIPT_FUNCTION" } ], "baseDn": "inum=B270-381E,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "Agama Script", "locationType": "ldap", "dn": "inum=BADA-BADA,ou=scripts,o=jans", "inum": "BADA-BADA", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\nfrom io.jans.agama import NativeJansFlowBridge\nfrom io.jans.agama.engine.misc import FlowUtils\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.jsf2.service import FacesService\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nfrom jakarta.faces.application import FacesMessage\n\nimport java\nimport sys\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Agama. Initialization\" \n prop = \"cust_param_name\"\n self.cust_param_name = self.configProperty(configurationAttributes, prop)\n \n if self.cust_param_name == None:\n print \"Agama. Custom parameter name not referenced via property '%s'\" % prop\n return False\n \n print \"Agama. Request param '%s' will be used to pass flow inputs\" % self.cust_param_name\n print \"Agama. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Agama. Destroy\"\n print \"Agama. Destroyed successfully\"\n return True\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n\n if step == 1:\n print \"Agama. Authenticate for step 1\"\n \n try:\n bridge = CdiUtil.bean(NativeJansFlowBridge)\n result = bridge.close()\n \n if result == None or not result.isSuccess():\n print \"Agama. Flow DID NOT finished successfully\"\n return False\n else:\n print \"Agama. Flow finished successfully\"\n data = result.getData()\n userId = data.get(\"userId\") if data != None else None\n \n if userId == None:\n print \"Agama. No userId provided in flow result.\" \n self.setMessageError(FacesMessage.SEVERITY_ERROR, \"Unable to determine identity of user\")\n return False\n \n authenticated = CdiUtil.bean(AuthenticationService).authenticate(userId)\n \n if not authenticated:\n print \"Agama. Unable to authenticate %s\" % userId\n return False\n except:\n print \"Agama. Exception: \", sys.exc_info()[1]\n return False\n\n return True\n\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \n if not CdiUtil.bean(FlowUtils).serviceEnabled():\n print \"Agama. Please ENABLE Agama engine in auth-server configuration\"\n return False\n\n if step == 1:\n print \"Agama. Prepare for Step 1\"\n\n session = CdiUtil.bean(Identity).getSessionId()\n if session == None:\n print \"Agama. Failed to retrieve session_id\"\n return False\n \n param = session.getSessionAttributes().get(self.cust_param_name) \n if param == None:\n print \"Agama. Request param '%s' is missing or has no value\" % self.cust_param_name\n return False\n \n (qn, ins) = self.extractParams(param)\n if qn == None:\n print \"Agama. Param '%s' is missing the name of the flow to be launched\" % self.cust_param_name\n return False\n \n try:\n bridge = CdiUtil.bean(NativeJansFlowBridge)\n running = bridge.prepareFlow(session.getId(), qn, ins)\n \n if running == None:\n print \"Agama. Flow '%s' does not exist!\" % qn\n return False\n elif running:\n print \"Agama. A flow is already in course\"\n \n print \"Agama. Redirecting to start/resume agama flow '%s'...\" % qn\n \n CdiUtil.bean(FacesService).redirectToExternalURL(bridge.getTriggerUrl())\n except:\n print \"Agama. An error occurred when launching flow '%s'. Check jans-auth logs\" % qn\n print \"Agama. Exception: \", sys.exc_info()[1]\n return False\n #except java.lang.Throwable, ex:\n # ex.printStackTrace() \n # return False \n return True\n \n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n # page referenced here is only used when a flow is restarted\n return \"/\" + CdiUtil.bean(NativeJansFlowBridge).scriptPageUrl()\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n# Misc routines\n\n def configProperty(self, configProperties, name):\n prop = configProperties.get(name)\n return None if prop == None else prop.getValue2()\n\n def setMessageError(self, severity, msg):\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n facesMessages.clear()\n facesMessages.add(severity, msg)\n \n def extractParams(self, param):\n\n # param must be of the form QN-INPUT where QN is the qualified name of the flow to launch\n # INPUT is a JSON object that contains the arguments to use for the flow call.\n # The keys of this object should match the already defined flow inputs. Ideally, and \n # depending on the actual flow implementation, some keys may not even be required \n # QN and INPUTS are separated by a hyphen\n # INPUT must be properly URL-encoded when HTTP GET is used\n \n i = param.find(\"-\")\n if i == 0:\n return (None, None)\n elif i == -1:\n return (param, None)\n else:\n return (param[:i], param[i+1:])\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "agama", "modified": false, "configurationProperties": [ { "hide": false, "value2": "agama_flow", "value1": "cust_param_name" } ], "baseDn": "inum=BADA-BADA,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "Firebase notification sender", "locationType": "ldap", "dn": "inum=C1BA-C1BA,ou=scripts,o=jans", "inum": "C1BA-C1BA", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2018, Janssen\n#\n# Author: Milton BO\n#\n#\n\nfrom io.jans.as.client.fcm import FirebaseCloudMessagingResponse\nfrom io.jans.as.client.fcm import FirebaseCloudMessagingClient\nfrom io.jans.as.client.fcm import FirebaseCloudMessagingRequest\nfrom io.jans.as.util import RedirectUri\nfrom io.jans.model.custom.script.type.ciba import EndUserNotificationType\nfrom java.lang import String\nfrom java.util import UUID\n\nclass EndUserNotification(EndUserNotificationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, configurationAttributes):\n print \"Firebase EndUserNotification script. Initializing ...\"\n print \"Firebase EndUserNotification script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Firebase EndUserNotification script. Destroying ...\"\n print \"Firebase EndUserNotification script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 1\n\n # Returns boolean true or false depending on the process, if the notification\n # is sent successfully or not.\n def notifyEndUser(self, context):\n print 'Sending push notification using Firebase Cloud Messaging'\n appConfiguration = context.getAppConfiguration()\n encryptionService = context.getEncryptionService()\n clientId = appConfiguration.getBackchannelClientId()\n redirectUri = appConfiguration.getBackchannelRedirectUri()\n url = appConfiguration.getCibaEndUserNotificationConfig().getNotificationUrl()\n key = encryptionService.decrypt(appConfiguration.getCibaEndUserNotificationConfig().getNotificationKey(), True)\n to = context.getDeviceRegistrationToken()\n title = \"oxAuth Authentication Request\"\n body = \"Client Initiated Backchannel Authentication (CIBA)\"\n\n authorizationRequestUri = RedirectUri(appConfiguration.getAuthorizationEndpoint())\n authorizationRequestUri.addResponseParameter(\"client_id\", clientId)\n authorizationRequestUri.addResponseParameter(\"response_type\", \"id_token\")\n authorizationRequestUri.addResponseParameter(\"scope\", context.getScope())\n authorizationRequestUri.addResponseParameter(\"acr_values\", context.getAcrValues())\n authorizationRequestUri.addResponseParameter(\"redirect_uri\", redirectUri)\n authorizationRequestUri.addResponseParameter(\"state\", UUID.randomUUID().toString())\n authorizationRequestUri.addResponseParameter(\"nonce\", UUID.randomUUID().toString())\n authorizationRequestUri.addResponseParameter(\"prompt\", \"consent\")\n authorizationRequestUri.addResponseParameter(\"auth_req_id\", context.getAuthReqId())\n\n clickAction = authorizationRequestUri.toString()\n\n firebaseCloudMessagingRequest = FirebaseCloudMessagingRequest(key, to, title, body, clickAction)\n firebaseCloudMessagingClient = FirebaseCloudMessagingClient(url)\n firebaseCloudMessagingClient.setRequest(firebaseCloudMessagingRequest)\n firebaseCloudMessagingResponse = firebaseCloudMessagingClient.exec()\n\n responseStatus = firebaseCloudMessagingResponse.getStatus()\n print \"CIBA: firebase cloud messaging result status \" + str(responseStatus)\n return (responseStatus >= 200 and responseStatus < 300 )\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "ciba_end_user_notification", "name": "firebase_ciba_end_user_notification", "modified": false, "baseDn": "inum=C1BA-C1BA,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Scan Token Update Script", "dn": "inum=CACD-5902,ou=scripts,o=jans", "inum": "CACD-5902", "script": "from io.jans.service.cdi.util import CdiUtil\nfrom io.jans.model.custom.script.type.token import UpdateTokenType\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.model.config import ConfigurationFactory\nfrom io.jans.as.server.service import ClientService\nfrom io.jans.as.server.service.net import HttpService\nfrom java.nio.charset import Charset\nfrom org.json import JSONObject\nfrom jakarta.faces.context import FacesContext\n\nimport java\nimport sys\nimport os\n\nclass UpdateToken(UpdateTokenType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Update token script. Initializing ...\"\n if (not configurationAttributes.containsKey(\"BILLING_API_URL\")):\n\t print \"Update token script. Initialization. Property BILLING_API_URL is not specified\"\n\t return False\n else:\n \tself.BILLING_API_URL = configurationAttributes.get(\"BILLING_API_URL\").getValue2()\n\n print \"Update token script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Update token script. Destroying ...\"\n print \"Update token script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - indicates that script applied changes\n # This method is called after adding headers and claims. Hence script can override them\n # Note :\n # jsonWebResponse - is JwtHeader, you can use any method to manipulate JWT\n # context is reference of io.jans.oxauth.service.external.context.ExternalUpdateTokenContext (in https://github.com/GluuFederation/oxauth project, )\n def modifyIdToken(self, jsonWebResponse, context):\n return True\n\n # Returns boolean, true - indicates that script applied changes. If false is returned token will not be created.\n # refreshToken is reference of io.jans.as.server.model.common.RefreshToken (note authorization grant can be taken as context.getGrant())\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def modifyRefreshToken(self, refreshToken, context):\n return True\n\n # Returns boolean, true - indicates that script applied changes. If false is returned token will not be created.\n # accessToken is reference of io.jans.as.server.model.common.AccessToken (note authorization grant can be taken as context.getGrant())\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def modifyAccessToken(self, accessToken, context):\n print \"Update token script. Modify AT: \"\n\tsessionIdService = CdiUtil.bean(SessionIdService)\n\tsessionId = sessionIdService.getSessionByDn(context.getGrant().getSessionDn()) # fetch from persistence\n client_id = sessionId.getSessionAttributes().get(\"client_id\")\n\n # get org_id from client_id\n clientService = CdiUtil.bean(ClientService)\n client = clientService.getClient(client_id)\n org_id = client.getOrganization()\n\n # the aud claim is mandatory in the auth header request (by Google API gateway)\n facesContext = CdiUtil.bean(FacesContext)\n request = facesContext.getExternalContext().getRequest()\n accessToken.getHeader().setClaim(\"aud\", request)\n\n\n # query Billing API\n return self.balanceAvailable(org_id)\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getRefreshTokenLifetimeInSeconds(self, context):\n return 0\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getIdTokenLifetimeInSeconds(self, context):\n return 0\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getAccessTokenLifetimeInSeconds(self, context):\n return 0\n\n def balanceAvailable(self, org_id):\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n\n url = self.BILLING_API_URL + \"organization_balance?organization_id=\"+org_id\n\n try:\n http_service_response = httpService.executeGet(http_client, url)\n http_response = http_service_response.getHttpResponse()\n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes, Charset.forName(\"UTF-8\"))\n json_response = JSONObject(response_string)\n httpService.consume(http_response)\n print json_response.get(\"status\")\n if json_response.get(\"status\") == \"true\":\n return True\n else:\n print \"AT will not be created because balance is negative : %s \" % json_response.get(\"status\")\n return False\n\n except:\n print \"Failed to invoke BILLING_API: \", sys.exc_info()[1]\n return False\n\n\n finally:\n http_service_response.closeConnection()\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "v2", "value1": "v1" } ], "scriptType": "update_token", "name": "scan_update_token", "modified": false, "configurationProperties": [ { "hide": false, "value2": "https://my.billing.api.com/", "value1": "BILLING_API_URL", "description": "URL to billing API" } ], "baseDn": "inum=CACD-5902,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Permission Dynamic Scope script", "locationType": "ldap", "dn": "inum=CB5B-3211,ou=scripts,o=jans", "inum": "CB5B-3211", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.scope import DynamicScopeType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList\n\nimport java\n\nclass DynamicScope(DynamicScopeType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Permission dynamic scope. Initialization\"\n\n print \"Permission dynamic scope. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Permission dynamic scope. Destroy\"\n print \"Permission dynamic scope. Destroyed successfully\"\n return True \n\n # Update Json Web token before signing/encrypring it\n # dynamicScopeContext is io.jans.as.service.external.context.DynamicScopeExternalContext\n # configurationAttributes is java.util.Map\n def update(self, dynamicScopeContext, configurationAttributes):\n print \"Permission dynamic scope scope. Update method\"\n\n authorizationGrant = dynamicScopeContext.getAuthorizationGrant()\n user = dynamicScopeContext.getUser()\n jsonWebResponse = dynamicScopeContext.getJsonWebResponse()\n claims = jsonWebResponse.getClaims()\n\n userService = CdiUtil.bean(UserService)\n roles = userService.getCustomAttribute(user, \"role\")\n if roles != None:\n claims.setClaim(\"role\", roles.getValues())\n\n return True\n\n def getSupportedClaims(self, configurationAttributes):\n return Arrays.asList(\"role\")\n\n def getApiVersion(self):\n return 11\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "dynamic_scope", "name": "dynamic_permission", "modified": false, "baseDn": "inum=CB5B-3211,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Client Registration script", "locationType": "ldap", "dn": "inum=DAA9-B788,ou=scripts,o=jans", "inum": "DAA9-B788", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.client import ClientRegistrationType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.service import ScopeService\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList, HashSet\n\nimport java\n\nclass ClientRegistration(ClientRegistrationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Client registration. Initialization\"\n \n self.clientRedirectUrisSet = self.prepareClientRedirectUris(configurationAttributes)\n\n print \"Client registration. Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Client registration. Destroy\"\n print \"Client registration. Destroyed successfully\"\n return True \n\n # Update client entry before persistent it\n # context refers to io.jans.as.server.service.external.context.DynamicClientRegistrationContext - see https://github.com/JanssenProject/jans-auth-server/blob/e083818272ac48813eca8525e94f7bd73a7a9f1b/server/src/main/java/io/jans/as/server/service/external/context/DynamicClientRegistrationContext.java#L24\n def createClient(self, context):\n print \"Client registration. CreateClient method\"\n registerRequest = context.getRegisterRequest()\n configurationAttributes = context.getConfigurationAttibutes()\n client = context.getClient()\n\n redirectUris = client.getRedirectUris()\n print \"Client registration. Redirect Uris: %s\" % redirectUris\n\n addAddressScope = False\n for redirectUri in redirectUris:\n if (self.clientRedirectUrisSet.contains(redirectUri)):\n addAddressScope = True\n break\n \n print \"Client registration. Is add address scope: %s\" % addAddressScope\n\n if addAddressScope:\n currentScopes = client.getScopes()\n print \"Client registration. Current scopes: %s\" % currentScopes\n \n scopeService = CdiUtil.bean(ScopeService)\n addressScope = scopeService.getScopeByDisplayName(\"address\")\n newScopes = ArrayHelper.addItemToStringArray(currentScopes, addressScope.getDn())\n \n print \"Client registration. Result scopes: %s\" % newScopes\n client.setScopes(newScopes)\n\n return True\n\n # Update client entry before persistent it\n # context refers to io.jans.as.server.service.external.context.DynamicClientRegistrationContext - see https://github.com/JanssenProject/jans-auth-server/blob/e083818272ac48813eca8525e94f7bd73a7a9f1b/server/src/main/java/io/jans/as/server/service/external/context/DynamicClientRegistrationContext.java#L24\n def updateClient(self, context):\n print \"Client registration. UpdateClient method\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def prepareClientRedirectUris(self, configurationAttributes):\n clientRedirectUrisSet = HashSet()\n if not configurationAttributes.containsKey(\"client_redirect_uris\"):\n return clientRedirectUrisSet\n\n clientRedirectUrisList = configurationAttributes.get(\"client_redirect_uris\").getValue2()\n if StringHelper.isEmpty(clientRedirectUrisList):\n print \"Client registration. The property client_redirect_uris is empty\"\n return clientRedirectUrisSet \n\n clientRedirectUrisArray = StringHelper.split(clientRedirectUrisList, \",\")\n if ArrayHelper.isEmpty(clientRedirectUrisArray):\n print \"Client registration. No clients specified in client_redirect_uris property\"\n return clientRedirectUrisSet\n \n # Convert to HashSet to quick search\n i = 0\n count = len(clientRedirectUrisArray)\n while i < count:\n uris = clientRedirectUrisArray[i]\n clientRedirectUrisSet.add(uris)\n i = i + 1\n\n return clientRedirectUrisSet\n\n # Returns secret key which will be used to validate Software Statement if HMAC algorithm is used (e.g. HS256, HS512). Invoked if oxauth conf property softwareStatementValidationType=SCRIPT which is default/fallback value.\n # context is reference of io.jans.as.service.external.context.DynamicClientRegistrationContext (in https://github.com/JanssenFederation/oxauth project )\n def getSoftwareStatementHmacSecret(self, context):\n return \"\"\n\n # Returns JWKS which will be used to validate Software Statement if keys are used (e.g. RS256). Invoked if oxauth conf property softwareStatementValidationType=SCRIPT which is default/fallback value.\n # context is reference of io.jans.as.service.external.context.DynamicClientRegistrationContext (in https://github.com/JanssenFederation/oxauth project )\n def getSoftwareStatementJwks(self, context):\n return \"\"\n\n # cert - java.security.cert.X509Certificate\n # context refers to io.jans.as.server.service.external.context.DynamicClientRegistrationContext - see https://github.com/JanssenProject/jans-auth-server/blob/e083818272ac48813eca8525e94f7bd73a7a9f1b/server/src/main/java/io/jans/as/server/service/external/context/DynamicClientRegistrationContext.java#L24\n def isCertValidForClient(self, cert, context):\n return False\n\n # responseAsJsonObject - is org.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.server.model.common.ExecutionContext\n def modifyPutResponse(self, responseAsJsonObject, executionContext):\n return False\n\n # responseAsJsonObject - is org.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.server.model.common.ExecutionContext\n def modifyReadResponse(self, responseAsJsonObject, executionContext):\n return False\n\n # responseAsJsonObject - is org.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.server.model.common.ExecutionContext\n def modifyPostResponse(self, responseAsJsonObject, executionContext):\n return False\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "client_registration", "name": "client_registration", "modified": false, "configurationProperties": [ { "hide": false, "value2": "https://client.example.com/example1, https://client.example.com/example2", "value1": "client_redirect_uris" } ], "baseDn": "inum=DAA9-B788,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Application Session script", "locationType": "ldap", "dn": "inum=DAA9-B789,ou=scripts,o=jans", "inum": "DAA9-B789", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.session import ApplicationSessionType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.persist import PersistenceEntryManager\nfrom io.jans.as.model.config import StaticConfiguration\nfrom io.jans.as.model.ldap import TokenEntity\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom io.jans.as.model.config import Constants\nfrom java.util import Arrays, ArrayList\nfrom io.jans.as.service.external.session import SessionEventType\n\nimport java\n\nclass ApplicationSession(ApplicationSessionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Application session. Initialization\"\n\n self.entryManager = CdiUtil.bean(PersistenceEntryManager)\n self.staticConfiguration = CdiUtil.bean(StaticConfiguration)\n\n print \"Application session. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Application session. Destroy\"\n print \"Application session. Destroyed successfully\"\n return True \n\n def getApiVersion(self):\n return 11\n\n # Called each time specific session event occurs\n # event is io.jans.as.service.external.session.SessionEvent\n def onEvent(self, event):\n if event.getType() == SessionEventType.AUTHENTICATED:\n print \"Session is authenticated, session: \" + event.getSessionId().getId()\n return\n\n # Application calls it at start session request to allow notify 3rd part systems\n # httpRequest is jakarta.servlet.http.HttpServletRequest\n # sessionId is io.jans.as.model.common.SessionId\n # configurationAttributes is java.util.Map\n def startSession(self, httpRequest, sessionId, configurationAttributes):\n print \"Application session. Starting external session\"\n\n user_name = sessionId.getSessionAttributes().get(Constants.AUTHENTICATED_USER)\n\n first_session = self.isFirstSession(user_name)\n if not first_session:\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Please, end active session first!\")\n return False\n\n print \"Application session. External session started successfully\"\n return True\n\n # Application calls it at end session request to allow notify 3rd part systems\n # httpRequest is jakarta.servlet.http.HttpServletRequest\n # sessionId is io.jans.as.model.common.SessionId\n # configurationAttributes is java.util.Map\n def endSession(self, httpRequest, sessionId, configurationAttributes):\n print \"Application session. Starting external session end\"\n\n print \"Application session. External session ended successfully\"\n return True\n\n # Application calls it during /session/active endpoint call to modify response if needed\n # jsonArray is org.json.JSONArray\n # context is io.jans.as.server.model.common.ExecutionContext\n def modifyActiveSessionsResponse(self, jsonArray, context):\n return False\n\n def isFirstSession(self, user_name):\n tokenLdap = TokenEntity()\n tokenLdap.setDn(self.staticConfiguration.getBaseDn().getClients())\n tokenLdap.setUserId(user_name)\n\n tokenLdapList = self.entryManager.findEntries(tokenLdap, 1)\n print \"Application session. isFirstSession. Get result: '%s'\" % tokenLdapList\n\n if (tokenLdapList != None) and (tokenLdapList.size() > 0):\n print \"Application session. isFirstSession: False\"\n return False\n\n print \"Application session. isFirstSession: True\"\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "application_session", "name": "application_session", "modified": false, "baseDn": "inum=DAA9-B789,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "Consent Gathering script", "locationType": "ldap", "dn": "inum=DAA9-BA60,ou=scripts,o=jans", "inum": "DAA9-BA60", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2017, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.authz import ConsentGatheringType\nfrom io.jans.util import StringHelper\n\nimport java\nimport random\n\nclass ConsentGathering(ConsentGatheringType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Consent-Gathering. Initializing ...\"\n print \"Consent-Gathering. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Consent-Gathering. Destroying ...\"\n print \"Consent-Gathering. Destroyed successfully\"\n\n return True\n\n def getApiVersion(self):\n return 1\n\n # Main consent-gather method. Must return True (if gathering performed successfully) or False (if fail).\n # All user entered values can be access via Map context.getPageAttributes()\n def authorize(self, step, context): # context is reference of io.jans.as.service.external.context.ConsentGatheringContext\n print \"Consent-Gathering. Authorizing...\"\n\n if step == 1:\n allowButton = context.getRequestParameters().get(\"authorizeForm:allowButton\")\n if (allowButton != None) and (len(allowButton) > 0):\n print \"Consent-Gathering. Authorization success for step 1\"\n return True\n\n print \"Consent-Gathering. Authorization declined for step 1\"\n elif step == 2:\n allowButton = context.getRequestParameters().get(\"authorizeForm:allowButton\")\n if (allowButton != None) and (len(allowButton) > 0):\n print \"Consent-Gathering. Authorization success for step 2\"\n return True\n\n print \"Consent-Gathering. Authorization declined for step 2\"\n\n return False\n\n def getNextStep(self, step, context):\n return -1\n\n def prepareForStep(self, step, context):\n if not context.isAuthenticated():\n print \"User is not authenticated. Aborting authorization flow ...\"\n return False\n\n if step == 2:\n pageAttributes = context.getPageAttributes()\n \n # Generate random consent gathering request\n consentRequest = \"Requested transaction #%s approval for the amount of sum $ %s.00\" % ( random.randint(100000, 1000000), random.randint(1, 100) )\n pageAttributes.put(\"consent_request\", consentRequest)\n return True\n\n return True\n\n def getStepsCount(self, context):\n return 2\n\n def getPageForStep(self, step, context):\n if step == 1:\n return \"/authz/authorize.xhtml\"\n elif step == 2:\n return \"/authz/transaction.xhtml\"\n\n return \"\"\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "consent_gathering", "name": "consent_gathering", "modified": false, "baseDn": "inum=DAA9-BA60,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "GitHub Inbound Authentication script", "locationType": "ldap", "dn": "inum=E706-F8A8,ou=scripts,o=jans", "inum": "E706-F8A8", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.as.common.model.common import User\nfrom io.jans.as.model.jwt import Jwt\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.common.service.common import UserService\nfrom io.jans.as.server.service.net import HttpService\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.as.persistence.model.configuration import GluuConfiguration\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nfrom io.jans.jsf2.service import FacesService\nfrom java.util import Arrays, UUID\n\nimport json\nimport sys\nimport datetime\nimport urllib\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"GitHub. Initialization\"\n\n # read config from github_creds_file\n github_creds_file = configurationAttributes.get(\"github_creds_file\").getValue2()\n f = open(github_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n print creds\n except:\n print \"GitHub: Initialization. Failed to load creds from file:\", github_creds_file\n print \"Exception: \", sys.exc_info()[1]\n return False\n finally:\n f.close()\n\n self.op_server = str(creds[\"op_server\"])\n self.client_id = str(creds[\"client_id\"])\n self.client_secret = str(creds[\"client_secret\"])\n self.authorization_uri = str(creds[\"authorization_uri\"])\n self.token_uri = str(creds[\"token_uri\"])\n self.userinfo_uri = str(creds[\"userinfo_uri\"])\n self.redirect_uri = str(creds[\"redirect_uri\"])\n self.scope = str(creds[\"scope\"])\n self.title = str(creds[\"title\"])\n self.auto_redirect = creds[\"auto_redirect\"]\n\n print \"GitHub: Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"GitHub. Destroy\"\n print \"GitHub. Destroyed successfully\"\n return True\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"GitHub: authenticate called for step %s\" % str(step)\n identity = CdiUtil.bean(Identity)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n # Get Access Token\n tokenResponse = self.getToken(requestParameters)\n if tokenResponse is None:\n return False\n\n # Get User Info\n userInfo = self.getUserInfo(tokenResponse[\"access_token\"])\n foundUser = self.addUser(userInfo)\n if foundUser is None:\n return False\n\n identity.setWorkingParameter(\"gihub_username\", userInfo[\"login\"])\n identity.setWorkingParameter(\"gihub_access_token\", tokenResponse[\"access_token\"])\n\n print \"GitHub: Successfully authenticated\"\n\n loggedIn = authenticationService.authenticate(foundUser.getUserId())\n print \"GitHub: Authentication: %s\" % str(loggedIn)\n return loggedIn\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n print \"GitHub: prepareForStep called for step %s\" % str(step)\n if step == 1:\n # redirect to external OIDC server\n\n redirect_url_elements = [self.authorization_uri,\n \"?response_type=code id_token\",\n \"&client_id=\", self.client_id,\n \"&scope=\", self.scope,\n \"&redirect_uri=\", self.redirect_uri]\n redirect_url = \"\".join(redirect_url_elements)\n\n identity = CdiUtil.bean(Identity)\n\n if self.auto_redirect:\n facesService = CdiUtil.bean(FacesService)\n facesService.redirectToExternalURL(redirect_url)\n else:\n identity.setWorkingParameter(\"oidc_redirect_uri\", redirect_url)\n identity.setWorkingParameter(\"oidc_title\", self.title)\n\n return True\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n print \"GitHub: getExtraParametersForStep called for step %s\" % str(step)\n return Arrays.asList(\"gihub_username\", \"gihub_access_token\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n print \"GitHub: getCountAuthenticationSteps called\"\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n print \"GitHub: getPageForStep called for step %s\" % str(step)\n if(step == 1):\n return \"/auth/github/github.xhtml\"\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n print \"GitHub: getNextStep called for step %s\" % str(step)\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"GitHub: Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def generalLogin(self, identity, authenticationService):\n print \"GitHub: general login\"\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n return logged_in\n\n def getLocalPrimaryKey(self):\n entryManager = CdiUtil.bean(PersistenceEntryManager)\n config = GluuConfiguration()\n config = entryManager.find(config.getClass(), \"ou=configuration,o=jans\")\n # Pick (one) attribute where user id is stored (e.g. uid/mail)\n # primaryKey is the primary key on the backend AD / LDAP Server\n # localPrimaryKey is the primary key on Janssen. This attr value has been mapped with the primary key attr of the backend AD / LDAP when configuring cache refresh\n uid_attr = config.getIdpAuthn().get(0).getConfig().findValue(\"localPrimaryKey\").asText()\n print \"GitHub: init. uid attribute is '%s'\" % uid_attr\n return uid_attr\n\n def getToken(self, requestParameters):\n print \"GitHub: Get Access Token\"\n oidcCode = ServerUtil.getFirstValue(requestParameters, \"code\")\n httpService = CdiUtil.bean(HttpService)\n httpclient = httpService.getHttpsClient()\n tokenRequestData = urllib.urlencode({\n \"code\" : oidcCode,\n \"grant_type\" : \"authorization_code\",\n \"redirect_uri\": self.redirect_uri,\n \"client_id\": self.client_id,\n \"client_secret\": self.client_secret\n })\n\n tokenRequestHeaders = { \"Content-type\" : \"application/x-www-form-urlencoded\", \"Accept\" : \"application/json\" }\n\n resultResponse = httpService.executePost(httpclient, self.token_uri, None, tokenRequestHeaders, tokenRequestData)\n httpResponse = resultResponse.getHttpResponse()\n httpResponseStatusCode = httpResponse.getStatusLine().getStatusCode()\n print \"OIDC: token response status code: %s\" % httpResponseStatusCode\n if str(httpResponseStatusCode) != \"200\":\n print \"OIDC: Failed to get token, status code %s\" % httpResponseStatusCode\n return None\n\n responseBytes = httpService.getResponseContent(httpResponse)\n responseString = httpService.convertEntityToString(responseBytes)\n tokenResponse = json.loads(responseString)\n\n return tokenResponse\n\n def addUser(self, user):\n try:\n print \"GitHub: Adding user\"\n userId = user[\"login\"]\n userService = CdiUtil.bean(UserService)\n foundUser = userService.getUserByAttribute(\"jansExtUid\", \"github:\"+userId)\n\n if foundUser is None:\n print \"GitHub: User not found, adding new\"\n foundUser = User()\n foundUser.setAttribute(\"jansExtUid\", \"github:\"+userId)\n foundUser.setAttribute(\"jansEmail\", user[\"email\"])\n foundUser.setAttribute(\"mail\", user[\"email\"])\n foundUser.setAttribute(\"displayName\", \"github:\"+userId)\n foundUser.setAttribute(\"givenName\", \"github:\"+userId)\n foundUser.setAttribute(self.getLocalPrimaryKey(), userId)\n foundUser = userService.addUser(foundUser, True)\n\n return foundUser\n except Exception as e:\n print e\n print \"GitHub: Add user Exception: \", sys.exc_info()[1]\n return None\n\n def getUserInfo(self, accessToken):\n try:\n print \"GitHub: Get Userinfo\"\n httpService = CdiUtil.bean(HttpService)\n httpclient = httpService.getHttpsClient()\n tokenRequestHeaders = { \"Authorization\" : \"Bearer %s\" % accessToken, \"Accept\" : \"application/json\" }\n\n resultResponse = httpService.executeGet(httpclient, self.userinfo_uri, tokenRequestHeaders)\n httpResponse = resultResponse.getHttpResponse()\n httpResponseStatusCode = httpResponse.getStatusLine().getStatusCode()\n print \"GitHub: userinfo response status code: %s\" % httpResponseStatusCode\n if str(httpResponseStatusCode) != \"200\":\n print \"GitHub: Failed to get userinfo, status code %s\" % httpResponseStatusCode\n return None\n\n responseBytes = httpService.getResponseContent(httpResponse)\n responseString = httpService.convertEntityToString(responseBytes)\n userinfoResponse = json.loads(responseString)\n\n print userinfoResponse\n\n return userinfoResponse\n except Exception as e:\n print e\n return None\n", "enabled": false, "revision": 0, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "github", "modified": false, "configurationProperties": [ { "hide": false, "value2": "true", "value1": "hide" }, { "hide": false, "value2": "/etc/jans/conf/github.json", "value1": "github_creds_file" }, { "hide": false, "value2": "GitHub Login", "value1": "description" } ], "baseDn": "inum=E706-F8A8,ou=scripts,o=jans" } ], "start": 0, "totalEntriesCount": 39 } 24-11 09:33:41.125 INFO com.intuit.karate.Logger Logger.java:104- [print] { "internal": false, "level": 1, "programmingLanguage": "java", "description": "Java Custom Sample Script", "locationType": "ldap", "dn": "inum=0300-BA90,ou=scripts,o=jans", "inum": "0300-BA90", "script": "/* Copyright (c) 2022, Gluu\n Author: Yuriy Z\n */\n\nimport io.jans.model.SimpleCustomProperty;\nimport io.jans.model.custom.script.model.CustomScript;\nimport io.jans.model.custom.script.type.discovery.DiscoveryType;\nimport io.jans.service.custom.script.CustomScriptManager;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.json.JSONObject;\n\nimport java.util.Map;\n\npublic class Discovery implements DiscoveryType {\n\n private static final Logger log = LoggerFactory.getLogger(Discovery.class);\n private static final Logger scriptLogger = LoggerFactory.getLogger(CustomScriptManager.class);\n\n @Override\n public boolean init(Map configurationAttributes) {\n log.info(\"Init of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public boolean init(CustomScript customScript, Map configurationAttributes) {\n log.info(\"Init of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public boolean destroy(Map configurationAttributes) {\n log.info(\"Destroy of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public int getApiVersion() {\n log.info(\"getApiVersion Discovery Java custom script: 11\");\n return 11;\n }\n\n @Override\n public boolean modifyResponse(Object responseAsJsonObject, Object context) {\n scriptLogger.info(\"write to script logger\");\n JSONObject response = (JSONObject) responseAsJsonObject;\n response.accumulate(\"key_from_java\", \"value_from_script_on_java\");\n return true;\n }\n}\n", "enabled": true, "revision": 11, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "discovery", "name": "discovery_java_params", "modified": false, "baseDn": "inum=0300-BA90,ou=scripts,o=jans" } 24-11 09:33:41.135 INFO com.intuit.karate.Logger Logger.java:104- [print] Script inum = discovery_java_params 24-11 09:33:41.158 INFO com.intuit.karate.Logger Logger.java:104- [print] Script Name = discovery_java_params 24-11 09:33:41.171 INFO com.intuit.karate.Logger Logger.java:104- [print] Fetching script by name-discovery_java_params 24-11 09:33:41.410 INFO com.intuit.karate.Logger Logger.java:104- [print] { "internal": false, "level": 1, "programmingLanguage": "java", "description": "Java Custom Sample Script", "locationType": "ldap", "dn": "inum=0300-BA90,ou=scripts,o=jans", "inum": "0300-BA90", "script": "/* Copyright (c) 2022, Gluu\n Author: Yuriy Z\n */\n\nimport io.jans.model.SimpleCustomProperty;\nimport io.jans.model.custom.script.model.CustomScript;\nimport io.jans.model.custom.script.type.discovery.DiscoveryType;\nimport io.jans.service.custom.script.CustomScriptManager;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.json.JSONObject;\n\nimport java.util.Map;\n\npublic class Discovery implements DiscoveryType {\n\n private static final Logger log = LoggerFactory.getLogger(Discovery.class);\n private static final Logger scriptLogger = LoggerFactory.getLogger(CustomScriptManager.class);\n\n @Override\n public boolean init(Map configurationAttributes) {\n log.info(\"Init of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public boolean init(CustomScript customScript, Map configurationAttributes) {\n log.info(\"Init of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public boolean destroy(Map configurationAttributes) {\n log.info(\"Destroy of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public int getApiVersion() {\n log.info(\"getApiVersion Discovery Java custom script: 11\");\n return 11;\n }\n\n @Override\n public boolean modifyResponse(Object responseAsJsonObject, Object context) {\n scriptLogger.info(\"write to script logger\");\n JSONObject response = (JSONObject) responseAsJsonObject;\n response.accumulate(\"key_from_java\", \"value_from_script_on_java\");\n return true;\n }\n}\n", "enabled": true, "revision": 11, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "discovery", "name": "discovery_java_params", "modified": false, "baseDn": "inum=0300-BA90,ou=scripts,o=jans" } 24-11 09:33:41.419 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:41.420 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:41.421 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:41.421 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:41.422 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:41.423 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:41.423 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:41.423 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:41.423 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:41.424 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:41.428 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:41.428 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:41.428 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:41.428 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:41.429 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:41.429 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:41.429 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:41.430 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:41.430 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:41.430 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:41.739 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 13, "entries": [ { "internal": false, "level": 50, "programmingLanguage": "python", "description": "Twilio SMS authentication module", "locationType": "ldap", "dn": "inum=09A0-93D6,ou=scripts,o=jans", "inum": "09A0-93D6", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Gasmyr Mougang\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nimport com.twilio.Twilio as Twilio\nimport com.twilio.rest.api.v2010.account.Message as Message\nimport com.twilio.type.PhoneNumber as PhoneNumber\nimport org.codehaus.jettison.json.JSONArray as JSONArray\n\n\nimport java\nimport random\nimport jarray\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.mobile_number = None\n self.identity = CdiUtil.bean(Identity)\n\n def init(self, customScript, configurationAttributes):\n print \"==============================================\"\n print \"===TWILIO SMS INITIALIZATION==================\"\n print \"==============================================\"\n self.ACCOUNT_SID = None\n self.AUTH_TOKEN = None\n self.FROM_NUMBER = None\n\n # Get Custom Properties\n try:\n self.ACCOUNT_SID = configurationAttributes.get(\"twilio_sid\").getValue2()\n except:\n print 'TwilioSMS, Missing required configuration attribute \"twilio_sid\"'\n\n try:\n self.AUTH_TOKEN = configurationAttributes.get(\"twilio_token\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"twilio_token\"'\n try:\n self.FROM_NUMBER = configurationAttributes.get(\"from_number\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"from_number\"'\n\n if None in (self.ACCOUNT_SID, self.AUTH_TOKEN, self.FROM_NUMBER):\n print \"twilio_sid, twilio_token, from_number is empty ... returning False\"\n return False\n\n print \"===TWILIO SMS INITIALIZATION DONE PROPERLY=====\" \n return True\n\n def destroy(self, configurationAttributes):\n print \"Twilio SMS. Destroy\"\n print \"Twilio SMS. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"==============================================\"\n print \"====TWILIO SMS AUTHENCATION===================\"\n print \"==============================================\"\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n sessionIdService = CdiUtil.bean(SessionIdService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n form_name = ServerUtil.getFirstValue(requestParameters, \"TwilioSmsloginForm\")\n\n print \"TwilioSMS. form_response_passcode: %s\" % str(form_passcode)\n\n if step == 1:\n print \"==============================================\"\n print \"=TWILIO SMS STEP 1 | Password Authentication==\"\n print \"==============================================\"\n credentials = self.identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print 'TwilioSMS, Error retrieving user %s from LDAP' % (user_name)\n return False\n\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n self.mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"mobile\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if self.mobile_number == None:\n print \"TwilioSMS, Error finding mobile number for user '%s'\" % user_name \n \n except:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print 'TwilioSMS, Error finding mobile number for \"%s\". Exception: %s` % (user_name, sys.exc_info()[1])`'\n return False\n\n # Generate Random six digit code and store it in array\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n sessionId.getSessionAttributes().put(\"code\", code)\n\n try:\n Twilio.init(self.ACCOUNT_SID, self.AUTH_TOKEN);\n message = Message.creator(PhoneNumber(self.mobile_number), PhoneNumber(self.FROM_NUMBER), str(code)).create();\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print 'TwilioSMs, Message Sid: %s' % (message.getSid())\n print 'TwilioSMs, User phone: %s' % (self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n sessionId.getSessionAttributes().put(\"mobile_number\", self.mobile_number)\n sessionId.getSessionAttributes().put(\"mobile\", self.mobile_number)\n sessionIdService.updateSessionId(sessionId)\n self.identity.setWorkingParameter(\"mobile_number\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\",self.mobile_number)\n self.identity.setWorkingParameter(\"mobile\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile\",self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"Number: %s\" % (self.identity.getWorkingParameter(\"mobile_number\"))\n print \"Mobile: %s\" % (self.identity.getWorkingParameter(\"mobile\"))\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"========================================\"\n print \"===TWILIO SMS FIRST STEP DONE PROPERLY==\"\n print \"========================================\"\n return True\n except Exception, ex:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n print \"TwilioSMS. Error sending message to Twilio\"\n print \"TwilioSMS. Unexpected error:\", ex\n\n return False\n elif step == 2:\n # Retrieve the session attribute\n print \"==============================================\"\n print \"=TWILIO SMS STEP 2 | Password Authentication==\"\n print \"==============================================\"\n code = session_attributes.get(\"code\")\n print '=======> Session code is \"%s\"' % str(code)\n sessionIdService = CdiUtil.bean(SessionIdService)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n code = sessionId.getSessionAttributes().get(\"code\")\n print '=======> Database code is \"%s\"' % str(code)\n self.identity.setSessionId(sessionId)\n print \"==============================================\"\n print \"TwilioSMS. Code: %s\" % str(code)\n print \"==============================================\"\n if code is None:\n print \"TwilioSMS. Failed to find previously sent code\"\n return False\n\n if form_passcode is None:\n print \"TwilioSMS. Passcode is empty\"\n return False\n\n if len(form_passcode) != 6:\n print \"TwilioSMS. Passcode from response is not 6 digits: %s\" % form_passcode\n return False\n\n if form_passcode == code:\n print \"TiwlioSMS, SUCCESS! User entered the same code!\"\n print \"========================================\"\n print \"===TWILIO SMS SECOND STEP DONE PROPERLY\"\n print \"========================================\"\n return True\n\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n print \"TwilioSMS. FAIL! User entered the wrong code! %s != %s\" % (form_passcode, code)\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Incorrect Twilio code, please try again.\")\n print \"================================================\"\n print \"===TWILIO SMS SECOND STEP FAILED: INCORRECT CODE\"\n print \"================================================\"\n return False\n\n print \"TwilioSMS. ERROR: step param not found or != (1|2)\"\n\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"TwilioSMS. Prepare for Step 1\"\n return True\n elif step == 2:\n print \"TwilioSMS. Prepare for Step 2\"\n return True\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "twilio_sms", "modified": false, "configurationProperties": [ { "hide": false, "value1": "twilio_sid", "description": "Twilio account SID" }, { "hide": false, "value1": "twilio_token", "description": "Twilio API token" }, { "hide": false, "value1": "from_number", "description": "Twilio phone number with SMS capabilities" } ], "baseDn": "inum=09A0-93D6,ou=scripts,o=jans" }, { "internal": false, "level": 45, "programmingLanguage": "python", "description": "SMPP SMS authentication module", "locationType": "ldap", "dn": "inum=09A0-93D7,ou=scripts,o=jans", "inum": "09A0-93D7", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n# Copyright (c) 2019, Tele2\n\n# Author: Jose Gonzalez\n# Author: Gasmyr Mougang\n# Author: Stefan Andersson\n\nfrom java.util import Arrays, Date\nfrom java.io import IOException\nfrom java.lang import Enum\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import ArrayHelper\nfrom io.jans.util import StringHelper\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nfrom org.jsmpp import InvalidResponseException, PDUException\nfrom org.jsmpp.bean import Alphabet, BindType, ESMClass, GeneralDataCoding, MessageClass, NumberingPlanIndicator, RegisteredDelivery, SMSCDeliveryReceipt, TypeOfNumber\nfrom org.jsmpp.extra import NegativeResponseException, ResponseTimeoutException\nfrom org.jsmpp.session import BindParameter, SMPPSession\nfrom org.jsmpp.util import AbsoluteTimeFormatter, TimeFormatter\nimport random\n\n\nclass SmppAttributeError(Exception):\n pass\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.identity = CdiUtil.bean(Identity)\n\n def get_and_parse_smpp_config(self, config, attribute, _type = None, convert = False, optional = False, default_desc = None):\n try:\n value = config.get(attribute).getValue2()\n except:\n if default_desc:\n default_desc = \" using default '{}'\".format(default_desc)\n else:\n default_desc = \"\"\n\n if optional:\n raise SmppAttributeError(\"SMPP missing optional configuration attribute '{}'{}\".format(attribute, default_desc))\n else:\n raise SmppAttributeError(\"SMPP missing required configuration attribute '{}'\".format(attribute))\n\n if _type and issubclass(_type, Enum):\n try:\n return getattr(_type, value)\n except AttributeError:\n raise SmppAttributeError(\"SMPP could not find attribute '{}' in {}\".format(attribute, _type))\n\n if convert:\n try:\n value = int(value)\n except AttributeError:\n try:\n value = int(value, 16)\n except AttributeError:\n raise SmppAttributeError(\"SMPP could not parse value '{}' of attribute '{}'\".format(value, attribute))\n\n return value\n\n def init(self, customScript, configurationAttributes):\n print(\"SMPP Initialization\")\n\n self.TIME_FORMATTER = AbsoluteTimeFormatter()\n\n self.SMPP_SERVER = None\n self.SMPP_PORT = None\n\n self.SYSTEM_ID = None\n self.PASSWORD = None\n\n # Setup some good defaults for TON, NPI and source (from) address\n # TON (Type of Number), NPI (Number Plan Indicator)\n self.SRC_ADDR_TON = TypeOfNumber.ALPHANUMERIC # Alphanumeric\n self.SRC_ADDR_NPI = NumberingPlanIndicator.ISDN # ISDN (E163/E164)\n self.SRC_ADDR = \"Janssen OTP\"\n\n # Don't touch these unless you know what your doing, we don't handle number reformatting for\n # any other type than international.\n self.DST_ADDR_TON = TypeOfNumber.INTERNATIONAL # International\n self.DST_ADDR_NPI = NumberingPlanIndicator.ISDN # ISDN (E163/E164)\n\n # Priority flag and data_coding bits\n self.PRIORITY_FLAG = 3 # Very Urgent (ANSI-136), Emergency (IS-95)\n self.DATA_CODING_ALPHABET = Alphabet.ALPHA_DEFAULT # SMS default alphabet\n self.DATA_CODING_MESSAGE_CLASS = MessageClass.CLASS1 # EM (Mobile Equipment (mobile memory), normal message\n\n # Required server settings\n try:\n self.SMPP_SERVER = self.get_and_parse_smpp_config(configurationAttributes, \"smpp_server\")\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SMPP_PORT = self.get_and_parse_smpp_config(configurationAttributes, \"smpp_port\", convert = True)\n except SmppAttributeError as e:\n print(e)\n\n if None in (self.SMPP_SERVER, self.SMPP_PORT):\n print(\"SMPP smpp_server and smpp_port is empty, will not enable SMPP service\")\n return False\n\n # Optional system_id and password for bind auth\n try:\n self.SYSTEM_ID = self.get_and_parse_smpp_config(configurationAttributes, \"system_id\", optional = True)\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.PASSWORD = self.get_and_parse_smpp_config(configurationAttributes, \"password\", optional = True)\n except SmppAttributeError as e:\n print(e)\n\n if None in (self.SYSTEM_ID, self.PASSWORD):\n print(\"SMPP Authentication disabled\")\n\n # From number and to number settings\n try:\n self.SRC_ADDR_TON = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr_ton\",\n _type = TypeOfNumber,\n optional = True,\n default_desc = self.SRC_ADDR_TON\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SRC_ADDR_NPI = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr_npi\",\n _type = NumberingPlanIndicator,\n optional = True,\n default_desc = self.SRC_ADDR_NPI\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SRC_ADDR = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr\",\n optional = True,\n default_desc = self.SRC_ADDR\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DST_ADDR_TON = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"dest_addr_ton\",\n _type = TypeOfNumber,\n optional = True,\n default_desc = self.DST_ADDR_TON\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DST_ADDR_NPI = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"dest_addr_npi\",\n _type = NumberingPlanIndicator,\n optional = True,\n default_desc = self.DST_ADDR_NPI\n )\n except SmppAttributeError as e:\n print(e)\n\n # Priority flag and data coding, don't touch these unless you know what your doing...\n try:\n self.PRIORITY_FLAG = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"priority_flag\",\n convert = True,\n optional = True,\n default_desc = \"3 (Very Urgent, Emergency)\"\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DATA_CODING_ALPHABET = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"data_coding_alphabet\",\n _type = Alphabet,\n optional = True,\n default_desc = self.DATA_CODING_ALPHABET\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DATA_CODING_MESSAGE_CLASS = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"data_coding_alphabet\",\n _type = MessageClass,\n optional = True,\n default_desc = self.DATA_CODING_MESSAGE_CLASS\n )\n except SmppAttributeError as e:\n print(e)\n\n print(\"SMPP Initialized successfully\")\n return True\n\n def destroy(self, configurationAttributes):\n print(\"SMPP Destroy\")\n print(\"SMPP Destroyed successfully\")\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n\n print(\"SMPP form_response_passcode: {}\".format(str(form_passcode)))\n\n if step == 1:\n print(\"SMPP Step 1 Password Authentication\")\n credentials = self.identity.getCredentials()\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print(\"SMPP Error retrieving user {} from LDAP\".format(user_name))\n return False\n\n mobile_number = None\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if not mobile_number:\n mobile_number = foundUser.getAttribute(\"mobile\")\n if not mobile_number:\n mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if not mobile_number:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print(\"SMPP Error finding mobile number for user '{}'\".format(user_name))\n return False\n except Exception as e:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print(\"SMPP Error finding mobile number for {}: {}\".format(user_name, e))\n return False\n\n # Generate Random six digit code\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n\n self.identity.setWorkingParameter(\"mobile_number\", mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\", mobile_number)\n if not self.sendMessage(mobile_number, str(code)):\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n return False\n\n return True\n elif step == 2:\n # Retrieve the session attribute\n print(\"SMPP Step 2 SMS/OTP Authentication\")\n code = session_attributes.get(\"code\")\n print(\"SMPP Code: {}\".format(str(code)))\n\n if code is None:\n print(\"SMPP Failed to find previously sent code\")\n return False\n\n if form_passcode is None:\n print(\"SMPP Passcode is empty\")\n return False\n\n if len(form_passcode) != 6:\n print(\"SMPP Passcode from response is not 6 digits: {}\".format(form_passcode))\n return False\n\n if form_passcode == code:\n print(\"SMPP SUCCESS! User entered the same code!\")\n return True\n\n print(\"SMPP failed, user entered the wrong code! {} != {}\".format(form_passcode, code))\n facesMessages.add(facesMessage.SEVERITY_ERROR, \"Incorrect SMS code, please try again.\")\n return False\n\n print(\"SMPP ERROR: step param not found or != (1|2)\")\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print(\"SMPP Prepare for Step 1\")\n return True\n elif step == 2:\n print(\"SMPP Prepare for Step 2\")\n return True\n\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def sendMessage(self, number, code):\n status = False\n session = SMPPSession()\n session.setTransactionTimer(10000)\n\n # We only handle international destination number reformatting.\n # All others may vary by configuration decisions taken on SMPP\n # server side which we have no clue about.\n if self.DST_ADDR_TON == TypeOfNumber.INTERNATIONAL and number.startswith(\"+\"):\n number = number[1:]\n\n try:\n print(\"SMPP Connecting\")\n reference_id = session.connectAndBind(\n self.SMPP_SERVER,\n self.SMPP_PORT,\n BindParameter(\n BindType.BIND_TX,\n self.SYSTEM_ID,\n self.PASSWORD,\n None,\n self.SRC_ADDR_TON,\n self.SRC_ADDR_NPI,\n None\n )\n )\n print(\"SMPP Connected to server with system id {}\".format(reference_id))\n\n try:\n message_id = session.submitShortMessage(\n \"CMT\",\n self.SRC_ADDR_TON,\n self.SRC_ADDR_NPI,\n self.SRC_ADDR,\n self.DST_ADDR_TON,\n self.DST_ADDR_NPI,\n number,\n ESMClass(),\n 0,\n self.PRIORITY_FLAG,\n self.TIME_FORMATTER.format(Date()),\n None,\n RegisteredDelivery(SMSCDeliveryReceipt.DEFAULT),\n 0,\n GeneralDataCoding(\n self.DATA_CODING_ALPHABET,\n self.DATA_CODING_MESSAGE_CLASS,\n False\n ),\n 0,\n code\n )\n print(\"SMPP Message '{}' sent to #{} with message id {}\".format(code, number, message_id))\n status = True\n except PDUException as e:\n print(\"SMPP Invalid PDU parameter: {}\".format(e))\n except ResponseTimeoutException as e:\n print(\"SMPP Response timeout: {}\".format(e))\n except InvalidResponseException as e:\n print(\"SMPP Receive invalid response: {}\".format(e))\n except NegativeResponseException as e:\n print(\"SMPP Receive negative response: {}\".format(e))\n except IOException as e:\n print(\"SMPP IO error occured: {}\".format(e))\n finally:\n session.unbindAndClose()\n except IOException as e:\n print(\"SMPP Failed connect and bind to host: {}\".format(e))\n\n return status\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "smpp", "modified": false, "configurationProperties": [ { "hide": false, "value1": "smpp_server", "description": "IP or FQDN of SMPP server" }, { "hide": false, "value1": "smpp_port", "description": "TCP port of the SMPP server" }, { "hide": false, "value1": "system_id", "description": "Use if SMPP server requires authentication" }, { "hide": false, "value1": "password", "description": "Use if SMPP server requires authentication" }, { "hide": false, "value1": "source_addr_ton", "description": "Type of number, eg ALPHANUMERIC, INTERNATIONAL" }, { "hide": false, "value1": "source_addr", "description": "From number/name" } ], "baseDn": "inum=09A0-93D7,ou=scripts,o=jans" }, { "internal": false, "level": 30, "programmingLanguage": "python", "description": "Cert authentication module", "locationType": "ldap", "dn": "inum=2124-0CF1,ou=scripts,o=jans", "inum": "2124-0CF1", "script": "#\n# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom jakarta.faces.context import FacesContext\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.as.common.service.common import EncryptionService\nfrom java.util import Arrays\nfrom io.jans.as.common.cert.fingerprint import FingerprintHelper\nfrom io.jans.as.common.cert.validation import GenericCertificateVerifier\nfrom io.jans.as.common.cert.validation import PathCertificateVerifier\nfrom io.jans.as.common.cert.validation import OCSPCertificateVerifier\nfrom io.jans.as.common.cert.validation import CRLCertificateVerifier\nfrom io.jans.as.common.cert.validation.model import ValidationStatus\nfrom io.jans.as.server.util import CertUtil\nfrom io.jans.as.model.util import CertUtils\nfrom io.jans.as.server.service.net import HttpService\nfrom org.apache.http.params import CoreConnectionPNames\n\nimport sys\nimport base64\nimport urllib\n\nimport java\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Cert. Initialization\"\n\n if not (configurationAttributes.containsKey(\"chain_cert_file_path\")):\n print \"Cert. Initialization. Property chain_cert_file_path is mandatory\"\n return False\n\n if not (configurationAttributes.containsKey(\"map_user_cert\")):\n print \"Cert. Initialization. Property map_user_cert is mandatory\"\n return False\n\n chain_cert_file_path = configurationAttributes.get(\"chain_cert_file_path\").getValue2()\n\n self.chain_certs = CertUtil.loadX509CertificateFromFile(chain_cert_file_path)\n if self.chain_certs == None:\n print \"Cert. Initialization. Failed to load chain certificates from '%s'\" % chain_cert_file_path\n return False\n\n print \"Cert. Initialization. Loaded '%d' chain certificates\" % self.chain_certs.size()\n \n crl_max_response_size = 5 * 1024 * 1024 # 10Mb\n if configurationAttributes.containsKey(\"crl_max_response_size\"):\n crl_max_response_size = StringHelper.toInteger(configurationAttributes.get(\"crl_max_response_size\").getValue2(), crl_max_response_size)\n print \"Cert. Initialization. CRL max response size is '%d'\" % crl_max_response_size\n\n # Define array to order methods correctly\n self.validator_types = [ 'generic', 'path', 'ocsp', 'crl']\n self.validators = { 'generic' : [GenericCertificateVerifier(), False],\n 'path' : [PathCertificateVerifier(False), False],\n 'ocsp' : [OCSPCertificateVerifier(), False],\n 'crl' : [CRLCertificateVerifier(crl_max_response_size), False] }\n\n for type in self.validator_types:\n validator_param_name = \"use_%s_validator\" % type\n if configurationAttributes.containsKey(validator_param_name):\n validator_status = StringHelper.toBoolean(configurationAttributes.get(validator_param_name).getValue2(), False)\n self.validators[type][1] = validator_status\n\n print \"Cert. Initialization. Validation method '%s' status: '%s'\" % (type, self.validators[type][1])\n\n self.map_user_cert = StringHelper.toBoolean(configurationAttributes.get(\"map_user_cert\").getValue2(), False)\n print \"Cert. Initialization. map_user_cert: '%s'\" % self.map_user_cert\n\n self.enabled_recaptcha = self.initRecaptcha(configurationAttributes)\n print \"Cert. Initialization. enabled_recaptcha: '%s'\" % self.enabled_recaptcha\n\n print \"Cert. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Cert. Destroy\"\n\n for type in self.validator_types:\n self.validators[type][0].destroy()\n\n print \"Cert. Destroyed successfully\"\n\n return True\n\n def getApiVersion(self):\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n print \"Cert. Authenticate for step 1\"\n login_button = ServerUtil.getFirstValue(requestParameters, \"loginForm:loginButton\")\n if StringHelper.isEmpty(login_button):\n print \"Cert. Authenticate for step 1. Form were submitted incorrectly\"\n return False\n if self.enabled_recaptcha:\n print \"Cert. Authenticate for step 1. Validating recaptcha response\"\n recaptcha_response = ServerUtil.getFirstValue(requestParameters, \"g-recaptcha-response\")\n\n recaptcha_result = self.validateRecaptcha(recaptcha_response)\n print \"Cert. Authenticate for step 1. recaptcha_result: '%s'\" % recaptcha_result\n \n return recaptcha_result\n\n return True\n elif step == 2:\n print \"Cert. Authenticate for step 2\"\n\n # Validate if user selected certificate\n cert_x509 = self.getSessionAttribute(\"cert_x509\")\n if cert_x509 == None:\n print \"Cert. Authenticate for step 2. User not selected any certs\"\n identity.setWorkingParameter(\"cert_selected\", False)\n \n # Return True to inform user how to reset workflow\n return True\n else:\n identity.setWorkingParameter(\"cert_selected\", True)\n x509Certificate = self.certFromString(cert_x509)\n\n subjectX500Principal = x509Certificate.getSubjectX500Principal()\n print \"Cert. Authenticate for step 2. User selected certificate with DN '%s'\" % subjectX500Principal\n \n # Validate certificates which user selected\n valid = self.validateCertificate(x509Certificate)\n if not valid:\n print \"Cert. Authenticate for step 2. Certificate DN '%s' is not valid\" % subjectX500Principal\n identity.setWorkingParameter(\"cert_valid\", False)\n \n # Return True to inform user how to reset workflow\n return True\n\n identity.setWorkingParameter(\"cert_valid\", True)\n \n # Calculate certificate fingerprint\n x509CertificateFingerprint = self.calculateCertificateFingerprint(x509Certificate)\n identity.setWorkingParameter(\"cert_x509_fingerprint\", x509CertificateFingerprint)\n print \"Cert. Authenticate for step 2. Fingerprint is '%s' of certificate with DN '%s'\" % (x509CertificateFingerprint, subjectX500Principal)\n \n # Attempt to find user by certificate fingerprint\n cert_user_external_uid = \"cert:%s\" % x509CertificateFingerprint\n print \"Cert. Authenticate for step 2. Attempting to find user by jansExtUid attribute value %s\" % cert_user_external_uid\n\n find_user_by_external_uid = userService.getUserByAttribute(\"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n print \"Cert. Authenticate for step 2. Failed to find user\"\n \n if self.map_user_cert:\n print \"Cert. Authenticate for step 2. Storing cert_user_external_uid for step 3\"\n identity.setWorkingParameter(\"cert_user_external_uid\", cert_user_external_uid)\n return True\n else:\n print \"Cert. Authenticate for step 2. Mapping cert to user account is not allowed\"\n identity.setWorkingParameter(\"cert_count_login_steps\", 2)\n return False\n\n foundUserName = find_user_by_external_uid.getUserId()\n print \"Cert. Authenticate for step 2. foundUserName: \" + foundUserName\n\n logged_in = False\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(foundUserName)\n \n print \"Cert. Authenticate for step 2. Setting count steps to 2\"\n identity.setWorkingParameter(\"cert_count_login_steps\", 2)\n\n return logged_in\n elif step == 3:\n print \"Cert. Authenticate for step 3\"\n\n cert_user_external_uid = self.getSessionAttribute(\"cert_user_external_uid\")\n if cert_user_external_uid == None:\n print \"Cert. Authenticate for step 3. cert_user_external_uid is empty\"\n return False\n\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return False\n\n # Double check just to make sure. We did checking in previous step\n # Check if there is user which has cert_user_external_uid\n # Avoid mapping user cert to more than one IDP account\n find_user_by_external_uid = userService.getUserByAttribute(\"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n # Add cert_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n print \"Cert. Authenticate for step 3. Failed to update current user\"\n return False\n\n return True\n \n return True\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n print \"Cert. Prepare for step %d\" % step\n identity = CdiUtil.bean(Identity)\n \n if step == 1:\n if self.enabled_recaptcha:\n identity.setWorkingParameter(\"recaptcha_site_key\", self.recaptcha_creds['site_key'])\n elif step == 2:\n # Store certificate in session\n facesContext = CdiUtil.bean(FacesContext)\n externalContext = facesContext.getExternalContext()\n request = externalContext.getRequest()\n\n # Try to get certificate from header X-ClientCert\n clientCertificate = externalContext.getRequestHeaderMap().get(\"X-ClientCert\")\n if clientCertificate != None:\n x509Certificate = self.certFromPemString(clientCertificate)\n identity.setWorkingParameter(\"cert_x509\", self.certToString(x509Certificate))\n print \"Cert. Prepare for step 2. Storing user certificate obtained from 'X-ClientCert' header\"\n return True\n\n # Try to get certificate from attribute jakarta.servlet.request.X509Certificate\n x509Certificates = request.getAttribute('jakarta.servlet.request.X509Certificate')\n if (x509Certificates != None) and (len(x509Certificates) > 0):\n identity.setWorkingParameter(\"cert_x509\", self.certToString(x509Certificates[0]))\n print \"Cert. Prepare for step 2. Storing user certificate obtained from 'jakarta.servlet.request.X509Certificate' attribute\"\n return True\n\n if step < 4:\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"cert_selected\", \"cert_valid\", \"cert_x509\", \"cert_x509_fingerprint\", \"cert_count_login_steps\", \"cert_user_external_uid\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n cert_count_login_steps = self.getSessionAttribute(\"cert_count_login_steps\")\n if cert_count_login_steps != None:\n return cert_count_login_steps\n else:\n return 3\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n return \"/auth/cert/login.xhtml\"\n if step == 2:\n return \"/auth/cert/cert-login.xhtml\"\n elif step == 3:\n cert_selected = self.getSessionAttribute(\"cert_selected\")\n if True != cert_selected:\n return \"/auth/cert/cert-not-selected.xhtml\"\n\n cert_valid = self.getSessionAttribute(\"cert_valid\")\n if True != cert_valid:\n return \"/auth/cert/cert-invalid.xhtml\"\n \n return \"/login.xhtml\"\n\n return \"\"\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def processBasicAuthentication(self, credentials):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if (find_user_by_uid == None):\n print \"Cert. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def getSessionAttribute(self, attribute_name):\n identity = CdiUtil.bean(Identity)\n\n # Try to get attribute value from Seam event context\n if identity.isSetWorkingParameter(attribute_name):\n return identity.getWorkingParameter(attribute_name)\n \n # Try to get attribute from persistent session\n session_id = identity.getSessionId()\n if session_id == None:\n return None\n\n session_attributes = session_id.getSessionAttributes()\n if session_attributes == None:\n return None\n\n if session_attributes.containsKey(attribute_name):\n return session_attributes.get(attribute_name)\n\n return None\n\n def calculateCertificateFingerprint(self, x509Certificate):\n print \"Cert. Calculate fingerprint for certificate DN '%s'\" % x509Certificate.getSubjectX500Principal()\n \n publicKey = x509Certificate.getPublicKey()\n \n # Use oxAuth implementation\n fingerprint = FingerprintHelper.getPublicKeySshFingerprint(publicKey)\n \n return fingerprint \n\n def validateCertificate(self, x509Certificate):\n subjectX500Principal = x509Certificate.getSubjectX500Principal()\n\n print \"Cert. Validating certificate with DN '%s'\" % subjectX500Principal\n \n validation_date = java.util.Date()\n\n for type in self.validator_types:\n if self.validators[type][1]:\n result = self.validators[type][0].validate(x509Certificate, self.chain_certs, validation_date)\n print \"Cert. Validate certificate: '%s'. Validation method '%s' result: '%s'\" % (subjectX500Principal, type, result)\n \n if (result.getValidity() != ValidationStatus.CertificateValidity.VALID):\n print \"Cert. Certificate: '%s' is invalid\" % subjectX500Principal\n return False\n \n return True\n\n def certToString(self, x509Certificate):\n if x509Certificate == None:\n return None\n return base64.b64encode(x509Certificate.getEncoded())\n\n def certFromString(self, x509CertificateEncoded):\n x509CertificateDecoded = base64.b64decode(x509CertificateEncoded)\n return CertUtils.x509CertificateFromBytes(x509CertificateDecoded)\n\n def certFromPemString(self, pemCertificate):\n x509CertificateEncoded = pemCertificate.replace(\"-----BEGIN CERTIFICATE-----\", \"\").replace(\"-----END CERTIFICATE-----\", \"\").strip()\n return self.certFromString(x509CertificateEncoded)\n\n def initRecaptcha(self, configurationAttributes):\n print \"Cert. Initialize recaptcha\"\n if not configurationAttributes.containsKey(\"credentials_file\"):\n return False\n\n cert_creds_file = configurationAttributes.get(\"credentials_file\").getValue2()\n\n # Load credentials from file\n f = open(cert_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n except:\n print \"Cert. Initialize recaptcha. Failed to load credentials from file: %s\" % cert_creds_file\n return False\n finally:\n f.close()\n \n try:\n recaptcha_creds = creds[\"recaptcha\"]\n except:\n print \"Cert. Initialize recaptcha. Invalid credentials file '%s' format:\" % cert_creds_file\n return False\n \n self.recaptcha_creds = None\n if recaptcha_creds[\"enabled\"]:\n print \"Cert. Initialize recaptcha. Recaptcha is enabled\"\n\n encryptionService = CdiUtil.bean(EncryptionService)\n\n site_key = recaptcha_creds[\"site_key\"]\n secret_key = recaptcha_creds[\"secret_key\"]\n\n try:\n site_key = encryptionService.decrypt(site_key)\n except:\n # Ignore exception. Value is not encrypted\n print \"Cert. Initialize recaptcha. Assuming that 'site_key' in not encrypted\"\n\n try:\n secret_key = encryptionService.decrypt(secret_key)\n except:\n # Ignore exception. Value is not encrypted\n print \"Cert. Initialize recaptcha. Assuming that 'secret_key' in not encrypted\"\n\n \n self.recaptcha_creds = { 'site_key' : site_key, \"secret_key\" : secret_key }\n print \"Cert. Initialize recaptcha. Recaptcha is configured correctly\"\n\n return True\n else:\n print \"Cert. Initialize recaptcha. Recaptcha is disabled\"\n\n return False\n\n def validateRecaptcha(self, recaptcha_response):\n print \"Cert. Validate recaptcha response\"\n\n facesContext = CdiUtil.bean(FacesContext)\n request = facesContext.getExternalContext().getRequest()\n\n remoteip = ServerUtil.getIpAddress(request)\n print \"Cert. Validate recaptcha response. remoteip: '%s'\" % remoteip\n\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n http_client_params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15 * 1000)\n \n recaptcha_validation_url = \"https://www.google.com/recaptcha/api/siteverify\"\n recaptcha_validation_request = urllib.urlencode({ \"secret\" : self.recaptcha_creds['secret_key'], \"response\" : recaptcha_response, \"remoteip\" : remoteip })\n recaptcha_validation_headers = { \"Content-type\" : \"application/x-www-form-urlencoded\", \"Accept\" : \"application/json\" }\n\n try:\n http_service_response = httpService.executePost(http_client, recaptcha_validation_url, None, recaptcha_validation_headers, recaptcha_validation_request)\n http_response = http_service_response.getHttpResponse()\n except:\n print \"Cert. Validate recaptcha response. Exception: \", sys.exc_info()[1]\n return False\n\n try:\n if not httpService.isResponseStastusCodeOk(http_response):\n print \"Cert. Validate recaptcha response. Get invalid response from validation server: \", str(http_response.getStatusLine().getStatusCode())\n httpService.consume(http_response)\n return False\n \n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes)\n httpService.consume(http_response)\n finally:\n http_service_response.closeConnection()\n\n if response_string == None:\n print \"Cert. Validate recaptcha response. Get empty response from validation server\"\n return False\n \n response = json.loads(response_string)\n \n return response[\"success\"]\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "cert", "modified": false, "configurationProperties": [ { "hide": false, "value2": "/etc/certs/chain_cert.pem", "value1": "chain_cert_file_path" }, { "hide": false, "value2": "/etc/certs/cert_creds.json", "value1": "credentials_file" }, { "hide": false, "value2": "true", "value1": "map_user_cert" }, { "hide": false, "value2": "true", "value1": "use_generic_validator" }, { "hide": false, "value2": "true", "value1": "use_path_validator" }, { "hide": false, "value2": "false", "value1": "use_ocsp_validator" }, { "hide": false, "value2": "false", "value1": "use_crl_validator" }, { "hide": false, "value2": "10485760", "value1": "crl_max_response_size" } ], "baseDn": "inum=2124-0CF1,ou=scripts,o=jans" }, { "internal": false, "level": 40, "programmingLanguage": "python", "description": "OTP Validation of passwords using Yubicloud authentication module", "locationType": "ldap", "dn": "inum=24FD-B96E,ou=scripts,o=jans", "inum": "24FD-B96E", "script": "# Janssen Project software is available under the Apache License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan, Arunmozhi\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper\n\nimport java\n\nimport urllib2\nimport urllib\nimport uuid\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Yubicloud. Initialization\"\n\n self.api_server = configurationAttributes.get(\"yubicloud_uri\").getValue2()\n self.api_key = configurationAttributes.get(\"yubicloud_api_key\").getValue2()\n self.client_id = configurationAttributes.get(\"yubicloud_id\").getValue2()\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Yubicloud. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Yubicloud. Authenticate for step 1\"\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n username = credentials.getUsername()\n otp = credentials.getPassword()\n\n # Validate otp length\n if len(otp) < 32 or len(otp) > 48:\n print \"Yubicloud. Invalid OTP length\"\n return False\n\n user_service = CdiUtil.bean(UserService)\n user = user_service.getUser(username)\n\n public_key = user.getAttribute('yubikeyId')\n\n # Match the user with the yubikey\n if public_key not in otp:\n print \"Yubicloud. Public Key not matching OTP\"\n return False\n\n data = \"\"\n try:\n nonce = str(uuid.uuid4()).replace(\"-\", \"\")\n params = urllib.urlencode({\"id\": self.client_id, \"otp\": otp, \"nonce\": nonce})\n url = \"https://\" + self.api_server + \"/wsapi/2.0/verify/?\" + params\n f = urllib2.urlopen(url)\n data = f.read()\n except Exception as e:\n print \"Yubicloud. Exception \", e\n\n if 'status=OK' in data:\n user_service.authenticate(username)\n print \"Yubicloud. Authentication Successful\"\n return True\n\n print \"Yubicloud. End of Step 1. Returning False.\"\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Yubicloud. Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "yubicloud", "modified": false, "configurationProperties": [ { "hide": false, "value2": "api.yubico.com", "value1": "yubicloud_uri" }, { "hide": false, "value1": "yubicloud_api_key" }, { "hide": false, "value1": "yubicloud_id" } ], "baseDn": "inum=24FD-B96E,ou=scripts,o=jans" }, { "internal": false, "level": 20, "programmingLanguage": "python", "description": "Basic (with user locking) authentication module", "locationType": "ldap", "dn": "inum=4BBE-C6A8,ou=scripts,o=jans", "inum": "4BBE-C6A8", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n# Author: Gasmyr Mougang\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.service import CacheService\nfrom io.jans.util import StringHelper\nfrom io.jans.orm.exception import AuthenticationException\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\nfrom java.time import LocalDateTime, Duration\nfrom java.time.format import DateTimeFormatter\n\nimport java\nimport datetime\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Basic (lock account). Initialization\"\n\n self.invalidLoginCountAttribute = \"jansCountInvalidLogin\"\n if configurationAttributes.containsKey(\"invalid_login_count_attribute\"):\n self.invalidLoginCountAttribute = configurationAttributes.get(\"invalid_login_count_attribute\").getValue2()\n else:\n print \"Basic (lock account). Initialization. Using default attribute\"\n\n self.maximumInvalidLoginAttemps = 3\n if configurationAttributes.containsKey(\"maximum_invalid_login_attemps\"):\n self.maximumInvalidLoginAttemps = StringHelper.toInteger(configurationAttributes.get(\"maximum_invalid_login_attemps\").getValue2())\n else:\n print \"Basic (lock account). Initialization. Using default number attempts\"\n\n self.lockExpirationTime = 180\n if configurationAttributes.containsKey(\"lock_expiration_time\"):\n self.lockExpirationTime = StringHelper.toInteger(configurationAttributes.get(\"lock_expiration_time\").getValue2())\n else:\n print \"Basic (lock account). Initialization. Using default lock expiration time\"\n\n\n print \"Basic (lock account). Initialized successfully. invalid_login_count_attribute: '%s', maximum_invalid_login_attemps: '%s', lock_expiration_time: '%s'\" % (self.invalidLoginCountAttribute, self.maximumInvalidLoginAttemps, self.lockExpirationTime)\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Basic (lock account). Destroy\"\n print \"Basic (lock account). Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n print \"Basic (lock account). Authenticate for step 1\"\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n cacheService = CdiUtil.bean(CacheService)\n userService = CdiUtil.bean(UserService)\n\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n try:\n logged_in = authenticationService.authenticate(user_name, user_password)\n except AuthenticationException:\n print \"Basic (lock account). Authenticate. Failed to authenticate user '%s'\" % user_name\n\n if logged_in:\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(0))\n else:\n countInvalidLoginArributeValue = self.getUserAttributeValue(user_name, self.invalidLoginCountAttribute)\n userSatus = self.getUserAttributeValue(user_name, \"jansStatus\")\n print \"Current user '%s' status is '%s'\" % ( user_name, userSatus )\n\n countInvalidLogin = StringHelper.toInteger(countInvalidLoginArributeValue, 0)\n\n if countInvalidLogin < self.maximumInvalidLoginAttemps:\n countInvalidLogin = countInvalidLogin + 1\n remainingAttempts = self.maximumInvalidLoginAttemps - countInvalidLogin\n\n print \"Remaining login count attempts '%s' for user '%s'\" % ( remainingAttempts, user_name )\n\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(countInvalidLogin))\n if remainingAttempts > 0 and userSatus == \"active\":\n facesMessages.add(FacesMessage.SEVERITY_INFO, StringHelper.toString(remainingAttempts)+\" more attempt(s) before account is LOCKED!\")\n\n if (countInvalidLogin >= self.maximumInvalidLoginAttemps) and ((userSatus == None) or (userSatus == \"active\")):\n print \"Basic (lock account). Locking '%s' for '%s' seconds\" % ( user_name, self.lockExpirationTime)\n self.lockUser(user_name)\n return False\n\n if (countInvalidLogin >= self.maximumInvalidLoginAttemps) and userSatus == \"inactive\":\n print \"Basic (lock account). User '%s' is locked. Checking if we can unlock him\" % user_name\n \n unlock_and_authenticate = False\n\n object_from_store = cacheService.get(None, \"lock_user_\" + user_name)\n if object_from_store == None:\n # Object in cache was expired. We need to unlock user\n print \"Basic (lock account). User locking details for user '%s' not exists\" % user_name\n unlock_and_authenticate = True\n else:\n # Analyze object from cache\n user_lock_details = json.loads(object_from_store)\n\n user_lock_details_locked = user_lock_details['locked']\n user_lock_details_created = user_lock_details['created']\n user_lock_details_created_date = LocalDateTime.parse(user_lock_details_created, DateTimeFormatter.ISO_LOCAL_DATE_TIME)\n user_lock_details_created_diff = Duration.between(user_lock_details_created_date, LocalDateTime.now()).getSeconds()\n print \"Basic (lock account). Get user '%s' locking details. locked: '%s', Created: '%s', Difference in seconds: '%s'\" % ( user_name, user_lock_details_locked, user_lock_details_created, user_lock_details_created_diff )\n\n if user_lock_details_locked and user_lock_details_created_diff >= self.lockExpirationTime:\n print \"Basic (lock account). Unlocking user '%s' after lock expiration\" % user_name\n unlock_and_authenticate = True\n\n if unlock_and_authenticate:\n self.unLockUser(user_name)\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(0))\n logged_in = authenticationService.authenticate(user_name, user_password)\n if not logged_in:\n # Update number of attempts \n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(1))\n if self.maximumInvalidLoginAttemps == 1:\n # Lock user if maximum count login attempts is 1 \n self.lockUser(user_name)\n return False\n\n\n return logged_in\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"Basic (lock account). Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def getUserAttributeValue(self, user_name, attribute_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n\n find_user_by_uid = userService.getUser(user_name, attribute_name)\n if find_user_by_uid == None:\n return None\n\n custom_attribute_value = userService.getCustomAttribute(find_user_by_uid, attribute_name)\n if custom_attribute_value == None:\n return None\n \n attribute_value = custom_attribute_value.getValue()\n\n print \"Basic (lock account). Get user attribute. User's '%s' attribute '%s' value is '%s'\" % (user_name, attribute_name, attribute_value)\n\n return attribute_value\n\n def setUserAttributeValue(self, user_name, attribute_name, attribute_value):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n\n find_user_by_uid = userService.getUser(user_name)\n if find_user_by_uid == None:\n return None\n \n userService.setCustomAttribute(find_user_by_uid, attribute_name, attribute_value)\n updated_user = userService.updateUser(find_user_by_uid)\n\n print \"Basic (lock account). Set user attribute. User's '%s' attribute '%s' value is '%s'\" % (user_name, attribute_name, attribute_value)\n\n return updated_user\n\n def lockUser(self, user_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n cacheService= CdiUtil.bean(CacheService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n find_user_by_uid = userService.getUser(user_name)\n if (find_user_by_uid == None):\n return None\n\n status_attribute_value = userService.getCustomAttribute(find_user_by_uid, \"gluuStatus\")\n if status_attribute_value != None:\n user_status = status_attribute_value.getValue()\n if StringHelper.equals(user_status, \"inactive\"):\n print \"Basic (lock account). Lock user. User '%s' locked already\" % user_name\n return\n \n userService.setCustomAttribute(find_user_by_uid, \"gluuStatus\", \"inactive\")\n updated_user = userService.updateUser(find_user_by_uid)\n\n object_to_store = json.dumps({'locked': True, 'created': LocalDateTime.now().toString()}, separators=(',',':'))\n\n cacheService.put(StringHelper.toString(self.lockExpirationTime), \"lock_user_\"+user_name, object_to_store);\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Your account is locked. Please try again after \" + StringHelper.toString(self.lockExpirationTime) + \" secs\")\n\n print \"Basic (lock account). Lock user. User '%s' locked\" % user_name\n\n def unLockUser(self, user_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n cacheService= CdiUtil.bean(CacheService)\n\n find_user_by_uid = userService.getUser(user_name)\n if (find_user_by_uid == None):\n return None\n\n object_to_store = json.dumps({'locked': False, 'created': LocalDateTime.now().toString()}, separators=(',',':'))\n cacheService.put(StringHelper.toString(self.lockExpirationTime), \"lock_user_\"+user_name, object_to_store);\n\n userService.setCustomAttribute(find_user_by_uid, \"jansStatus\", \"active\")\n userService.setCustomAttribute(find_user_by_uid, self.invalidLoginCountAttribute, None)\n updated_user = userService.updateUser(find_user_by_uid)\n\n\n print \"Basic (lock account). Lock user. User '%s' unlocked\" % user_name\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "basic_lock", "modified": false, "configurationProperties": [ { "hide": false, "value2": "oxCountInvalidLogin", "value1": "invalid_login_count_attribute" }, { "hide": false, "value2": "3", "value1": "maximum_invalid_login_attemps" }, { "hide": false, "value2": "120", "value1": "lock_expiration_time" } ], "baseDn": "inum=4BBE-C6A8,ou=scripts,o=jans" }, { "internal": false, "level": 40, "programmingLanguage": "python", "description": "HOTP/TOPT authentication module", "locationType": "ldap", "dn": "inum=5018-D4BF,ou=scripts,o=jans", "inum": "5018-D4BF", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\n# Requires the following custom properties and values:\n# otp_type: totp/hotp\n# issuer: Janssen Inc\n# otp_conf_file: /etc/certs/otp_configuration.json\n#\n# These are non mandatory custom properties and values:\n# label: Janssen OTP\n# qr_options: { width: 400, height: 400 }\n# registration_uri: https://ce-dev.jans.org/identity/register\n\nimport jarray\nimport json\nimport sys\nfrom com.google.common.io import BaseEncoding\nfrom com.lochbridge.oath.otp import HOTP\nfrom com.lochbridge.oath.otp import HOTPValidator\nfrom com.lochbridge.oath.otp import HmacShaAlgorithm\nfrom com.lochbridge.oath.otp import TOTP\nfrom com.lochbridge.oath.otp.keyprovisioning import OTPAuthURIBuilder\nfrom com.lochbridge.oath.otp.keyprovisioning import OTPKey\nfrom com.lochbridge.oath.otp.keyprovisioning.OTPKey import OTPType\nfrom java.security import SecureRandom\nfrom java.util import Arrays\nfrom java.util.concurrent import TimeUnit\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"OTP. Initialization\"\n\n if not configurationAttributes.containsKey(\"otp_type\"):\n print \"OTP. Initialization. Property otp_type is mandatory\"\n return False\n self.otpType = configurationAttributes.get(\"otp_type\").getValue2()\n\n if not self.otpType in [\"hotp\", \"totp\"]:\n print \"OTP. Initialization. Property value otp_type is invalid\"\n return False\n\n if not configurationAttributes.containsKey(\"issuer\"):\n print \"OTP. Initialization. Property issuer is mandatory\"\n return False\n self.otpIssuer = configurationAttributes.get(\"issuer\").getValue2()\n\n self.customLabel = None\n if configurationAttributes.containsKey(\"label\"):\n self.customLabel = configurationAttributes.get(\"label\").getValue2()\n\n self.customQrOptions = {}\n if configurationAttributes.containsKey(\"qr_options\"):\n self.customQrOptions = configurationAttributes.get(\"qr_options\").getValue2()\n\n self.registrationUri = None\n if configurationAttributes.containsKey(\"registration_uri\"):\n self.registrationUri = configurationAttributes.get(\"registration_uri\").getValue2()\n\n validOtpConfiguration = self.loadOtpConfiguration(configurationAttributes)\n if not validOtpConfiguration:\n return False\n\n print \"OTP. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"OTP. Destroy\"\n print \"OTP. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n print \"getNextStep Invoked\"\n # If user not pass current step change step to previous\n identity = CdiUtil.bean(Identity)\n retry_current_step = identity.getWorkingParameter(\"retry_current_step\")\n if retry_current_step:\n print \"OTP. Get next step. Retrying current step %s\" % step\n # Remove old QR code\n #identity.setWorkingParameter(\"super_gluu_request\", \"timeout\")\n resultStep = step\n return resultStep\n return -1\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n self.setRequestScopedParameters(identity)\n\n if step == 1:\n print \"OTP. Authenticate for step 1\"\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n otp_auth_method = \"authenticate\"\n # Uncomment this block if you need to allow user second OTP registration\n #enrollment_mode = ServerUtil.getFirstValue(requestParameters, \"loginForm:registerButton\")\n #if StringHelper.isNotEmpty(enrollment_mode):\n # otp_auth_method = \"enroll\"\n\n if otp_auth_method == \"authenticate\":\n user_enrollments = self.findEnrollments(authenticated_user.getUserId())\n if len(user_enrollments) == 0:\n otp_auth_method = \"enroll\"\n print \"OTP. Authenticate for step 1. There is no OTP enrollment for user '%s'. Changing otp_auth_method to '%s'\" % (authenticated_user.getUserId(), otp_auth_method)\n\n if otp_auth_method == \"enroll\":\n print \"OTP. Authenticate for step 1. Setting count steps: '%s'\" % 3\n identity.setWorkingParameter(\"otp_count_login_steps\", 3)\n\n print \"OTP. Authenticate for step 1. otp_auth_method: '%s'\" % otp_auth_method\n identity.setWorkingParameter(\"otp_auth_method\", otp_auth_method)\n\n return True\n elif step == 2:\n print \"OTP. Authenticate for step 2\"\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Authenticate for step 2. Failed to determine user name\"\n return False\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n # Restore state from session\n identity.setWorkingParameter(\"retry_current_step\", False)\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if otp_auth_method == 'enroll':\n auth_result = ServerUtil.getFirstValue(requestParameters, \"auth_result\")\n if not StringHelper.isEmpty(auth_result):\n # defect fix #1225 - Retry the step, show QR code again\n if auth_result == 'timeout':\n\t\t\t\t\t\tprint \"OTP. QR-code timeout. Authenticate for step %s. Reinitializing current step\" % step\n\t\t\t\t\t\tidentity.setWorkingParameter(\"retry_current_step\", True)\n\t\t\t\t\t\treturn True\n\n print \"OTP. Authenticate for step 2. User not enrolled OTP\"\n return False\n\n print \"OTP. Authenticate for step 2. Skipping this step during enrollment\"\n return True\n\n otp_auth_result = self.processOtpAuthentication(requestParameters, user.getUserId(), identity, otp_auth_method)\n print \"OTP. Authenticate for step 2. OTP authentication result: '%s'\" % otp_auth_result\n\n return otp_auth_result\n elif step == 3:\n print \"OTP. Authenticate for step 3\"\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Authenticate for step 2. Failed to determine user name\"\n return False\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n # Restore state from session\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if otp_auth_method != 'enroll':\n return False\n\n otp_auth_result = self.processOtpAuthentication(requestParameters, user.getUserId(), identity, otp_auth_method)\n print \"OTP. Authenticate for step 3. OTP authentication result: '%s'\" % otp_auth_result\n\n return otp_auth_result\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n self.setRequestScopedParameters(identity)\n\n if step == 1:\n print \"OTP. Prepare for step 1\"\n\n return True\n elif step == 2:\n print \"OTP. Prepare for step 2\"\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Prepare for step 2. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Prepare for step 2. Failed to load user enty\"\n return False\n\n if self.otpType == \"hotp\":\n otp_secret_key = self.generateSecretHotpKey()\n otp_enrollment_request = self.generateHotpSecretKeyUri(otp_secret_key, self.otpIssuer, user.getAttribute(\"displayName\"))\n elif self.otpType == \"totp\":\n otp_secret_key = self.generateSecretTotpKey()\n otp_enrollment_request = self.generateTotpSecretKeyUri(otp_secret_key, self.otpIssuer, user.getAttribute(\"displayName\"))\n else:\n print \"OTP. Prepare for step 2. Unknown OTP type: '%s'\" % self.otpType\n return False\n\n print \"OTP. Prepare for step 2. Prepared enrollment request for user: '%s'\" % user.getUserId()\n identity.setWorkingParameter(\"otp_secret_key\", self.toBase64Url(otp_secret_key))\n identity.setWorkingParameter(\"otp_enrollment_request\", otp_enrollment_request)\n\n return True\n elif step == 3:\n print \"OTP. Prepare for step 3\"\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Prepare for step 3. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n return True\n\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"otp_auth_method\", \"otp_count_login_steps\", \"otp_secret_key\", \"otp_enrollment_request\",\"retry_current_step\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n identity = CdiUtil.bean(Identity)\n\n if identity.isSetWorkingParameter(\"otp_count_login_steps\"):\n return StringHelper.toInteger(\"%s\" % identity.getWorkingParameter(\"otp_count_login_steps\"))\n else:\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n identity = CdiUtil.bean(Identity)\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Gep page for step 2. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n return \"/auth/otp/enroll.xhtml\"\n else:\n return \"/auth/otp/otplogin.xhtml\"\n elif step == 3:\n return \"/auth/otp/otplogin.xhtml\"\n\n return \"\"\n\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def setRequestScopedParameters(self, identity):\n if self.registrationUri != None:\n identity.setWorkingParameter(\"external_registration_uri\", self.registrationUri)\n\n if self.customLabel != None:\n identity.setWorkingParameter(\"qr_label\", self.customLabel)\n\n identity.setWorkingParameter(\"qr_options\", self.customQrOptions)\n\n def loadOtpConfiguration(self, configurationAttributes):\n print \"OTP. Load OTP configuration\"\n if not configurationAttributes.containsKey(\"otp_conf_file\"):\n return False\n\n otp_conf_file = configurationAttributes.get(\"otp_conf_file\").getValue2()\n\n # Load configuration from file\n f = open(otp_conf_file, 'r')\n try:\n otpConfiguration = json.loads(f.read())\n except:\n print \"OTP. Load OTP configuration. Failed to load configuration from file:\", otp_conf_file\n return False\n finally:\n f.close()\n\n # Check configuration file settings\n try:\n self.hotpConfiguration = otpConfiguration[\"hotp\"]\n self.totpConfiguration = otpConfiguration[\"totp\"]\n \n hmacShaAlgorithm = self.totpConfiguration[\"hmacShaAlgorithm\"]\n hmacShaAlgorithmType = None\n\n if StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha1\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_1\n elif StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha256\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_256\n elif StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha512\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_512\n else:\n print \"OTP. Load OTP configuration. Invalid TOTP HMAC SHA algorithm: '%s'\" % hmacShaAlgorithm\n \n self.totpConfiguration[\"hmacShaAlgorithmType\"] = hmacShaAlgorithmType\n except:\n print \"OTP. Load OTP configuration. Invalid configuration file '%s' format. Exception: '%s'\" % (otp_conf_file, sys.exc_info()[1])\n return False\n \n\n return True\n\n def processBasicAuthentication(self, credentials):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if find_user_by_uid == None:\n print \"OTP. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def findEnrollments(self, user_name, skipPrefix = True):\n result = []\n\n userService = CdiUtil.bean(UserService)\n user = userService.getUser(user_name, \"jansExtUid\")\n if user == None:\n print \"OTP. Find enrollments. Failed to find user\"\n return result\n \n user_custom_ext_attribute = userService.getCustomAttribute(user, \"jansExtUid\")\n if user_custom_ext_attribute == None:\n return result\n\n otp_prefix = \"%s:\" % self.otpType\n \n otp_prefix_length = len(otp_prefix) \n for user_external_uid in user_custom_ext_attribute.getValues():\n index = user_external_uid.find(otp_prefix)\n if index != -1:\n if skipPrefix:\n enrollment_uid = user_external_uid[otp_prefix_length:]\n else:\n enrollment_uid = user_external_uid\n\n result.append(enrollment_uid)\n \n return result\n\n def validateSessionId(self, identity):\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"OTP. Validate session id. Failed to determine session_id\"\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if not otp_auth_method in ['enroll', 'authenticate']:\n print \"OTP. Validate session id. Failed to authenticate user. otp_auth_method: '%s'\" % otp_auth_method\n return False\n\n return True\n\n def processOtpAuthentication(self, requestParameters, user_name, identity, otp_auth_method):\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n userService = CdiUtil.bean(UserService)\n\n otpCode = ServerUtil.getFirstValue(requestParameters, \"loginForm:otpCode\")\n if StringHelper.isEmpty(otpCode):\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to authenticate. OTP code is empty\")\n print \"OTP. Process OTP authentication. otpCode is empty\"\n\n return False\n \n if otp_auth_method == \"enroll\":\n # Get key from session\n otp_secret_key_encoded = identity.getWorkingParameter(\"otp_secret_key\")\n if otp_secret_key_encoded == None:\n print \"OTP. Process OTP authentication. OTP secret key is invalid\"\n return False\n \n otp_secret_key = self.fromBase64Url(otp_secret_key_encoded)\n\n if self.otpType == \"hotp\":\n validation_result = self.validateHotpKey(otp_secret_key, 1, otpCode)\n \n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process HOTP authentication during enrollment. otpCode is valid\"\n # Store HOTP Secret Key and moving factor in user entry\n otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, validation_result[\"movingFactor\"] )\n\n # Add otp_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n\n print \"OTP. Process HOTP authentication during enrollment. Failed to update user entry\"\n elif self.otpType == \"totp\":\n validation_result = self.validateTotpKey(otp_secret_key, otpCode,user_name)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process TOTP authentication during enrollment. otpCode is valid\"\n # Store TOTP Secret Key and moving factor in user entry\n otp_user_external_uid = \"totp:%s\" % otp_secret_key_encoded\n\n # Add otp_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n\n print \"OTP. Process TOTP authentication during enrollment. Failed to update user entry\"\n elif otp_auth_method == \"authenticate\":\n user_enrollments = self.findEnrollments(user_name)\n\n if len(user_enrollments) == 0:\n print \"OTP. Process OTP authentication. There is no OTP enrollment for user '%s'\" % user_name\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"There is no valid OTP user enrollments\")\n return False\n\n if self.otpType == \"hotp\":\n for user_enrollment in user_enrollments:\n user_enrollment_data = user_enrollment.split(\";\")\n otp_secret_key_encoded = user_enrollment_data[0]\n\n # Get current moving factor from user entry\n moving_factor = StringHelper.toInteger(user_enrollment_data[1])\n otp_secret_key = self.fromBase64Url(otp_secret_key_encoded)\n\n # Validate TOTP\n validation_result = self.validateHotpKey(otp_secret_key, moving_factor, otpCode)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process HOTP authentication during authentication. otpCode is valid\"\n otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, moving_factor )\n new_otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, validation_result[\"movingFactor\"] )\n \n # Update moving factor in user entry\n find_user_by_external_uid = userService.replaceUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, new_otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n \n print \"OTP. Process HOTP authentication during authentication. Failed to update user entry\"\n elif self.otpType == \"totp\":\n for user_enrollment in user_enrollments:\n otp_secret_key = self.fromBase64Url(user_enrollment)\n\n # Validate TOTP\n validation_result = self.validateTotpKey(otp_secret_key, otpCode, user_name)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process TOTP authentication during authentication. otpCode is valid\"\n return True\n\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to authenticate. OTP code is invalid\")\n print \"OTP. Process OTP authentication. OTP code is invalid\"\n\n return False\n\n # Shared HOTP/TOTP methods\n def generateSecretKey(self, keyLength):\n bytes = jarray.zeros(keyLength, \"b\")\n secureRandom = SecureRandom()\n secureRandom.nextBytes(bytes)\n \n return bytes\n \n # HOTP methods\n def generateSecretHotpKey(self):\n keyLength = self.hotpConfiguration[\"keyLength\"]\n \n return self.generateSecretKey(keyLength)\n\n def generateHotpKey(self, secretKey, movingFactor):\n digits = self.hotpConfiguration[\"digits\"]\n\n hotp = HOTP.key(secretKey).digits(digits).movingFactor(movingFactor).build()\n \n return hotp.value()\n\n def validateHotpKey(self, secretKey, movingFactor, totpKey):\n lookAheadWindow = self.hotpConfiguration[\"lookAheadWindow\"]\n digits = self.hotpConfiguration[\"digits\"]\n\n htopValidationResult = HOTPValidator.lookAheadWindow(lookAheadWindow).validate(secretKey, movingFactor, digits, totpKey)\n if htopValidationResult.isValid():\n return { \"result\": True, \"movingFactor\": htopValidationResult.getNewMovingFactor() }\n\n return { \"result\": False, \"movingFactor\": None }\n\n def generateHotpSecretKeyUri(self, secretKey, issuer, userDisplayName):\n digits = self.hotpConfiguration[\"digits\"]\n\n secretKeyBase32 = self.toBase32(secretKey)\n otpKey = OTPKey(secretKeyBase32, OTPType.HOTP)\n label = issuer + \" %s\" % userDisplayName\n\n otpAuthURI = OTPAuthURIBuilder.fromKey(otpKey).label(label).issuer(issuer).digits(digits).build()\n\n return otpAuthURI.toUriString()\n\n # TOTP methods\n def generateSecretTotpKey(self):\n keyLength = self.totpConfiguration[\"keyLength\"]\n \n return self.generateSecretKey(keyLength)\n\n def generateTotpKey(self, secretKey):\n digits = self.totpConfiguration[\"digits\"]\n timeStep = self.totpConfiguration[\"timeStep\"]\n hmacShaAlgorithmType = self.totpConfiguration[\"hmacShaAlgorithmType\"]\n\n totp = TOTP.key(secretKey).digits(digits).timeStep(TimeUnit.SECONDS.toMillis(timeStep)).hmacSha(hmacShaAlgorithmType).build()\n \n return totp.value()\n\n def validateTotpKey(self, secretKey, totpKey, user_name):\n localTotpKey = self.generateTotpKey(secretKey)\n cachedOTP = self.getCachedOTP(user_name)\n\n if StringHelper.equals(localTotpKey, totpKey) and not StringHelper.equals(localTotpKey, cachedOTP):\n userService = CdiUtil.bean(UserService)\n if cachedOTP is None:\n userService.addUserAttribute(user_name, \"jansOTPCache\",localTotpKey)\n else :\n userService.replaceUserAttribute(user_name, \"jansOTPCache\", cachedOTP, localTotpKey)\n print \"OTP. Caching OTP: '%s'\" % localTotpKey\n return { \"result\": True }\n return { \"result\": False }\n\t\n def getCachedOTP(self, user_name):\n userService = CdiUtil.bean(UserService)\n user = userService.getUser(user_name, \"jansOTPCache\")\n if user is None:\n print \"OTP. Get Cached OTP. Failed to find OTP\"\n return None\n customAttribute = userService.getCustomAttribute(user, \"jansOTPCache\")\n \n if customAttribute is None:\n print \"OTP. Custom attribute is null\"\n return None\n user_cached_OTP = customAttribute.getValue()\n if user_cached_OTP is None:\n print \"OTP. no OTP is present in LDAP\"\n return None\n \n print \"OTP.Cached OTP: '%s'\" % user_cached_OTP\n return user_cached_OTP\n \n def generateTotpSecretKeyUri(self, secretKey, issuer, userDisplayName):\n digits = self.totpConfiguration[\"digits\"]\n timeStep = self.totpConfiguration[\"timeStep\"]\n\n secretKeyBase32 = self.toBase32(secretKey)\n otpKey = OTPKey(secretKeyBase32, OTPType.TOTP)\n label = issuer + \" %s\" % userDisplayName\n\n otpAuthURI = OTPAuthURIBuilder.fromKey(otpKey).label(label).issuer(issuer).digits(digits).timeStep(TimeUnit.SECONDS.toMillis(timeStep)).build()\n\n return otpAuthURI.toUriString()\n\n # Utility methods\n def toBase32(self, bytes):\n return BaseEncoding.base32().omitPadding().encode(bytes)\n\n def toBase64Url(self, bytes):\n return BaseEncoding.base64Url().encode(bytes)\n\n def fromBase64Url(self, chars):\n return BaseEncoding.base64Url().decode(chars)\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "otp", "modified": false, "configurationProperties": [ { "hide": false, "value2": "totp", "value1": "otp_type" }, { "hide": false, "value2": "/etc/certs/otp_configuration.json", "value1": "otp_conf_file" }, { "hide": false, "value2": "Gluu Inc", "value1": "issuer" }, { "hide": false, "value2": "Gluu OTP", "value1": "label" }, { "hide": false, "value2": "{ size: 400, mSize: 0.05 }", "value1": "qr_options" }, { "hide": false, "value2": "https://jenkins-build.jans.io/identity/register", "value1": "registration_uri" } ], "baseDn": "inum=5018-D4BF,ou=scripts,o=jans" }, { "internal": false, "level": 50, "programmingLanguage": "python", "description": "DUO authentication module", "locationType": "ldap", "dn": "inum=5018-F9CF,ou=scripts,o=jans", "inum": "5018-F9CF", "script": "from io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService, SessionIdService\nfrom io.jans.as.server.service.common import UserService\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom io.jans.as.server.service.net import HttpService\nimport os\nimport java\nimport sys\nfrom com.duosecurity import Client\nfrom com.duosecurity.exception import DuoException\nfrom com.duosecurity.model import Token\nfrom io.jans.jsf2.service import FacesService\nfrom jakarta.faces.context import FacesContext\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.as.server.util import ServerUtil\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Duo-Universal. Initialization\"\n \n if (not configurationAttributes.containsKey(\"client_id\")):\n\t print \"Duo Universal. Initialization. Property client_id is not specified\"\n\t return False\n else: \n \tself.client_id = configurationAttributes.get(\"client_id\").getValue2() \n \t\n if (not configurationAttributes.containsKey(\"client_secret\")):\n\t print \"Duo Universal. Initialization. Property client_secret is not specified\"\n\t return False\n else: \n \tself.client_secret = configurationAttributes.get(\"client_secret\").getValue2() \n \t\n if (not configurationAttributes.containsKey(\"api_hostname\")):\n\t print \"Duo Universal. Initialization. Property api_hostname is not specified\"\n\t return False\n else: \n \tself.api_hostname = configurationAttributes.get(\"api_hostname\").getValue2() \n \n print \"Duo-Universal. Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Duo-Universal. Destroy\"\n print \"Duo-Universal. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"Duo-Universal. Authenticate for step %s\" % step\n \n identity = CdiUtil.bean(Identity)\n if (step == 1):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n # Check if user authenticated already in another custom script\n user = authenticationService.getAuthenticatedUser()\n \n if user == None:\n print \"user is none\"\n credentials = identity.getCredentials()\n \n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n \n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n \t\t\t\t\n if (not logged_in):\n print \"return false\"\n return False\n identity.setWorkingParameter('username',user_name)\n return True\n \n elif (step == 2):\n \n identity = CdiUtil.bean(Identity)\n \n state = ServerUtil.getFirstValue(requestParameters, \"state\")\n \t\t\t# Get state to verify consistency and originality\n if identity.getWorkingParameter('state_duo') == state :\n \t\n \t# Get authorization token to trade for 2FA\n \tduoCode = ServerUtil.getFirstValue(requestParameters, \"duo_code\")\n\t \ttry:\n\t token = self.duo_client.exchangeAuthorizationCodeFor2FAResult(duoCode, identity.getWorkingParameter('username'))\n print \"token status %s \" % token.getAuth_result().getStatus()\n\t \texcept:\n\t # Handle authentication failure.\n\t print \"authentication failure\", sys.exc_info()[1]\n\t return False\n\t \n\t # User successfully passed Duo authentication.\n\t \n\t if \"allow\" == token.getAuth_result().getStatus():\n\t return True\n\t \n\t return False\n \n else:\n print \"Neither step 1 or 2\" \n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \tprint \"Duo-Universal. Prepare for step %s\" % step\n \n if (step == 1):\n return True\n elif (step == 2):\n \tidentity = CdiUtil.bean(Identity)\n user_name = identity.getWorkingParameter('username')\n \tfacesContext = CdiUtil.bean(FacesContext)\n \trequest = facesContext.getExternalContext().getRequest()\n \thttpService = CdiUtil.bean(HttpService)\n \turl = httpService.constructServerUrl(request) + \"/postlogin.htm\"\n \t\n \ttry:\n\t \tself.duo_client = Client(self.client_id,self.client_secret,self.api_hostname,url)\n\t \tself.duo_client.healthCheck()\n\t \texcept:\n print \"Duo-Universal. Duo config error. Verify the values in Duo-Universal.conf are correct \", sys.exc_info()[1]\n \n state = self.duo_client.generateState()\n identity.setWorkingParameter(\"state_duo\",state)\n prompt_uri = self.duo_client.createAuthUrl(user_name, state)\n \n facesService = CdiUtil.bean(FacesService)\n facesService.redirectToExternalURL(prompt_uri )\n\n return True\n \n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"state_duo\", \"username\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n print \"Duo-Universal. getPageForStep - %s \" % step\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n ", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "duo", "modified": false, "configurationProperties": [ { "hide": false, "value2": "/etc/certs/duo_creds.json", "value1": "duo_creds_file" }, { "hide": false, "value2": "api-random.duosecurity.com", "value1": "duo_host" } ], "baseDn": "inum=5018-F9CF,ou=scripts,o=jans" }, { "internal": false, "level": 70, "programmingLanguage": "python", "description": "Fido2 authentication module", "locationType": "ldap", "dn": "inum=8BAF-80D7,ou=scripts,o=jans", "inum": "8BAF-80D7", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.fido2.client import Fido2ClientFactory\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\nfrom java.util import Arrays\nfrom java.util.concurrent.locks import ReentrantLock\nfrom jakarta.ws.rs import ClientErrorException\nfrom jakarta.ws.rs.core import Response\n\nimport java\nimport sys\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Fido2. Initialization\"\n\n if not configurationAttributes.containsKey(\"fido2_server_uri\"):\n print \"fido2_server_uri. Initialization. Property fido2_server_uri is not specified\"\n return False\n\n self.fido2_server_uri = configurationAttributes.get(\"fido2_server_uri\").getValue2()\n\n self.fido2_domain = None\n if configurationAttributes.containsKey(\"fido2_domain\"):\n self.fido2_domain = configurationAttributes.get(\"fido2_domain\").getValue2()\n\n self.metaDataLoaderLock = ReentrantLock()\n self.metaDataConfiguration = None\n\n print \"Fido2. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Fido2. Destroy\"\n print \"Fido2. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n\n if step == 1:\n print \"Fido2. Authenticate for step 1\"\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\",ServerUtil.getFirstValue(requestParameters, \"loginForm:platformAuthenticator\"))\n\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n return True\n elif step == 2:\n print \"Fido2. Authenticate for step 2\"\n\n token_response = ServerUtil.getFirstValue(requestParameters, \"tokenResponse\")\n if token_response == None:\n print \"Fido2. Authenticate for step 2. tokenResponse is empty\"\n return False\n\n auth_method = ServerUtil.getFirstValue(requestParameters, \"authMethod\")\n if auth_method == None:\n print \"Fido2. Authenticate for step 2. authMethod is empty\"\n return False\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Fido2. Prepare for step 2. Failed to determine user name\"\n return False\n\n if auth_method == 'authenticate':\n print \"Fido2. Prepare for step 2. Call Fido2 in order to finish authentication flow\"\n assertionService = Fido2ClientFactory.instance().createAssertionService(self.metaDataConfiguration)\n assertionStatus = assertionService.verify(token_response)\n authenticationStatusEntity = assertionStatus.readEntity(java.lang.String)\n\n if assertionStatus.getStatus() != Response.Status.OK.getStatusCode():\n print \"Fido2. Authenticate for step 2. Get invalid authentication status from Fido2 server\"\n return False\n\n return True\n elif auth_method == 'enroll':\n print \"Fido2. Prepare for step 2. Call Fido2 in order to finish registration flow\"\n attestationService = Fido2ClientFactory.instance().createAttestationService(self.metaDataConfiguration)\n attestationStatus = attestationService.verify(token_response)\n\n if attestationStatus.getStatus() != Response.Status.OK.getStatusCode():\n print \"Fido2. Authenticate for step 2. Get invalid registration status from Fido2 server\"\n return False\n\n return True\n else:\n print \"Fido2. Prepare for step 2. Authentication method is invalid\"\n return False\n\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n\n if step == 1:\n return True\n elif step == 2:\n print \"Fido2. Prepare for step 2\"\n\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Fido2. Prepare for step 2. Failed to determine session_id\"\n return False\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Fido2. Prepare for step 2. Failed to determine user name\"\n return False\n\n userName = user.getUserId()\n\n metaDataConfiguration = self.getMetaDataConfiguration()\n\n assertionResponse = None\n attestationResponse = None\n\n # Check if user have registered devices\n count = CdiUtil.bean(UserService).countFido2RegisteredDevices(userName, self.fido2_domain)\n if count > 0:\n print \"Fido2. Prepare for step 2. Call Fido2 endpoint in order to start assertion flow\"\n\n try:\n assertionService = Fido2ClientFactory.instance().createAssertionService(metaDataConfiguration)\n assertionRequest = json.dumps({'username': userName}, separators=(',', ':'))\n assertionResponse = assertionService.authenticate(assertionRequest).readEntity(java.lang.String)\n # if device has only platform authenticator and assertion is expecting a security key\n if \"internal\" in assertionResponse:\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\", \"true\")\n else:\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\", \"false\")\n\n except ClientErrorException, ex:\n print \"Fido2. Prepare for step 2. Failed to start assertion flow. Exception:\", sys.exc_info()[1]\n return False\n else:\n print \"Fido2. Prepare for step 2. Call Fido2 endpoint in order to start attestation flow\"\n\n try:\n attestationService = Fido2ClientFactory.instance().createAttestationService(metaDataConfiguration)\n platformAuthenticatorAvailable = identity.getWorkingParameter(\"platformAuthenticatorAvailable\") == \"true\"\n basic_json = {'username': userName, 'displayName': userName, 'attestation' : 'direct'}\n print \"% s\" % identity.getWorkingParameter(\"platformAuthenticatorAvailable\")\n if platformAuthenticatorAvailable is True:\n # the reason behind userVerification = discouraged --> https://chromium.googlesource.com/chromium/src/+/master/content/browser/webauth/uv_preferred.md\n platform_json = {\"authenticatorSelection\":{\"authenticatorAttachment\":\"platform\",\"requireResidentKey\" : \"false\", \"userVerification\" : \"discouraged\" } }\n basic_json.update(platform_json)\n\n # also need to add this --> excludeCredentials : [//registered ids]\n print \" basic_json %s\" % basic_json\n\n attestationRequest = json.dumps(basic_json)\n #, separators=(',', ':'))\n\n attestationResponse = attestationService.register(attestationRequest).readEntity(java.lang.String)\n except ClientErrorException, ex:\n print \"Fido2. Prepare for step 2. Failed to start attestation flow. Exception:\", sys.exc_info()[1]\n return False\n\n identity.setWorkingParameter(\"fido2_assertion_request\", ServerUtil.asJson(assertionResponse))\n identity.setWorkingParameter(\"fido2_attestation_request\", ServerUtil.asJson(attestationResponse))\n print \"Fido2. Prepare for step 2. Successfully start flow with next requests.\\nfido2_assertion_request: '%s'\\nfido2_attestation_request: '%s'\" % ( assertionResponse, attestationResponse )\n\n return True\n elif step == 3:\n print \"Fido2. Prepare for step 3\"\n\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList( \"platformAuthenticatorAvailable\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n return \"/auth/fido2/step1.xhtml\"\n elif step == 2:\n identity = CdiUtil.bean(Identity)\n if identity.getWorkingParameter(\"platformAuthenticatorAvailable\") == \"true\":\n return \"/auth/fido2/platform.xhtml\"\n else:\n return \"/auth/fido2/secKeys.xhtml\"\n return \"\"\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def getMetaDataConfiguration(self):\n if self.metaDataConfiguration != None:\n return self.metaDataConfiguration\n\n self.metaDataLoaderLock.lock()\n # Make sure that another thread not loaded configuration already\n if self.metaDataConfiguration != None:\n return self.metaDataConfiguration\n\n try:\n print \"Fido2. Initialization. Downloading Fido2 metadata\"\n self.fido2_server_metadata_uri = self.fido2_server_uri + \"/.well-known/fido2-configuration\"\n\n metaDataConfigurationService = Fido2ClientFactory.instance().createMetaDataConfigurationService(self.fido2_server_metadata_uri)\n\n max_attempts = 10\n for attempt in range(1, max_attempts + 1):\n try:\n self.metaDataConfiguration = metaDataConfigurationService.getMetadataConfiguration().readEntity(java.lang.String)\n return self.metaDataConfiguration\n except ClientErrorException, ex:\n # Detect if last try or we still get Service Unavailable HTTP error\n if (attempt == max_attempts) or (ex.getResponse().getResponseStatus() != Response.Status.SERVICE_UNAVAILABLE):\n raise ex\n\n java.lang.Thread.sleep(3000)\n print \"Attempting to load metadata: %d\" % attempt\n finally:\n self.metaDataLoaderLock.unlock()\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "fido2", "modified": false, "configurationProperties": [ { "hide": false, "value2": "https://jenkins-build.jans.io", "value1": "fido2_server_uri" } ], "baseDn": "inum=8BAF-80D7,ou=scripts,o=jans" }, { "internal": false, "level": 60, "programmingLanguage": "python", "description": "Super Gluu authentication module", "locationType": "ldap", "dn": "inum=92F0-BF9E,ou=scripts,o=jans", "inum": "92F0-BF9E", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom com.google.android.gcm.server import Sender, Message\nfrom com.notnoop.apns import APNS\nfrom java.util import Arrays\nfrom org.apache.http.params import CoreConnectionPNames\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.model.config import ConfigurationFactory\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.service.fido.u2f import DeviceRegistrationService\nfrom io.jans.as.server.service.net import HttpService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.as.common.service.common import EncryptionService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.service import MailService\nfrom io.jans.as.server.service.push.sns import PushPlatform\nfrom io.jans.as.server.service.push.sns import PushSnsService\nfrom io.jans.notify.client import NotifyClientFactory \nfrom java.util import Arrays, HashMap, IdentityHashMap, Date\nfrom java.time import ZonedDateTime\nfrom java.time.format import DateTimeFormatter\n\nimport datetime\nimport urllib\n\nimport sys\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Super-Gluu. Initialization\"\n\n if not configurationAttributes.containsKey(\"authentication_mode\"):\n print \"Super-Gluu. Initialization. Property authentication_mode is mandatory\"\n return False\n\n self.applicationId = None\n if configurationAttributes.containsKey(\"application_id\"):\n self.applicationId = configurationAttributes.get(\"application_id\").getValue2()\n\n self.registrationUri = None\n if configurationAttributes.containsKey(\"registration_uri\"):\n self.registrationUri = configurationAttributes.get(\"registration_uri\").getValue2()\n\n authentication_mode = configurationAttributes.get(\"authentication_mode\").getValue2()\n if StringHelper.isEmpty(authentication_mode):\n print \"Super-Gluu. Initialization. Failed to determine authentication_mode. authentication_mode configuration parameter is empty\"\n return False\n \n self.oneStep = StringHelper.equalsIgnoreCase(authentication_mode, \"one_step\")\n self.twoStep = StringHelper.equalsIgnoreCase(authentication_mode, \"two_step\")\n\n if not (self.oneStep or self.twoStep):\n print \"Super-Gluu. Initialization. Valid authentication_mode values are one_step and two_step\"\n return False\n \n self.enabledPushNotifications = self.initPushNotificationService(configurationAttributes)\n\n self.androidUrl = None\n if configurationAttributes.containsKey(\"supergluu_android_download_url\"):\n self.androidUrl = configurationAttributes.get(\"supergluu_android_download_url\").getValue2()\n\n self.IOSUrl = None\n if configurationAttributes.containsKey(\"supergluu_ios_download_url\"):\n self.IOSUrl = configurationAttributes.get(\"supergluu_ios_download_url\").getValue2()\n\n self.customLabel = None\n if configurationAttributes.containsKey(\"label\"):\n self.customLabel = configurationAttributes.get(\"label\").getValue2()\n\n self.customQrOptions = {}\n if configurationAttributes.containsKey(\"qr_options\"):\n self.customQrOptions = configurationAttributes.get(\"qr_options\").getValue2()\n\n self.use_super_gluu_group = False\n if configurationAttributes.containsKey(\"super_gluu_group\"):\n self.super_gluu_group = configurationAttributes.get(\"super_gluu_group\").getValue2()\n self.use_super_gluu_group = True\n print \"Super-Gluu. Initialization. Using super_gluu only if user belong to group: %s\" % self.super_gluu_group\n\n self.use_audit_group = False\n if configurationAttributes.containsKey(\"audit_group\"):\n self.audit_group = configurationAttributes.get(\"audit_group\").getValue2()\n\n if (not configurationAttributes.containsKey(\"audit_group_email\")):\n print \"Super-Gluu. Initialization. Property audit_group_email is not specified\"\n return False\n\n self.audit_email = configurationAttributes.get(\"audit_group_email\").getValue2()\n self.use_audit_group = True\n\n print \"Super-Gluu. Initialization. Using audit group: %s\" % self.audit_group\n \n if self.use_super_gluu_group or self.use_audit_group:\n if not configurationAttributes.containsKey(\"audit_attribute\"):\n print \"Super-Gluu. Initialization. Property audit_attribute is not specified\"\n return False\n else:\n self.audit_attribute = configurationAttributes.get(\"audit_attribute\").getValue2()\n\n print \"Super-Gluu. Initialized successfully. oneStep: '%s', twoStep: '%s', pushNotifications: '%s', customLabel: '%s'\" % (self.oneStep, self.twoStep, self.enabledPushNotifications, self.customLabel)\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Super-Gluu. Destroy\"\n\n self.pushAndroidService = None\n self.pushAppleService = None\n\n print \"Super-Gluu. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n client_redirect_uri = self.getApplicationUri(session_attributes)\n if client_redirect_uri == None:\n print \"Super-Gluu. Authenticate. redirect_uri is not set\"\n return False\n\n self.setRequestScopedParameters(identity, step)\n\n # Validate form result code and initialize QR code regeneration if needed (retry_current_step = True)\n identity.setWorkingParameter(\"retry_current_step\", False)\n form_auth_result = ServerUtil.getFirstValue(requestParameters, \"auth_result\")\n if StringHelper.isNotEmpty(form_auth_result):\n print \"Super-Gluu. Authenticate for step %s. Get auth_result: '%s'\" % (step, form_auth_result)\n if form_auth_result in ['error']:\n return False\n\n if form_auth_result in ['timeout']:\n if ((step == 1) and self.oneStep) or ((step == 2) and self.twoStep): \n print \"Super-Gluu. Authenticate for step %s. Reinitializing current step\" % step\n identity.setWorkingParameter(\"retry_current_step\", True)\n return False\n\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n if step == 1:\n print \"Super-Gluu. Authenticate for step 1\"\n\n user_name = credentials.getUsername()\n if self.oneStep:\n session_device_status = self.getSessionDeviceStatus(session_attributes, user_name)\n if session_device_status == None:\n return False\n\n u2f_device_id = session_device_status['device_id']\n\n validation_result = self.validateSessionDeviceStatus(client_redirect_uri, session_device_status)\n if validation_result:\n print \"Super-Gluu. Authenticate for step 1. User successfully authenticated with u2f_device '%s'\" % u2f_device_id\n else:\n return False\n \n if not session_device_status['one_step']:\n print \"Super-Gluu. Authenticate for step 1. u2f_device '%s' is not one step device\" % u2f_device_id\n return False\n \n # There are two steps only in enrollment mode\n if session_device_status['enroll']:\n return validation_result\n\n identity.setWorkingParameter(\"super_gluu_count_login_steps\", 1)\n\n user_inum = session_device_status['user_inum']\n\n u2f_device = deviceRegistrationService.findUserDeviceRegistration(user_inum, u2f_device_id, \"jansId\")\n if u2f_device == None:\n print \"Super-Gluu. Authenticate for step 1. Failed to load u2f_device '%s'\" % u2f_device_id\n return False\n\n logged_in = authenticationService.authenticate(user_name)\n if not logged_in:\n print \"Super-Gluu. Authenticate for step 1. Failed to authenticate user '%s'\" % user_name\n return False\n\n print \"Super-Gluu. Authenticate for step 1. User '%s' successfully authenticated with u2f_device '%s'\" % (user_name, u2f_device_id)\n \n return True\n elif self.twoStep:\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n if (self.use_super_gluu_group):\n print \"Super-Gluu. Authenticate for step 1. Checking if user belong to super_gluu group\"\n is_member_super_gluu_group = self.isUserMemberOfGroup(authenticated_user, self.audit_attribute, self.super_gluu_group)\n if (is_member_super_gluu_group):\n print \"Super-Gluu. Authenticate for step 1. User '%s' member of super_gluu group\" % authenticated_user.getUserId()\n super_gluu_count_login_steps = 2\n else:\n if self.use_audit_group:\n self.processAuditGroup(authenticated_user, self.audit_attribute, self.audit_group)\n super_gluu_count_login_steps = 1\n \n identity.setWorkingParameter(\"super_gluu_count_login_steps\", super_gluu_count_login_steps)\n \n if super_gluu_count_login_steps == 1:\n return True\n \n auth_method = 'authenticate'\n enrollment_mode = ServerUtil.getFirstValue(requestParameters, \"loginForm:registerButton\")\n if StringHelper.isNotEmpty(enrollment_mode):\n auth_method = 'enroll'\n \n if auth_method == 'authenticate':\n user_inum = userService.getUserInum(authenticated_user)\n u2f_devices_list = deviceRegistrationService.findUserDeviceRegistrations(user_inum, client_redirect_uri, \"jansId\")\n if u2f_devices_list.size() == 0:\n auth_method = 'enroll'\n print \"Super-Gluu. Authenticate for step 1. There is no U2F '%s' user devices associated with application '%s'. Changing auth_method to '%s'\" % (user_name, client_redirect_uri, auth_method)\n \n print \"Super-Gluu. Authenticate for step 1. auth_method: '%s'\" % auth_method\n \n identity.setWorkingParameter(\"super_gluu_auth_method\", auth_method)\n\n return True\n\n return False\n elif step == 2:\n print \"Super-Gluu. Authenticate for step 2\"\n\n user = authenticationService.getAuthenticatedUser()\n if (user == None):\n print \"Super-Gluu. Authenticate for step 2. Failed to determine user name\"\n return False\n user_name = user.getUserId()\n\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n session_device_status = self.getSessionDeviceStatus(session_attributes, user_name)\n if session_device_status == None:\n return False\n\n u2f_device_id = session_device_status['device_id']\n\n # There are two steps only in enrollment mode\n if self.oneStep and session_device_status['enroll']:\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n user_inum = userService.getUserInum(authenticated_user)\n \n attach_result = deviceRegistrationService.attachUserDeviceRegistration(user_inum, u2f_device_id)\n\n print \"Super-Gluu. Authenticate for step 2. Result after attaching u2f_device '%s' to user '%s': '%s'\" % (u2f_device_id, user_name, attach_result) \n\n return attach_result\n elif self.twoStep:\n if user_name == None:\n print \"Super-Gluu. Authenticate for step 2. Failed to determine user name\"\n return False\n\n validation_result = self.validateSessionDeviceStatus(client_redirect_uri, session_device_status, user_name)\n if validation_result:\n print \"Super-Gluu. Authenticate for step 2. User '%s' successfully authenticated with u2f_device '%s'\" % (user_name, u2f_device_id)\n else:\n return False\n \n super_gluu_request = json.loads(session_device_status['super_gluu_request'])\n auth_method = super_gluu_request['method']\n if auth_method in ['enroll', 'authenticate']:\n if validation_result and self.use_audit_group:\n user = authenticationService.getAuthenticatedUser()\n self.processAuditGroup(user, self.audit_attribute, self.audit_group)\n\n return validation_result\n\n print \"Super-Gluu. Authenticate for step 2. U2F auth_method is invalid\"\n\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n client_redirect_uri = self.getApplicationUri(session_attributes)\n if client_redirect_uri == None:\n print \"Super-Gluu. Prepare for step. redirect_uri is not set\"\n return False\n\n self.setRequestScopedParameters(identity, step)\n\n if step == 1:\n print \"Super-Gluu. Prepare for step 1\"\n if self.oneStep:\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine session_id\"\n return False\n\n issuer = CdiUtil.bean(ConfigurationFactory).getConfiguration().getIssuer()\n super_gluu_request_dictionary = {'app': client_redirect_uri,\n 'issuer': issuer,\n 'state': session.getId(),\n 'created': DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now().withNano(0))}\n\n self.addGeolocationData(session_attributes, super_gluu_request_dictionary)\n\n super_gluu_request = json.dumps(super_gluu_request_dictionary, separators=(',',':'))\n print \"Super-Gluu. Prepare for step 1. Prepared super_gluu_request:\", super_gluu_request\n \n identity.setWorkingParameter(\"super_gluu_request\", super_gluu_request)\n elif self.twoStep:\n identity.setWorkingParameter(\"display_register_action\", True)\n\n return True\n elif step == 2:\n print \"Super-Gluu. Prepare for step 2\"\n if self.oneStep:\n return True\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine user name\"\n return False\n\n if session_attributes.containsKey(\"super_gluu_request\"):\n super_gluu_request = session_attributes.get(\"super_gluu_request\")\n if not StringHelper.equalsIgnoreCase(super_gluu_request, \"timeout\"):\n print \"Super-Gluu. Prepare for step 2. Request was generated already\"\n return True\n \n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine session_id\"\n return False\n\n auth_method = session_attributes.get(\"super_gluu_auth_method\")\n if StringHelper.isEmpty(auth_method):\n print \"Super-Gluu. Prepare for step 2. Failed to determine auth_method\"\n return False\n\n print \"Super-Gluu. Prepare for step 2. auth_method: '%s'\" % auth_method\n \n issuer = CdiUtil.bean(ConfigurationFactory).getAppConfiguration().getIssuer()\n super_gluu_request_dictionary = {'username': user.getUserId(),\n 'app': client_redirect_uri,\n 'issuer': issuer,\n 'method': auth_method,\n 'state': session.getId(),\n 'created': DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now().withNano(0))}\n\n self.addGeolocationData(session_attributes, super_gluu_request_dictionary)\n\n super_gluu_request = json.dumps(super_gluu_request_dictionary, separators=(',',':'))\n print \"Super-Gluu. Prepare for step 2. Prepared super_gluu_request:\", super_gluu_request\n\n identity.setWorkingParameter(\"super_gluu_request\", super_gluu_request)\n identity.setWorkingParameter(\"super_gluu_auth_method\", auth_method)\n\n if auth_method in ['authenticate']:\n self.sendPushNotification(client_redirect_uri, user, super_gluu_request)\n\n return True\n else:\n return False\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n # If user not pass current step change step to previous\n identity = CdiUtil.bean(Identity)\n retry_current_step = identity.getWorkingParameter(\"retry_current_step\")\n if retry_current_step:\n print \"Super-Gluu. Get next step. Retrying current step\"\n\n # Remove old QR code\n identity.setWorkingParameter(\"super_gluu_request\", \"timeout\")\n\n resultStep = step\n return resultStep\n\n return -1\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 1:\n if self.oneStep: \n return Arrays.asList(\"super_gluu_request\")\n elif self.twoStep:\n return Arrays.asList(\"display_register_action\")\n elif step == 2:\n return Arrays.asList(\"super_gluu_auth_method\", \"super_gluu_request\")\n \n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n identity = CdiUtil.bean(Identity)\n if identity.isSetWorkingParameter(\"super_gluu_count_login_steps\"):\n return identity.getWorkingParameter(\"super_gluu_count_login_steps\")\n else:\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n if self.oneStep: \n return \"/auth/super-gluu/login.xhtml\"\n elif step == 2:\n if self.oneStep:\n return \"/login.xhtml\"\n else:\n identity = CdiUtil.bean(Identity)\n authmethod = identity.getWorkingParameter(\"super_gluu_auth_method\")\n print \"Super-Gluu. authmethod '%s'\" % authmethod\n if authmethod == \"enroll\":\n return \"/auth/super-gluu/login.xhtml\"\n else:\n return \"/auth/super-gluu/login.xhtml\"\n\n return \"\"\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def processBasicAuthentication(self, credentials):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if find_user_by_uid == None:\n print \"Super-Gluu. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def validateSessionDeviceStatus(self, client_redirect_uri, session_device_status, user_name = None):\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n\n u2f_device_id = session_device_status['device_id']\n\n u2f_device = None\n if session_device_status['enroll'] and session_device_status['one_step']:\n u2f_device = deviceRegistrationService.findOneStepUserDeviceRegistration(u2f_device_id)\n if u2f_device == None:\n print \"Super-Gluu. Validate session device status. There is no one step u2f_device '%s'\" % u2f_device_id\n return False\n else:\n # Validate if user has specified device_id enrollment\n user_inum = userService.getUserInum(user_name)\n\n if session_device_status['one_step']:\n user_inum = session_device_status['user_inum']\n \n u2f_device = deviceRegistrationService.findUserDeviceRegistration(user_inum, u2f_device_id)\n if u2f_device == None:\n print \"Super-Gluu. Validate session device status. There is no u2f_device '%s' associated with user '%s'\" % (u2f_device_id, user_inum)\n return False\n\n if not StringHelper.equalsIgnoreCase(client_redirect_uri, u2f_device.application):\n print \"Super-Gluu. Validate session device status. u2f_device '%s' associated with other application '%s'\" % (u2f_device_id, u2f_device.application)\n return False\n \n return True\n\n def getSessionDeviceStatus(self, session_attributes, user_name):\n print \"Super-Gluu. Get session device status\"\n\n if not session_attributes.containsKey(\"super_gluu_request\"):\n print \"Super-Gluu. Get session device status. There is no Super-Gluu request in session attributes\"\n return None\n\n # Check session state extended\n if not session_attributes.containsKey(\"session_custom_state\"):\n print \"Super-Gluu. Get session device status. There is no session_custom_state in session attributes\"\n return None\n\n session_custom_state = session_attributes.get(\"session_custom_state\")\n if not StringHelper.equalsIgnoreCase(\"approved\", session_custom_state):\n print \"Super-Gluu. Get session device status. User '%s' not approve or not pass U2F authentication. session_custom_state: '%s'\" % (user_name, session_custom_state)\n return None\n\n # Try to find device_id in session attribute\n if not session_attributes.containsKey(\"oxpush2_u2f_device_id\"):\n print \"Super-Gluu. Get session device status. There is no u2f_device associated with this request\"\n return None\n\n # Try to find user_inum in session attribute\n if not session_attributes.containsKey(\"oxpush2_u2f_device_user_inum\"):\n print \"Super-Gluu. Get session device status. There is no user_inum associated with this request\"\n return None\n \n enroll = False\n if session_attributes.containsKey(\"oxpush2_u2f_device_enroll\"):\n enroll = StringHelper.equalsIgnoreCase(\"true\", session_attributes.get(\"oxpush2_u2f_device_enroll\"))\n\n one_step = False\n if session_attributes.containsKey(\"oxpush2_u2f_device_one_step\"):\n one_step = StringHelper.equalsIgnoreCase(\"true\", session_attributes.get(\"oxpush2_u2f_device_one_step\"))\n \n super_gluu_request = session_attributes.get(\"super_gluu_request\")\n u2f_device_id = session_attributes.get(\"oxpush2_u2f_device_id\")\n user_inum = session_attributes.get(\"oxpush2_u2f_device_user_inum\")\n\n session_device_status = {\"super_gluu_request\": super_gluu_request, \"device_id\": u2f_device_id, \"user_inum\" : user_inum, \"enroll\" : enroll, \"one_step\" : one_step}\n print \"Super-Gluu. Get session device status. session_device_status: '%s'\" % (session_device_status)\n \n return session_device_status\n\n def initPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize Native/SNS/Gluu notification services\"\n\n self.pushSnsMode = False\n self.pushGluuMode = False\n if configurationAttributes.containsKey(\"notification_service_mode\"):\n notificationServiceMode = configurationAttributes.get(\"notification_service_mode\").getValue2()\n if StringHelper.equalsIgnoreCase(notificationServiceMode, \"sns\"):\n return self.initSnsPushNotificationService(configurationAttributes)\n elif StringHelper.equalsIgnoreCase(notificationServiceMode, \"gluu\"):\n return self.initGluuPushNotificationService(configurationAttributes)\n\n return self.initNativePushNotificationService(configurationAttributes)\n\n def initNativePushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize native notification services\"\n \n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n android_creds = creds[\"android\"][\"gcm\"]\n ios_creds = creds[\"ios\"][\"apns\"]\n except:\n print \"Super-Gluu. Initialize native notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if android_creds[\"enabled\"]:\n self.pushAndroidService = Sender(android_creds[\"api_key\"]) \n print \"Super-Gluu. Initialize native notification services. Created Android notification service\"\n \n if ios_creds[\"enabled\"]:\n p12_file_path = ios_creds[\"p12_file_path\"]\n p12_password = ios_creds[\"p12_password\"]\n\n try:\n encryptionService = CdiUtil.bean(EncryptionService)\n p12_password = encryptionService.decrypt(p12_password)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize native notification services. Assuming that 'p12_password' password in not encrypted\"\n\n apnsServiceBuilder = APNS.newService().withCert(p12_file_path, p12_password)\n if ios_creds[\"production\"]:\n self.pushAppleService = apnsServiceBuilder.withProductionDestination().build()\n else:\n self.pushAppleService = apnsServiceBuilder.withSandboxDestination().build()\n\n self.pushAppleServiceProduction = ios_creds[\"production\"]\n\n print \"Super-Gluu. Initialize native notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def initSnsPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize SNS notification services\"\n self.pushSnsMode = True\n\n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n sns_creds = creds[\"sns\"]\n android_creds = creds[\"android\"][\"sns\"]\n ios_creds = creds[\"ios\"][\"sns\"]\n except:\n print \"Super-Gluu. Initialize SNS notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if not (android_creds[\"enabled\"] or ios_creds[\"enabled\"]):\n print \"Super-Gluu. Initialize SNS notification services. SNS disabled for all platforms\"\n return False\n\n sns_access_key = sns_creds[\"access_key\"]\n sns_secret_access_key = sns_creds[\"secret_access_key\"]\n sns_region = sns_creds[\"region\"]\n\n encryptionService = CdiUtil.bean(EncryptionService)\n\n try:\n sns_secret_access_key = encryptionService.decrypt(sns_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize SNS notification services. Assuming that 'sns_secret_access_key' in not encrypted\"\n \n pushSnsService = CdiUtil.bean(PushSnsService)\n pushClient = pushSnsService.createSnsClient(sns_access_key, sns_secret_access_key, sns_region)\n\n if android_creds[\"enabled\"]:\n self.pushAndroidService = pushClient\n self.pushAndroidPlatformArn = android_creds[\"platform_arn\"]\n print \"Super-Gluu. Initialize SNS notification services. Created Android notification service\"\n\n if ios_creds[\"enabled\"]:\n self.pushAppleService = pushClient \n self.pushApplePlatformArn = ios_creds[\"platform_arn\"]\n self.pushAppleServiceProduction = ios_creds[\"production\"]\n print \"Super-Gluu. Initialize SNS notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def initGluuPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize Gluu notification services\"\n\n self.pushGluuMode = True\n\n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n gluu_conf = creds[\"gluu\"]\n android_creds = creds[\"android\"][\"gluu\"]\n ios_creds = creds[\"ios\"][\"gluu\"]\n except:\n print \"Super-Gluu. Initialize Gluu notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if not (android_creds[\"enabled\"] or ios_creds[\"enabled\"]):\n print \"Super-Gluu. Initialize Gluu notification services. Gluu disabled for all platforms\"\n return False\n\n gluu_server_uri = gluu_conf[\"server_uri\"]\n notifyClientFactory = NotifyClientFactory.instance()\n metadataConfiguration = None\n try:\n metadataConfiguration = notifyClientFactory.createMetaDataConfigurationService(gluu_server_uri).getMetadataConfiguration()\n except:\n print \"Super-Gluu. Initialize Gluu notification services. Failed to load metadata. Exception: \", sys.exc_info()[1]\n return False\n\n gluuClient = notifyClientFactory.createNotifyService(metadataConfiguration)\n encryptionService = CdiUtil.bean(EncryptionService)\n\n if android_creds[\"enabled\"]:\n gluu_access_key = android_creds[\"access_key\"]\n gluu_secret_access_key = android_creds[\"secret_access_key\"]\n \n try:\n gluu_secret_access_key = encryptionService.decrypt(gluu_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize Gluu notification services. Assuming that 'gluu_secret_access_key' in not encrypted\"\n \n self.pushAndroidService = gluuClient \n self.pushAndroidServiceAuth = notifyClientFactory.getAuthorization(gluu_access_key, gluu_secret_access_key);\n print \"Super-Gluu. Initialize Gluu notification services. Created Android notification service\"\n\n if ios_creds[\"enabled\"]:\n gluu_access_key = ios_creds[\"access_key\"]\n gluu_secret_access_key = ios_creds[\"secret_access_key\"]\n \n try:\n gluu_secret_access_key = encryptionService.decrypt(gluu_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize Gluu notification services. Assuming that 'gluu_secret_access_key' in not encrypted\"\n \n self.pushAppleService = gluuClient \n self.pushAppleServiceAuth = notifyClientFactory.getAuthorization(gluu_access_key, gluu_secret_access_key);\n print \"Super-Gluu. Initialize Gluu notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def loadPushNotificationCreds(self, configurationAttributes):\n print \"Super-Gluu. Initialize notification services\"\n if not configurationAttributes.containsKey(\"credentials_file\"):\n return None\n\n super_gluu_creds_file = configurationAttributes.get(\"credentials_file\").getValue2()\n\n # Load credentials from file\n f = open(super_gluu_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n except:\n print \"Super-Gluu. Initialize notification services. Failed to load credentials from file:\", super_gluu_creds_file\n return None\n finally:\n f.close()\n\n return creds\n\n def sendPushNotification(self, client_redirect_uri, user, super_gluu_request):\n try:\n self.sendPushNotificationImpl(client_redirect_uri, user, super_gluu_request)\n except:\n print \"Super-Gluu. Send push notification. Failed to send push notification: \", sys.exc_info()[1]\n\n def sendPushNotificationImpl(self, client_redirect_uri, user, super_gluu_request):\n if not self.enabledPushNotifications:\n return\n\n user_name = user.getUserId()\n print \"Super-Gluu. Send push notification. Loading user '%s' devices\" % user_name\n\n send_notification = False\n send_notification_result = True\n\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n\n user_inum = userService.getUserInum(user_name)\n\n send_android = 0\n send_ios = 0\n u2f_devices_list = deviceRegistrationService.findUserDeviceRegistrations(user_inum, client_redirect_uri, \"jansId\", \"jansDeviceData\", \"jansDeviceNotificationConf\")\n if u2f_devices_list.size() > 0:\n for u2f_device in u2f_devices_list:\n device_data = u2f_device.getDeviceData()\n\n # Device data which Super-Gluu gets during enrollment\n if device_data == None:\n continue\n\n platform = device_data.getPlatform()\n push_token = device_data.getPushToken()\n debug = False\n\n if StringHelper.equalsIgnoreCase(platform, \"ios\") and StringHelper.isNotEmpty(push_token):\n # Sending notification to iOS user's device\n if self.pushAppleService == None:\n print \"Super-Gluu. Send push notification. Apple native push notification service is not enabled\"\n else:\n send_notification = True\n \n title = \"Super Gluu\"\n message = \"Confirm your sign in request to: %s\" % client_redirect_uri\n\n if self.pushSnsMode or self.pushGluuMode:\n pushSnsService = CdiUtil.bean(PushSnsService)\n targetEndpointArn = self.getTargetEndpointArn(deviceRegistrationService, pushSnsService, PushPlatform.APNS, user, u2f_device)\n if targetEndpointArn == None:\n \treturn\n\n send_notification = True\n \n sns_push_request_dictionary = { \"aps\": \n { \"badge\": 0,\n \"alert\" : {\"body\": message, \"title\" : title},\n \"category\": \"ACTIONABLE\",\n \"content-available\": \"1\",\n \"sound\": 'default'\n },\n \"request\" : super_gluu_request\n }\n push_message = json.dumps(sns_push_request_dictionary, separators=(',',':'))\n \n if self.pushSnsMode:\n apple_push_platform = PushPlatform.APNS\n if not self.pushAppleServiceProduction:\n apple_push_platform = PushPlatform.APNS_SANDBOX\n \n send_notification_result = pushSnsService.sendPushMessage(self.pushAppleService, apple_push_platform, targetEndpointArn, push_message, None)\n if debug:\n print \"Super-Gluu. Send iOS SNS push notification. token: '%s', message: '%s', send_notification_result: '%s', apple_push_platform: '%s'\" % (push_token, push_message, send_notification_result, apple_push_platform)\n elif self.pushGluuMode:\n send_notification_result = self.pushAppleService.sendNotification(self.pushAppleServiceAuth, targetEndpointArn, push_message)\n if debug:\n print \"Super-Gluu. Send iOS Gluu push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n else:\n additional_fields = { \"request\" : super_gluu_request }\n \n msgBuilder = APNS.newPayload().alertBody(message).alertTitle(title).sound(\"default\")\n msgBuilder.category('ACTIONABLE').badge(0)\n msgBuilder.forNewsstand()\n msgBuilder.customFields(additional_fields)\n push_message = msgBuilder.build()\n \n send_notification_result = self.pushAppleService.push(push_token, push_message)\n if debug:\n print \"Super-Gluu. Send iOS Native push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n send_ios = send_ios + 1\n\n if StringHelper.equalsIgnoreCase(platform, \"android\") and StringHelper.isNotEmpty(push_token):\n # Sending notification to Android user's device\n if self.pushAndroidService == None:\n print \"Super-Gluu. Send native push notification. Android native push notification service is not enabled\"\n else:\n send_notification = True\n\n title = \"Super-Gluu\"\n if self.pushSnsMode or self.pushGluuMode:\n pushSnsService = CdiUtil.bean(PushSnsService)\n targetEndpointArn = self.getTargetEndpointArn(deviceRegistrationService, pushSnsService, PushPlatform.GCM, user, u2f_device)\n if targetEndpointArn == None:\n \treturn\n\n send_notification = True\n \n sns_push_request_dictionary = { \"collapse_key\": \"single\",\n \"content_available\": True,\n \"time_to_live\": 60,\n \"data\": \n { \"message\" : super_gluu_request,\n \"title\" : title }\n }\n push_message = json.dumps(sns_push_request_dictionary, separators=(',',':'))\n \n if self.pushSnsMode:\n send_notification_result = pushSnsService.sendPushMessage(self.pushAndroidService, PushPlatform.GCM, targetEndpointArn, push_message, None)\n if debug:\n print \"Super-Gluu. Send Android SNS push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n elif self.pushGluuMode:\n send_notification_result = self.pushAndroidService.sendNotification(self.pushAndroidServiceAuth, targetEndpointArn, push_message)\n if debug:\n print \"Super-Gluu. Send Android Gluu push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n else:\n msgBuilder = Message.Builder().addData(\"message\", super_gluu_request).addData(\"title\", title).collapseKey(\"single\").contentAvailable(True)\n push_message = msgBuilder.build()\n \n send_notification_result = self.pushAndroidService.send(push_message, push_token, 3)\n if debug:\n print \"Super-Gluu. Send Android Native push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n send_android = send_android + 1\n\n print \"Super-Gluu. Send push notification. send_android: '%s', send_ios: '%s'\" % (send_android, send_ios)\n\n def getTargetEndpointArn(self, deviceRegistrationService, pushSnsService, platform, user, u2fDevice):\n targetEndpointArn = None\n \n # Return endpoint ARN if it created already\n notificationConf = u2fDevice.getDeviceNotificationConf()\n if StringHelper.isNotEmpty(notificationConf):\n notificationConfJson = json.loads(notificationConf)\n targetEndpointArn = notificationConfJson['sns_endpoint_arn']\n if StringHelper.isNotEmpty(targetEndpointArn):\n print \"Super-Gluu. Get target endpoint ARN. There is already created target endpoint ARN\"\n return targetEndpointArn\n\n # Create endpoint ARN \n pushClient = None\n pushClientAuth = None\n platformApplicationArn = None\n if platform == PushPlatform.GCM:\n pushClient = self.pushAndroidService\n if self.pushSnsMode:\n platformApplicationArn = self.pushAndroidPlatformArn\n if self.pushGluuMode:\n pushClientAuth = self.pushAndroidServiceAuth\n elif platform == PushPlatform.APNS:\n pushClient = self.pushAppleService\n if self.pushSnsMode:\n platformApplicationArn = self.pushApplePlatformArn\n if self.pushGluuMode:\n pushClientAuth = self.pushAppleServiceAuth\n else:\n return None\n\n deviceData = u2fDevice.getDeviceData()\n pushToken = deviceData.getPushToken()\n \n print \"Super-Gluu. Get target endpoint ARN. Attempting to create target endpoint ARN for user: '%s'\" % user.getUserId()\n if self.pushSnsMode:\n targetEndpointArn = pushSnsService.createPlatformArn(pushClient, platformApplicationArn, pushToken, user)\n else:\n customUserData = pushSnsService.getCustomUserData(user)\n registerDeviceResponse = pushClient.registerDevice(pushClientAuth, pushToken, customUserData);\n if registerDeviceResponse != None and registerDeviceResponse.getStatusCode() == 200:\n targetEndpointArn = registerDeviceResponse.getEndpointArn()\n \n if StringHelper.isEmpty(targetEndpointArn):\n\t print \"Super-Gluu. Failed to get endpoint ARN for user: '%s'\" % user.getUserId()\n \treturn None\n\n print \"Super-Gluu. Get target endpoint ARN. Create target endpoint ARN '%s' for user: '%s'\" % (targetEndpointArn, user.getUserId())\n \n # Store created endpoint ARN in device entry\n userInum = user.getAttribute(\"inum\")\n u2fDeviceUpdate = deviceRegistrationService.findUserDeviceRegistration(userInum, u2fDevice.getId())\n u2fDeviceUpdate.setDeviceNotificationConf('{\"sns_endpoint_arn\" : \"%s\"}' % targetEndpointArn)\n deviceRegistrationService.updateDeviceRegistration(userInum, u2fDeviceUpdate)\n\n return targetEndpointArn\n\n def getApplicationUri(self, session_attributes):\n if self.applicationId != None:\n return self.applicationId\n \n if not session_attributes.containsKey(\"redirect_uri\"):\n return None\n\n return session_attributes.get(\"redirect_uri\")\n\n def setRequestScopedParameters(self, identity, step):\n downloadMap = HashMap()\n if self.registrationUri != None:\n identity.setWorkingParameter(\"external_registration_uri\", self.registrationUri)\n\n if self.androidUrl!= None and step == 1:\n downloadMap.put(\"android\", self.androidUrl)\n\n if self.IOSUrl != None and step == 1:\n downloadMap.put(\"ios\", self.IOSUrl)\n \n if self.customLabel != None:\n identity.setWorkingParameter(\"super_gluu_label\", self.customLabel)\n \n identity.setWorkingParameter(\"download_url\", downloadMap)\n identity.setWorkingParameter(\"super_gluu_qr_options\", self.customQrOptions)\n\n def addGeolocationData(self, session_attributes, super_gluu_request_dictionary):\n if session_attributes.containsKey(\"remote_ip\"):\n remote_ip = session_attributes.get(\"remote_ip\")\n if StringHelper.isNotEmpty(remote_ip):\n print \"Super-Gluu. Prepare for step 2. Adding req_ip and req_loc to super_gluu_request\"\n super_gluu_request_dictionary['req_ip'] = remote_ip\n\n remote_loc_dic = self.determineGeolocationData(remote_ip)\n if remote_loc_dic == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine remote location by remote IP '%s'\" % remote_ip\n return\n\n remote_loc = \"%s, %s, %s\" % ( remote_loc_dic['country'], remote_loc_dic['regionName'], remote_loc_dic['city'] )\n remote_loc_encoded = urllib.quote(remote_loc.encode('utf-8'))\n super_gluu_request_dictionary['req_loc'] = remote_loc_encoded\n\n def determineGeolocationData(self, remote_ip):\n print \"Super-Gluu. Determine remote location. remote_ip: '%s'\" % remote_ip\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n http_client_params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15 * 1000)\n \n geolocation_service_url = \"http://ip-api.com/json/%s?fields=49177\" % remote_ip\n geolocation_service_headers = { \"Accept\" : \"application/json\" }\n\n try:\n http_service_response = httpService.executeGet(http_client, geolocation_service_url, geolocation_service_headers)\n http_response = http_service_response.getHttpResponse()\n except:\n print \"Super-Gluu. Determine remote location. Exception: \", sys.exc_info()[1]\n return None\n\n try:\n if not httpService.isResponseStastusCodeOk(http_response):\n print \"Super-Gluu. Determine remote location. Get invalid response from validation server: \", str(http_response.getStatusLine().getStatusCode())\n httpService.consume(http_response)\n return None\n \n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes)\n httpService.consume(http_response)\n finally:\n http_service_response.closeConnection()\n\n if response_string == None:\n print \"Super-Gluu. Determine remote location. Get empty response from location server\"\n return None\n \n response = json.loads(response_string)\n \n if not StringHelper.equalsIgnoreCase(response['status'], \"success\"):\n print \"Super-Gluu. Determine remote location. Get response with status: '%s'\" % response['status']\n return None\n\n return response\n\n def isUserMemberOfGroup(self, user, attribute, group):\n is_member = False\n member_of_list = user.getAttributeValues(attribute)\n if (member_of_list != None):\n for member_of in member_of_list:\n if StringHelper.equalsIgnoreCase(group, member_of) or member_of.endswith(group):\n is_member = True\n break\n\n return is_member\n\n def processAuditGroup(self, user, attribute, group):\n is_member = self.isUserMemberOfGroup(user, attribute, group)\n if (is_member):\n print \"Super-Gluu. Authenticate for processAuditGroup. User '%s' member of audit group\" % user.getUserId()\n print \"Super-Gluu. Authenticate for processAuditGroup. Sending e-mail about user '%s' login to %s\" % (user.getUserId(), self.audit_email)\n \n # Send e-mail to administrator\n user_id = user.getUserId()\n mailService = CdiUtil.bean(MailService)\n subject = \"User log in: %s\" % user_id\n body = \"User log in: %s\" % user_id\n mailService.sendMail(self.audit_email, subject, body)\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "super_gluu", "modified": false, "configurationProperties": [ { "hide": false, "value2": "{ size: 500, mSize: 0.05 }", "value1": "qr_options" }, { "hide": false, "value2": "Super Gluu", "value1": "label" }, { "hide": false, "value2": "https://jenkins-build.jans.io/identity/register", "value1": "registration_uri" }, { "hide": false, "value2": "two_step", "value1": "authentication_mode" }, { "hide": false, "value2": "gluu", "value1": "notification_service_mode" }, { "hide": false, "value2": "/etc/certs/super_gluu_creds.json", "value1": "credentials_file" }, { "hide": false, "value2": "https://play.google.com/store/apps/details?id=gluu.org.super.gluu&hl=en_US", "value1": "supergluu_android_download_url" }, { "hide": false, "value2": "https://itunes.apple.com/us/app/super-gluu/id1093479646", "value1": "supergluu_ios_download_url" } ], "baseDn": "inum=92F0-BF9E,ou=scripts,o=jans" }, { "internal": false, "aliases": [ "basic_alias1", "basic_alias2" ], "level": 10, "programmingLanguage": "python", "description": "Sample authentication module", "locationType": "ldap", "dn": "inum=A51E-76DA,ou=scripts,o=jans", "inum": "A51E-76DA", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.util import StringHelper\n\nimport java\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Basic. Initialization\"\n print \"Basic. Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Basic. Destroy\"\n print \"Basic. Destroyed successfully\"\n return True\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if (step == 1):\n print \"Basic. Authenticate for step 1\"\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return False\n\n return True\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Basic. Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "basic", "modified": false, "baseDn": "inum=A51E-76DA,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "This script is a 2 in 1. It can be used to enable user to reset its password or to enable 2FA sending a token to user's email", "dn": "inum=B270-381E,ou=scripts,o=jans", "inum": "B270-381E", "script": "# coding: utf-8\n# Janssen Project software is available under the Apache License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Christian Eland\n\n\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\n# from org.gluu.oxauth.auth import Authenticator\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.as.common.service.common import ConfigurationService\nfrom io.jans.as.common.service.common import EncryptionService\nfrom io.jans.jsf2.message import FacesMessages\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.orm.exception import AuthenticationException\n\n#dealing with smtp server\nimport smtplib\n\n#dealing with emails\nfrom email.mime.multipart import MIMEMultipart\nfrom email.mime.text import MIMEText\n\n# This one is from core Java\nfrom java.util import Arrays\n\n# to generate string token\nimport random\nimport string\n\n# regex\nimport re\n\nimport urllib\n\nimport java\n\nclass EmailValidator():\n '''\n Class to check e-mail format\n '''\n regex = '^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$'\n\n def check(self, email):\n '''\n Check if email format is valid\n returns: boolean\n '''\n\n if(re.search(self.regex,email)):\n print \"Forgot Password - %s is a valid email format\" % email\n return True\n else:\n print \"Forgot Password - %s is an invalid email format\" % email\n return False\n\nclass Token:\n #class that deals with string token\n\n def generateToken(self):\n ''' method to generate token string\n returns: String\n '''\n letters = string.ascii_lowercase\n\n #token lenght\n lenght = 20\n\n #generate token\n token = ''.join(random.choice(letters) for i in range(lenght))\n print \"Forgot Password - Generating token\"\n\n return token\n\n\nclass EmailSender():\n #class that sends e-mail through smtp\n\n def getSmtpConfig(self):\n '''\n get SMTP config from Gluu Server\n return dict\n '''\n \n smtpconfig = CdiUtil.bean(ConfigurationService).getConfiguration().getSmtpConfiguration()\n \n if smtpconfig is None:\n print \"Forgot Password - SMTP CONFIG DOESN'T EXIST - Please configure\"\n\n else:\n print \"Forgot Password - SMTP CONFIG FOUND\"\n encryptionService = CdiUtil.bean(EncryptionService)\n smtp_config = {\n 'host' : smtpconfig.getHost(),\n 'port' : smtpconfig.getPort(),\n 'user' : smtpconfig.getUserName(),\n 'from' : smtpconfig.getFromEmailAddress(),\n 'pwd_decrypted' : encryptionService.decrypt(smtpconfig.getPassword()),\n 'req_ssl' : smtpconfig.isRequiresSsl(),\n 'requires_authentication' : smtpconfig.isRequiresAuthentication(),\n 'server_trust' : smtpconfig.isServerTrust()\n }\n\n return smtp_config\n\n \n\n def sendEmail(self,useremail,token):\n '''\n send token by e-mail to useremail\n '''\n\n # server connection \n smtpconfig = self.getSmtpConfig()\n \n try:\n s = smtplib.SMTP(smtpconfig['host'], port=smtpconfig['port'])\n \n\n if smtpconfig['requires_authentication']:\n \n if smtpconfig['req_ssl']:\n s.starttls()\n \n s.login(smtpconfig['user'], smtpconfig['pwd_decrypted'])\n\n \n #message setup\n msg = MIMEMultipart() #create message\n \n message = \"Here is your token: %s\" % token\n\n msg['From'] = smtpconfig['from'] #sender\n msg['To'] = useremail #recipient\n msg['Subject'] = \"Password Reset Request\" #subject\n\n #attach message body\n msg.attach(MIMEText(message, 'plain'))\n\n #send message via smtp server\n # send_message method is for python3 only s.send_message(msg)\n\n #send email (python2)\n s.sendmail(msg['From'],msg['To'],msg.as_string())\n \n #after sent, delete\n del msg\n\n except smtplib.SMTPAuthenticationError as err:\n print \"Forgot Password - SMTPAuthenticationError - %s - %s\" % (MY_ADDRESS,PASSWORD)\n print err\n\n except smtplib.smtplib.SMTPSenderRefused as err:\n print \"Forgot Password - SMTPSenderRefused - \" + err\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n\n print \"Forgot Password - Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Forgot Password - Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n # I'm not sure why is 11 and not 2\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n '''\n Authenticates user\n Step 1 will be defined according to SCRIPT_FUNCTION custom attribute\n returns: boolean\n '''\n\n #gets custom attribute\n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n\n print \"Forgot Password - %s - Authenticate for step %s\" % (sf, step)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n\n if step == 1:\n\n if sf == \"forgot_password\":\n\n \n authenticationService = CdiUtil.bean(AuthenticationService)\n\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n \n if not logged_in:\n\n \n email = ServerUtil.getFirstValue(requestParameters, \"ForgotPasswordForm:useremail\")\n validator = EmailValidator()\n if not validator.check(email):\n print \"Forgot Password - Email format invalid\"\n return False\n\n else:\n print \"Forgot Password -Email format valid\"\n \n print \"Forgot Password - Entered email is %s\" % email\n identity.setWorkingParameter(\"useremail\",email)\n \n # Just trying to get the user by the email\n user_service = CdiUtil.bean(UserService)\n user2 = user_service.getUserByAttribute(\"mail\", email)\n\n if user2 is not None:\n \n print user2\n print \"Forgot Password - User with e-mail %s found.\" % user2.getAttribute(\"mail\")\n \n # send email\n new_token = Token()\n token = new_token.generateToken() \n sender = EmailSender()\n print \"Email: \" + email\n print \"Token: \" + token\n sender.sendEmail(email,token)\n\n \n identity.setWorkingParameter(\"token\", token)\n print identity.getWorkingParameter(\"token\")\n \n \n \n else:\n print \"Forgot Password - User with e-mail %s not found\" % email\n\n return True\n\n\n else:\n # if user is already authenticated, returns true.\n\n user = authenticationService.getAuthenticatedUser()\n print \"Forgot Password - User %s is authenticated\" % user.getUserId()\n\n return True\n\n if sf == \"email_2FA\":\n\n try:\n # Just trying to get the user by the uid\n authenticationService = CdiUtil.bean(AuthenticationService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n \n print 'email_2FA user_name: ' + str(user_name)\n \n user_service = CdiUtil.bean(UserService)\n user2 = user_service.getUserByAttribute(\"uid\", user_name)\n\n if user2 is not None:\n print \"user:\"\n print user2\n print \"Forgot Password - User with e-mail %s found.\" % user2.getAttribute(\"mail\")\n email = user2.getAttribute(\"mail\")\n uid = user2.getAttribute(\"uid\")\n\n # send token\n # send email\n new_token = Token()\n token = new_token.generateToken() \n sender = EmailSender()\n print \"Email: \" + email\n print \"Token: \" + token\n sender.sendEmail(email,token)\n\n identity.setWorkingParameter(\"token\", token)\n\n return True\n\n except AuthenticationException as err:\n print err\n return False\n\n \n \n\n if step == 2:\n # step 2 user enters token\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n \n authenticationService = CdiUtil.bean(AuthenticationService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n # retrieves token typed by user\n input_token = ServerUtil.getFirstValue(requestParameters, \"ResetTokenForm:inputToken\")\n\n print \"Forgot Password - Token inputed by user is %s\" % input_token\n\n token = identity.getWorkingParameter(\"token\")\n print \"Forgot Password - Retrieved token\"\n email = identity.getWorkingParameter(\"useremail\")\n print \"Forgot Password - Retrieved email\" \n\n # compares token sent and token entered by user\n if input_token == token:\n print \"Forgot Password - token entered correctly\"\n identity.setWorkingParameter(\"token_valid\", True)\n \n return True\n\n else:\n print \"Forgot Password - wrong token\"\n return False\n\n \n if step == 3:\n # step 3 enters new password (only runs if custom attibute is forgot_password\n\n user_service = CdiUtil.bean(UserService)\n\n email = identity.getWorkingParameter(\"useremail\")\n user2 = user_service.getUserByAttribute(\"mail\", email)\n\n\n user_name = user2.getUserId()\n \n new_password = ServerUtil.getFirstValue(requestParameters, \"UpdatePasswordForm:newPassword\")\n \n print \"Forgot Password - New password submited\"\n \n # update user info with new password\n user2.setAttribute(\"userPassword\",new_password)\n print \"Forgot Password - user uid is %s\" % user_name\n print \"Forgot Password - Updating user with new password...\"\n user_service.updateUser(user2)\n print \"Forgot Password - User updated with new password\"\n # authenticates and login user\n print \"Forgot Password - Loading authentication service...\"\n authenticationService2 = CdiUtil.bean(AuthenticationService)\n\n print \"Forgot Password - Trying to authenticate user...\"\n login = authenticationService2.authenticate(user_name, new_password)\n \n return True\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \n print \"Forgot Password - Preparing for step %s\" % step\n \n return True\n\n\n # Return value is a java.util.List \n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"token\",\"useremail\",\"token_valid\")\n\n\n # This method determines how many steps the authentication flow may have\n # It doesn't have to be a constant value\n def getCountAuthenticationSteps(self, configurationAttributes):\n \n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n \n\n # if option is forgot_token\n if sf == \"forgot_password\":\n print \"Entered sf == forgot_password\"\n return 3\n \n # if ption is email_2FA\n if sf == \"email_2FA\":\n print \"Entered if sf=email_2FA\"\n return 2\n\n else:\n print \"Forgot Password - Custom Script Custom Property Incorrect, please check\"\n\n\n # The xhtml page to render upon each step of the flow\n # returns a string relative to oxAuth webapp root\n def getPageForStep(self, configurationAttributes, step):\n \n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n\n if step == 1:\n\n if sf == \"forgot_password\":\n return \"/auth/forgot_password/forgot.xhtml\"\n\n if sf == 'email_2FA':\n return \"\"\n\n if step == 2:\n return \"/auth/forgot_password/entertoken.xhtml\"\n\n if step == 3:\n if sf == \"forgot_password\":\n return \"/auth/forgot_password/newpassword.xhtml\"\n\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n # Method used on version 2 (11?)\n return -1\n \n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "SCRIPT_FUNCTION" } ], "scriptType": "person_authentication", "name": "Forgot_Password_2FA_Token", "modified": false, "configurationProperties": [ { "hide": false, "value2": "forgot_password", "value1": "SCRIPT_FUNCTION" } ], "baseDn": "inum=B270-381E,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "Agama Script", "locationType": "ldap", "dn": "inum=BADA-BADA,ou=scripts,o=jans", "inum": "BADA-BADA", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\nfrom io.jans.agama import NativeJansFlowBridge\nfrom io.jans.agama.engine.misc import FlowUtils\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.jsf2.service import FacesService\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nfrom jakarta.faces.application import FacesMessage\n\nimport java\nimport sys\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Agama. Initialization\" \n prop = \"cust_param_name\"\n self.cust_param_name = self.configProperty(configurationAttributes, prop)\n \n if self.cust_param_name == None:\n print \"Agama. Custom parameter name not referenced via property '%s'\" % prop\n return False\n \n print \"Agama. Request param '%s' will be used to pass flow inputs\" % self.cust_param_name\n print \"Agama. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Agama. Destroy\"\n print \"Agama. Destroyed successfully\"\n return True\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n\n if step == 1:\n print \"Agama. Authenticate for step 1\"\n \n try:\n bridge = CdiUtil.bean(NativeJansFlowBridge)\n result = bridge.close()\n \n if result == None or not result.isSuccess():\n print \"Agama. Flow DID NOT finished successfully\"\n return False\n else:\n print \"Agama. Flow finished successfully\"\n data = result.getData()\n userId = data.get(\"userId\") if data != None else None\n \n if userId == None:\n print \"Agama. No userId provided in flow result.\" \n self.setMessageError(FacesMessage.SEVERITY_ERROR, \"Unable to determine identity of user\")\n return False\n \n authenticated = CdiUtil.bean(AuthenticationService).authenticate(userId)\n \n if not authenticated:\n print \"Agama. Unable to authenticate %s\" % userId\n return False\n except:\n print \"Agama. Exception: \", sys.exc_info()[1]\n return False\n\n return True\n\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \n if not CdiUtil.bean(FlowUtils).serviceEnabled():\n print \"Agama. Please ENABLE Agama engine in auth-server configuration\"\n return False\n\n if step == 1:\n print \"Agama. Prepare for Step 1\"\n\n session = CdiUtil.bean(Identity).getSessionId()\n if session == None:\n print \"Agama. Failed to retrieve session_id\"\n return False\n \n param = session.getSessionAttributes().get(self.cust_param_name) \n if param == None:\n print \"Agama. Request param '%s' is missing or has no value\" % self.cust_param_name\n return False\n \n (qn, ins) = self.extractParams(param)\n if qn == None:\n print \"Agama. Param '%s' is missing the name of the flow to be launched\" % self.cust_param_name\n return False\n \n try:\n bridge = CdiUtil.bean(NativeJansFlowBridge)\n running = bridge.prepareFlow(session.getId(), qn, ins)\n \n if running == None:\n print \"Agama. Flow '%s' does not exist!\" % qn\n return False\n elif running:\n print \"Agama. A flow is already in course\"\n \n print \"Agama. Redirecting to start/resume agama flow '%s'...\" % qn\n \n CdiUtil.bean(FacesService).redirectToExternalURL(bridge.getTriggerUrl())\n except:\n print \"Agama. An error occurred when launching flow '%s'. Check jans-auth logs\" % qn\n print \"Agama. Exception: \", sys.exc_info()[1]\n return False\n #except java.lang.Throwable, ex:\n # ex.printStackTrace() \n # return False \n return True\n \n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n # page referenced here is only used when a flow is restarted\n return \"/\" + CdiUtil.bean(NativeJansFlowBridge).scriptPageUrl()\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n# Misc routines\n\n def configProperty(self, configProperties, name):\n prop = configProperties.get(name)\n return None if prop == None else prop.getValue2()\n\n def setMessageError(self, severity, msg):\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n facesMessages.clear()\n facesMessages.add(severity, msg)\n \n def extractParams(self, param):\n\n # param must be of the form QN-INPUT where QN is the qualified name of the flow to launch\n # INPUT is a JSON object that contains the arguments to use for the flow call.\n # The keys of this object should match the already defined flow inputs. Ideally, and \n # depending on the actual flow implementation, some keys may not even be required \n # QN and INPUTS are separated by a hyphen\n # INPUT must be properly URL-encoded when HTTP GET is used\n \n i = param.find(\"-\")\n if i == 0:\n return (None, None)\n elif i == -1:\n return (param, None)\n else:\n return (param[:i], param[i+1:])\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "agama", "modified": false, "configurationProperties": [ { "hide": false, "value2": "agama_flow", "value1": "cust_param_name" } ], "baseDn": "inum=BADA-BADA,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "GitHub Inbound Authentication script", "locationType": "ldap", "dn": "inum=E706-F8A8,ou=scripts,o=jans", "inum": "E706-F8A8", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.as.common.model.common import User\nfrom io.jans.as.model.jwt import Jwt\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.common.service.common import UserService\nfrom io.jans.as.server.service.net import HttpService\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.as.persistence.model.configuration import GluuConfiguration\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nfrom io.jans.jsf2.service import FacesService\nfrom java.util import Arrays, UUID\n\nimport json\nimport sys\nimport datetime\nimport urllib\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"GitHub. Initialization\"\n\n # read config from github_creds_file\n github_creds_file = configurationAttributes.get(\"github_creds_file\").getValue2()\n f = open(github_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n print creds\n except:\n print \"GitHub: Initialization. Failed to load creds from file:\", github_creds_file\n print \"Exception: \", sys.exc_info()[1]\n return False\n finally:\n f.close()\n\n self.op_server = str(creds[\"op_server\"])\n self.client_id = str(creds[\"client_id\"])\n self.client_secret = str(creds[\"client_secret\"])\n self.authorization_uri = str(creds[\"authorization_uri\"])\n self.token_uri = str(creds[\"token_uri\"])\n self.userinfo_uri = str(creds[\"userinfo_uri\"])\n self.redirect_uri = str(creds[\"redirect_uri\"])\n self.scope = str(creds[\"scope\"])\n self.title = str(creds[\"title\"])\n self.auto_redirect = creds[\"auto_redirect\"]\n\n print \"GitHub: Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"GitHub. Destroy\"\n print \"GitHub. Destroyed successfully\"\n return True\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"GitHub: authenticate called for step %s\" % str(step)\n identity = CdiUtil.bean(Identity)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n # Get Access Token\n tokenResponse = self.getToken(requestParameters)\n if tokenResponse is None:\n return False\n\n # Get User Info\n userInfo = self.getUserInfo(tokenResponse[\"access_token\"])\n foundUser = self.addUser(userInfo)\n if foundUser is None:\n return False\n\n identity.setWorkingParameter(\"gihub_username\", userInfo[\"login\"])\n identity.setWorkingParameter(\"gihub_access_token\", tokenResponse[\"access_token\"])\n\n print \"GitHub: Successfully authenticated\"\n\n loggedIn = authenticationService.authenticate(foundUser.getUserId())\n print \"GitHub: Authentication: %s\" % str(loggedIn)\n return loggedIn\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n print \"GitHub: prepareForStep called for step %s\" % str(step)\n if step == 1:\n # redirect to external OIDC server\n\n redirect_url_elements = [self.authorization_uri,\n \"?response_type=code id_token\",\n \"&client_id=\", self.client_id,\n \"&scope=\", self.scope,\n \"&redirect_uri=\", self.redirect_uri]\n redirect_url = \"\".join(redirect_url_elements)\n\n identity = CdiUtil.bean(Identity)\n\n if self.auto_redirect:\n facesService = CdiUtil.bean(FacesService)\n facesService.redirectToExternalURL(redirect_url)\n else:\n identity.setWorkingParameter(\"oidc_redirect_uri\", redirect_url)\n identity.setWorkingParameter(\"oidc_title\", self.title)\n\n return True\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n print \"GitHub: getExtraParametersForStep called for step %s\" % str(step)\n return Arrays.asList(\"gihub_username\", \"gihub_access_token\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n print \"GitHub: getCountAuthenticationSteps called\"\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n print \"GitHub: getPageForStep called for step %s\" % str(step)\n if(step == 1):\n return \"/auth/github/github.xhtml\"\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n print \"GitHub: getNextStep called for step %s\" % str(step)\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"GitHub: Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def generalLogin(self, identity, authenticationService):\n print \"GitHub: general login\"\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n return logged_in\n\n def getLocalPrimaryKey(self):\n entryManager = CdiUtil.bean(PersistenceEntryManager)\n config = GluuConfiguration()\n config = entryManager.find(config.getClass(), \"ou=configuration,o=jans\")\n # Pick (one) attribute where user id is stored (e.g. uid/mail)\n # primaryKey is the primary key on the backend AD / LDAP Server\n # localPrimaryKey is the primary key on Janssen. This attr value has been mapped with the primary key attr of the backend AD / LDAP when configuring cache refresh\n uid_attr = config.getIdpAuthn().get(0).getConfig().findValue(\"localPrimaryKey\").asText()\n print \"GitHub: init. uid attribute is '%s'\" % uid_attr\n return uid_attr\n\n def getToken(self, requestParameters):\n print \"GitHub: Get Access Token\"\n oidcCode = ServerUtil.getFirstValue(requestParameters, \"code\")\n httpService = CdiUtil.bean(HttpService)\n httpclient = httpService.getHttpsClient()\n tokenRequestData = urllib.urlencode({\n \"code\" : oidcCode,\n \"grant_type\" : \"authorization_code\",\n \"redirect_uri\": self.redirect_uri,\n \"client_id\": self.client_id,\n \"client_secret\": self.client_secret\n })\n\n tokenRequestHeaders = { \"Content-type\" : \"application/x-www-form-urlencoded\", \"Accept\" : \"application/json\" }\n\n resultResponse = httpService.executePost(httpclient, self.token_uri, None, tokenRequestHeaders, tokenRequestData)\n httpResponse = resultResponse.getHttpResponse()\n httpResponseStatusCode = httpResponse.getStatusLine().getStatusCode()\n print \"OIDC: token response status code: %s\" % httpResponseStatusCode\n if str(httpResponseStatusCode) != \"200\":\n print \"OIDC: Failed to get token, status code %s\" % httpResponseStatusCode\n return None\n\n responseBytes = httpService.getResponseContent(httpResponse)\n responseString = httpService.convertEntityToString(responseBytes)\n tokenResponse = json.loads(responseString)\n\n return tokenResponse\n\n def addUser(self, user):\n try:\n print \"GitHub: Adding user\"\n userId = user[\"login\"]\n userService = CdiUtil.bean(UserService)\n foundUser = userService.getUserByAttribute(\"jansExtUid\", \"github:\"+userId)\n\n if foundUser is None:\n print \"GitHub: User not found, adding new\"\n foundUser = User()\n foundUser.setAttribute(\"jansExtUid\", \"github:\"+userId)\n foundUser.setAttribute(\"jansEmail\", user[\"email\"])\n foundUser.setAttribute(\"mail\", user[\"email\"])\n foundUser.setAttribute(\"displayName\", \"github:\"+userId)\n foundUser.setAttribute(\"givenName\", \"github:\"+userId)\n foundUser.setAttribute(self.getLocalPrimaryKey(), userId)\n foundUser = userService.addUser(foundUser, True)\n\n return foundUser\n except Exception as e:\n print e\n print \"GitHub: Add user Exception: \", sys.exc_info()[1]\n return None\n\n def getUserInfo(self, accessToken):\n try:\n print \"GitHub: Get Userinfo\"\n httpService = CdiUtil.bean(HttpService)\n httpclient = httpService.getHttpsClient()\n tokenRequestHeaders = { \"Authorization\" : \"Bearer %s\" % accessToken, \"Accept\" : \"application/json\" }\n\n resultResponse = httpService.executeGet(httpclient, self.userinfo_uri, tokenRequestHeaders)\n httpResponse = resultResponse.getHttpResponse()\n httpResponseStatusCode = httpResponse.getStatusLine().getStatusCode()\n print \"GitHub: userinfo response status code: %s\" % httpResponseStatusCode\n if str(httpResponseStatusCode) != \"200\":\n print \"GitHub: Failed to get userinfo, status code %s\" % httpResponseStatusCode\n return None\n\n responseBytes = httpService.getResponseContent(httpResponse)\n responseString = httpService.convertEntityToString(responseBytes)\n userinfoResponse = json.loads(responseString)\n\n print userinfoResponse\n\n return userinfoResponse\n except Exception as e:\n print e\n return None\n", "enabled": false, "revision": 0, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "github", "modified": false, "configurationProperties": [ { "hide": false, "value2": "true", "value1": "hide" }, { "hide": false, "value2": "/etc/jans/conf/github.json", "value1": "github_creds_file" }, { "hide": false, "value2": "GitHub Login", "value1": "description" } ], "baseDn": "inum=E706-F8A8,ou=scripts,o=jans" } ], "start": 0, "totalEntriesCount": 13 } 24-11 09:33:41.760 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:41.761 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:41.761 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:41.761 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:41.762 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:41.762 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:41.762 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:41.762 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:41.762 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:41.762 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:41.765 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:41.766 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:41.766 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:41.766 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:41.766 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:41.767 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:41.767 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:41.767 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:41.767 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:41.767 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:42.024 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 4, "entries": [ { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Introspection Sample Script", "locationType": "ldap", "dn": "inum=2DAF-AA90,ou=scripts,o=jans", "inum": "2DAF-AA90", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2018, Janssen\n#\n# Author: Yuriy Zabrovarnyy\n#\n#\n\nfrom io.jans.model.custom.script.type.introspection import IntrospectionType\nfrom java.lang import String\n\nclass Introspection(IntrospectionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Introspection script. Initializing ...\"\n print \"Introspection script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Introspection script. Destroying ...\"\n print \"Introspection script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - apply introspection method, false - ignore it.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def modifyResponse(self, responseAsJsonObject, context):\n responseAsJsonObject.accumulate(\"key_from_script\", \"value_from_script\")\n return True\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "introspection", "name": "introspection_sample", "modified": false, "baseDn": "inum=2DAF-AA90,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Introspection Custom Parameters Sample Script", "locationType": "ldap", "dn": "inum=2DAF-BA90,ou=scripts,o=jans", "inum": "2DAF-BA90", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2019, Janssen\n#\n# Author: Yuriy Mochan\n#\n#\n\nfrom io.jans.model.custom.script.type.introspection import IntrospectionType\nfrom io.jans.as.model.common import AuthorizationGrantList\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.service.cdi.util import CdiUtil\nfrom java.lang import String\n\nclass Introspection(IntrospectionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Introspection script. Initializing ...\"\n print \"Introspection script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Introspection script. Destroying ...\"\n print \"Introspection script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - apply introspection method, false - ignore it.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def modifyResponse(self, responseAsJsonObject, context):\n token = context.getHttpRequest().getParameter(\"token\")\n if token is None:\n print \"Introspection. There is no token in request\"\n return False\n\n authorizationGrantList = CdiUtil.bean(AuthorizationGrantList)\n authorizationGrant = authorizationGrantList.getAuthorizationGrantByAccessToken(token);\n if authorizationGrant is None:\n print \"Introspection. Failed to load authorization grant by token\"\n return False\n\n # Put user_id into response\n responseAsJsonObject.accumulate(\"user_id\", authorizationGrant.getUser().getUserId())\n\n # Put custom parameters into response\n sessionDn = authorizationGrant.getSessionDn();\n if sessionDn is None:\n # There is no session\n return True\n\n sessionIdService = CdiUtil.bean(SessionIdService)\n session = sessionIdService.getSessionById(sessionDn)\n if sessionDn is None:\n print \"Introspection. Failed to load session '%s'\" % sessionDn\n return False\n\n # Return session_id\n responseAsJsonObject.accumulate(\"session_id\", sessionDn)\n \n sessionAttributes = session.getSessionAttributes()\n if sessionAttributes is None:\n # There is no session attributes\n return True\n\n # Append custom claims\n if sessionAttributes.containsKey(\"custom1\"):\n responseAsJsonObject.accumulate(\"custom1\", sessionAttributes.get(\"custom1\"))\n if sessionAttributes.containsKey(\"custom2\"):\n responseAsJsonObject.accumulate(\"custom2\", sessionAttributes.get(\"custom2\"))\n\n return True\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "introspection", "name": "introspection_custom_params", "modified": false, "baseDn": "inum=2DAF-BA90,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "Add GitHub claims to introspection response", "locationType": "ldap", "dn": "inum=8333-DFBC,ou=scripts,o=jans", "inum": "8333-DFBC", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2019, Janssen\n#\n#\n\nfrom io.jans.model.custom.script.type.introspection import IntrospectionType\nfrom io.jans.as.server.model.common import AuthorizationGrantList\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.service.cdi.util import CdiUtil\nfrom java.lang import String\n\nclass Introspection(IntrospectionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Github. Introspection script. Initializing ...\"\n print \"Github. Introspection script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Github. Introspection script. Destroying ...\"\n print \"Github. Introspection script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - apply introspection method, false - ignore it.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def modifyResponse(self, responseAsJsonObject, context):\n print \"Github. Checking for saved parameters in session ...\"\n try:\n token = context.getHttpRequest().getParameter(\"token\")\n if token is None:\n print \"Github. Introspection. There is no token in request\"\n return True\n\n authorizationGrantList = CdiUtil.bean(AuthorizationGrantList)\n authorizationGrant = authorizationGrantList.getAuthorizationGrantByAccessToken(token)\n if authorizationGrant is None:\n print \"Github. Introspection. Failed to load authorization grant by token\"\n return False\n\n # Put user_id into response\n responseAsJsonObject.accumulate(\"user_id\", authorizationGrant.getUser().getUserId())\n\n # Put custom parameters into response\n sessionDn = authorizationGrant.getSessionDn();\n print \"sessionDn '%s'\" % sessionDn\n if sessionDn is None:\n print \"There is no session\"\n return True\n\n sessionIdService = CdiUtil.bean(SessionIdService)\n session = sessionIdService.getSessionByDn(sessionDn, False)\n if sessionDn is None:\n print \"Github. Introspection. Failed to load session '%s'\" % sessionDn\n return False\n\n # Return session_id\n responseAsJsonObject.accumulate(\"session_id\", sessionDn)\n\n sessionAttributes = session.getSessionAttributes()\n if sessionAttributes is None:\n print \"There is no session attributes\"\n return True\n\n # Append custom claims\n customClaims = {}\n\n if sessionAttributes.containsKey(\"gihub_username\"):\n customClaims[\"gihub_username\"] = sessionAttributes.get(\"gihub_username\")\n if sessionAttributes.containsKey(\"gihub_access_token\"):\n customClaims[\"gihub_access_token\"] = sessionAttributes.get(\"gihub_access_token\")\n\n responseAsJsonObject.accumulate(\"customClaims\", customClaims)\n except Exception as e:\n print \"Exception occured. Unable to resolve role/scope mapping.\"\n print e\n\n return True\n\n", "enabled": false, "revision": 0, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "introspection", "name": "github-claims-introspection-script", "modified": false, "baseDn": "inum=8333-DFBC,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Role Based Scopes", "locationType": "ldap", "dn": "inum=A44E-4F3D,ou=scripts,o=jans", "inum": "A44E-4F3D", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2018, Janssen\n#\n# Author: Yuriy Zabrovarnyy, Arnab Dutta, Mustafa Baser\n#\n#\nfrom io.jans.as.model.jwt import Jwt\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.model.crypto import AuthCryptoProvider\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.model.custom.script.type.introspection import IntrospectionType\nfrom io.jans.as.server.model.config import ConfigurationFactory\nfrom io.jans.as.model.config.adminui import AdminConf\nfrom org.json import JSONObject\nfrom java.lang import String\n\ntry:\n import json\nexcept ImportError:\n import simplejson as json\n\n\nclass Introspection(IntrospectionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Introspection script. Initializing ...\"\n print \"Introspection script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Introspection script. Destroying ...\"\n print \"Introspection script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - apply introspection method, false - ignore it.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def modifyResponse(self, responseAsJsonObject, context):\n print \"Inside modifyResponse method of introspection script ....\"\n try:\n # Getting user-info-jwt\n ujwt = context.getHttpRequest().getParameter(\"ujwt\")\n print ujwt\n if not ujwt:\n print \"UJWT is empty or null. Only the default scopes will be added to the token.\"\n entryManager = CdiUtil.bean(PersistenceEntryManager)\n adminConf = AdminConf()\n adminUIConfig = entryManager.find(adminConf.getClass(), \"ou=admin-ui,ou=configuration,o=jans\")\n permissions = adminUIConfig.getDynamic().getPermissions()\n scopes = []\n for ele in permissions:\n if ele.getDefaultPermissionInToken() is not None and ele.getDefaultPermissionInToken():\n scopes.append(ele.getPermission())\n\n responseAsJsonObject.accumulate(\"scope\", scopes)\n return True\n\n # Parse jwt\n userInfoJwt = Jwt.parse(ujwt)\n\n configObj = CdiUtil.bean(ConfigurationFactory)\n jwksObj = configObj.getWebKeysConfiguration()\n jwks = JSONObject(jwksObj)\n\n # Validate JWT\n authCryptoProvider = AuthCryptoProvider()\n validJwt = authCryptoProvider.verifySignature(userInfoJwt.getSigningInput(), userInfoJwt.getEncodedSignature(), userInfoJwt.getHeader().getKeyId(), jwks, None, userInfoJwt.getHeader().getSignatureAlgorithm())\n\n if validJwt == True:\n # Get claims from parsed JWT\n jwtClaims = userInfoJwt.getClaims()\n jansAdminUIRole = jwtClaims.getClaim(\"jansAdminUIRole\")\n # fetch role-scope mapping from database\n scopes = None\n try:\n entryManager = CdiUtil.bean(PersistenceEntryManager)\n adminConf = AdminConf()\n adminUIConfig = entryManager.find(adminConf.getClass(), \"ou=admin-ui,ou=configuration,o=jans\")\n roleScopeMapping = adminUIConfig.getDynamic().getRolePermissionMapping()\n\n for ele in roleScopeMapping:\n if ele.getRole() == jansAdminUIRole.getString(0):\n scopes = ele.getPermissions()\n except Exception as e:\n print \"Error: Failed to fetch/parse Admin UI roleScopeMapping from DB\"\n print e\n\n print \"Following scopes will be added in api token: {}\".format(scopes)\n\n responseAsJsonObject.accumulate(\"scope\", scopes)\n except Exception as e:\n print \"Exception occured. Unable to resolve role/scope mapping.\"\n print e\n return True", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "introspection", "name": "role_based_scopes", "modified": false, "baseDn": "inum=A44E-4F3D,ou=scripts,o=jans" } ], "start": 0, "totalEntriesCount": 4 } 24-11 09:33:42.032 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:42.032 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:42.033 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:42.033 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:42.033 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:42.034 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:42.034 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:42.034 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:42.034 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:42.034 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:42.037 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:42.037 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:42.037 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:42.037 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:42.038 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:42.038 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:42.038 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:42.039 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:42.039 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:42.039 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:42.334 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 39, "entries": [ { "internal": false, "level": 1, "programmingLanguage": "java", "description": "Java Custom Sample Script", "locationType": "ldap", "dn": "inum=0300-BA90,ou=scripts,o=jans", "inum": "0300-BA90", "script": "/* Copyright (c) 2022, Gluu\n Author: Yuriy Z\n */\n\nimport io.jans.model.SimpleCustomProperty;\nimport io.jans.model.custom.script.model.CustomScript;\nimport io.jans.model.custom.script.type.discovery.DiscoveryType;\nimport io.jans.service.custom.script.CustomScriptManager;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.json.JSONObject;\n\nimport java.util.Map;\n\npublic class Discovery implements DiscoveryType {\n\n private static final Logger log = LoggerFactory.getLogger(Discovery.class);\n private static final Logger scriptLogger = LoggerFactory.getLogger(CustomScriptManager.class);\n\n @Override\n public boolean init(Map configurationAttributes) {\n log.info(\"Init of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public boolean init(CustomScript customScript, Map configurationAttributes) {\n log.info(\"Init of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public boolean destroy(Map configurationAttributes) {\n log.info(\"Destroy of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public int getApiVersion() {\n log.info(\"getApiVersion Discovery Java custom script: 11\");\n return 11;\n }\n\n @Override\n public boolean modifyResponse(Object responseAsJsonObject, Object context) {\n scriptLogger.info(\"write to script logger\");\n JSONObject response = (JSONObject) responseAsJsonObject;\n response.accumulate(\"key_from_java\", \"value_from_script_on_java\");\n return true;\n }\n}\n", "enabled": true, "revision": 11, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "discovery", "name": "discovery_java_params", "modified": false, "baseDn": "inum=0300-BA90,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Id Generator script", "locationType": "ldap", "dn": "inum=031C-4A65,ou=scripts,o=jans", "inum": "031C-4A65", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.id import IdGeneratorType\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList\n\nimport java\n\nclass IdGenerator(IdGeneratorType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Id generator. Initialization\"\n print \"Id generator. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Id generator. Destroy\"\n print \"Id generator. Destroyed successfully\"\n return True \n\n def getApiVersion(self):\n return 11\n\n # Id generator init method\n # appId is application Id\n # idType is Id Type\n # idPrefix is Id Prefix\n # user is io.jans.oxtrust.model.JanssenCustomPerson\n # configurationAttributes is java.util.Map\n def generateId(self, appId, idType, idPrefix, configurationAttributes):\n print \"Id generator. Generate Id\"\n print \"Id generator. Generate Id. AppId: '\", appId, \"', IdType: '\", idType, \"', IdPrefix: '\", idPrefix, \"'\"\n\n # Return None or empty string to trigger default Id generation method\n return None\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "id_generator", "name": "id_generator", "modified": false, "baseDn": "inum=031C-4A65,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Dynamic Scope script for org_name", "locationType": "ldap", "dn": "inum=031C-5621,ou=scripts,o=jans", "inum": "031C-5621", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.scope import DynamicScopeType\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList\n\nimport java\n\nclass DynamicScope(DynamicScopeType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Dynamic scope. Initialization\"\n\n print \"Dynamic scope. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Dynamic scope. Destroy\"\n print \"Dynamic scope. Destroyed successfully\"\n return True \n\n # Update Json Web token before signing/encrypring it\n # dynamicScopeContext is io.jans.as.service.external.context.DynamicScopeExternalContext\n # configurationAttributes is java.util.Map\n def update(self, dynamicScopeContext, configurationAttributes):\n print \"Dynamic scope. Update method\"\n\n dynamicScopes = dynamicScopeContext.getDynamicScopes()\n authorizationGrant = dynamicScopeContext.getAuthorizationGrant()\n user = dynamicScopeContext.getUser()\n jsonWebResponse = dynamicScopeContext.getJsonWebResponse()\n claims = jsonWebResponse.getClaims()\n\n # Add organization name if there is scope = org_name\n claims.setClaim(\"org_name\", \"Janssen, Inc.\")\n\n return True\n\n def getSupportedClaims(self, configurationAttributes):\n return Arrays.asList(\"org_name\")\n\n def getApiVersion(self):\n return 11\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "dynamic_scope", "name": "org_name", "modified": false, "baseDn": "inum=031C-5621,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Dynamic Scope script for work_phone", "locationType": "ldap", "dn": "inum=031C-5622,ou=scripts,o=jans", "inum": "031C-5622", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.scope import DynamicScopeType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList\n\nimport java\n\nclass DynamicScope(DynamicScopeType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Dynamic scope. Initialization\"\n\n print \"Dynamic scope. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Dynamic scope. Destroy\"\n print \"Dynamic scope. Destroyed successfully\"\n return True \n\n # Update Json Web token before signing/encrypring it\n # dynamicScopeContext is io.jans.as.service.external.context.DynamicScopeExternalContext\n # configurationAttributes is java.util.Map\n def update(self, dynamicScopeContext, configurationAttributes):\n print \"Dynamic scope. Update method\"\n\n dynamicScopes = dynamicScopeContext.getDynamicScopes()\n authorizationGrant = dynamicScopeContext.getAuthorizationGrant()\n user = dynamicScopeContext.getUser()\n jsonWebResponse = dynamicScopeContext.getJsonWebResponse()\n claims = jsonWebResponse.getClaims()\n\n # Add work phone if there is scope = work_phone\n userService = CdiUtil.bean(UserService)\n workPhone = userService.getCustomAttribute(user, \"telephoneNumber\")\n if workPhone != None:\n claims.setClaim(\"work_phone\", workPhone.getValues())\n\n return True\n\n def getSupportedClaims(self, configurationAttributes):\n return Arrays.asList(\"work_phone\")\n\n def getApiVersion(self):\n return 11\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "dynamic_scope", "name": "work_phone", "modified": false, "baseDn": "inum=031C-5622,ou=scripts,o=jans" }, { "internal": false, "level": 50, "programmingLanguage": "python", "description": "Twilio SMS authentication module", "locationType": "ldap", "dn": "inum=09A0-93D6,ou=scripts,o=jans", "inum": "09A0-93D6", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Gasmyr Mougang\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nimport com.twilio.Twilio as Twilio\nimport com.twilio.rest.api.v2010.account.Message as Message\nimport com.twilio.type.PhoneNumber as PhoneNumber\nimport org.codehaus.jettison.json.JSONArray as JSONArray\n\n\nimport java\nimport random\nimport jarray\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.mobile_number = None\n self.identity = CdiUtil.bean(Identity)\n\n def init(self, customScript, configurationAttributes):\n print \"==============================================\"\n print \"===TWILIO SMS INITIALIZATION==================\"\n print \"==============================================\"\n self.ACCOUNT_SID = None\n self.AUTH_TOKEN = None\n self.FROM_NUMBER = None\n\n # Get Custom Properties\n try:\n self.ACCOUNT_SID = configurationAttributes.get(\"twilio_sid\").getValue2()\n except:\n print 'TwilioSMS, Missing required configuration attribute \"twilio_sid\"'\n\n try:\n self.AUTH_TOKEN = configurationAttributes.get(\"twilio_token\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"twilio_token\"'\n try:\n self.FROM_NUMBER = configurationAttributes.get(\"from_number\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"from_number\"'\n\n if None in (self.ACCOUNT_SID, self.AUTH_TOKEN, self.FROM_NUMBER):\n print \"twilio_sid, twilio_token, from_number is empty ... returning False\"\n return False\n\n print \"===TWILIO SMS INITIALIZATION DONE PROPERLY=====\" \n return True\n\n def destroy(self, configurationAttributes):\n print \"Twilio SMS. Destroy\"\n print \"Twilio SMS. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"==============================================\"\n print \"====TWILIO SMS AUTHENCATION===================\"\n print \"==============================================\"\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n sessionIdService = CdiUtil.bean(SessionIdService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n form_name = ServerUtil.getFirstValue(requestParameters, \"TwilioSmsloginForm\")\n\n print \"TwilioSMS. form_response_passcode: %s\" % str(form_passcode)\n\n if step == 1:\n print \"==============================================\"\n print \"=TWILIO SMS STEP 1 | Password Authentication==\"\n print \"==============================================\"\n credentials = self.identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print 'TwilioSMS, Error retrieving user %s from LDAP' % (user_name)\n return False\n\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n self.mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"mobile\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if self.mobile_number == None:\n print \"TwilioSMS, Error finding mobile number for user '%s'\" % user_name \n \n except:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print 'TwilioSMS, Error finding mobile number for \"%s\". Exception: %s` % (user_name, sys.exc_info()[1])`'\n return False\n\n # Generate Random six digit code and store it in array\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n sessionId.getSessionAttributes().put(\"code\", code)\n\n try:\n Twilio.init(self.ACCOUNT_SID, self.AUTH_TOKEN);\n message = Message.creator(PhoneNumber(self.mobile_number), PhoneNumber(self.FROM_NUMBER), str(code)).create();\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print 'TwilioSMs, Message Sid: %s' % (message.getSid())\n print 'TwilioSMs, User phone: %s' % (self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n sessionId.getSessionAttributes().put(\"mobile_number\", self.mobile_number)\n sessionId.getSessionAttributes().put(\"mobile\", self.mobile_number)\n sessionIdService.updateSessionId(sessionId)\n self.identity.setWorkingParameter(\"mobile_number\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\",self.mobile_number)\n self.identity.setWorkingParameter(\"mobile\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile\",self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"Number: %s\" % (self.identity.getWorkingParameter(\"mobile_number\"))\n print \"Mobile: %s\" % (self.identity.getWorkingParameter(\"mobile\"))\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"========================================\"\n print \"===TWILIO SMS FIRST STEP DONE PROPERLY==\"\n print \"========================================\"\n return True\n except Exception, ex:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n print \"TwilioSMS. Error sending message to Twilio\"\n print \"TwilioSMS. Unexpected error:\", ex\n\n return False\n elif step == 2:\n # Retrieve the session attribute\n print \"==============================================\"\n print \"=TWILIO SMS STEP 2 | Password Authentication==\"\n print \"==============================================\"\n code = session_attributes.get(\"code\")\n print '=======> Session code is \"%s\"' % str(code)\n sessionIdService = CdiUtil.bean(SessionIdService)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n code = sessionId.getSessionAttributes().get(\"code\")\n print '=======> Database code is \"%s\"' % str(code)\n self.identity.setSessionId(sessionId)\n print \"==============================================\"\n print \"TwilioSMS. Code: %s\" % str(code)\n print \"==============================================\"\n if code is None:\n print \"TwilioSMS. Failed to find previously sent code\"\n return False\n\n if form_passcode is None:\n print \"TwilioSMS. Passcode is empty\"\n return False\n\n if len(form_passcode) != 6:\n print \"TwilioSMS. Passcode from response is not 6 digits: %s\" % form_passcode\n return False\n\n if form_passcode == code:\n print \"TiwlioSMS, SUCCESS! User entered the same code!\"\n print \"========================================\"\n print \"===TWILIO SMS SECOND STEP DONE PROPERLY\"\n print \"========================================\"\n return True\n\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n print \"TwilioSMS. FAIL! User entered the wrong code! %s != %s\" % (form_passcode, code)\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Incorrect Twilio code, please try again.\")\n print \"================================================\"\n print \"===TWILIO SMS SECOND STEP FAILED: INCORRECT CODE\"\n print \"================================================\"\n return False\n\n print \"TwilioSMS. ERROR: step param not found or != (1|2)\"\n\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"TwilioSMS. Prepare for Step 1\"\n return True\n elif step == 2:\n print \"TwilioSMS. Prepare for Step 2\"\n return True\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "twilio_sms", "modified": false, "configurationProperties": [ { "hide": false, "value1": "twilio_sid", "description": "Twilio account SID" }, { "hide": false, "value1": "twilio_token", "description": "Twilio API token" }, { "hide": false, "value1": "from_number", "description": "Twilio phone number with SMS capabilities" } ], "baseDn": "inum=09A0-93D6,ou=scripts,o=jans" }, { "internal": false, "level": 45, "programmingLanguage": "python", "description": "SMPP SMS authentication module", "locationType": "ldap", "dn": "inum=09A0-93D7,ou=scripts,o=jans", "inum": "09A0-93D7", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n# Copyright (c) 2019, Tele2\n\n# Author: Jose Gonzalez\n# Author: Gasmyr Mougang\n# Author: Stefan Andersson\n\nfrom java.util import Arrays, Date\nfrom java.io import IOException\nfrom java.lang import Enum\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import ArrayHelper\nfrom io.jans.util import StringHelper\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nfrom org.jsmpp import InvalidResponseException, PDUException\nfrom org.jsmpp.bean import Alphabet, BindType, ESMClass, GeneralDataCoding, MessageClass, NumberingPlanIndicator, RegisteredDelivery, SMSCDeliveryReceipt, TypeOfNumber\nfrom org.jsmpp.extra import NegativeResponseException, ResponseTimeoutException\nfrom org.jsmpp.session import BindParameter, SMPPSession\nfrom org.jsmpp.util import AbsoluteTimeFormatter, TimeFormatter\nimport random\n\n\nclass SmppAttributeError(Exception):\n pass\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.identity = CdiUtil.bean(Identity)\n\n def get_and_parse_smpp_config(self, config, attribute, _type = None, convert = False, optional = False, default_desc = None):\n try:\n value = config.get(attribute).getValue2()\n except:\n if default_desc:\n default_desc = \" using default '{}'\".format(default_desc)\n else:\n default_desc = \"\"\n\n if optional:\n raise SmppAttributeError(\"SMPP missing optional configuration attribute '{}'{}\".format(attribute, default_desc))\n else:\n raise SmppAttributeError(\"SMPP missing required configuration attribute '{}'\".format(attribute))\n\n if _type and issubclass(_type, Enum):\n try:\n return getattr(_type, value)\n except AttributeError:\n raise SmppAttributeError(\"SMPP could not find attribute '{}' in {}\".format(attribute, _type))\n\n if convert:\n try:\n value = int(value)\n except AttributeError:\n try:\n value = int(value, 16)\n except AttributeError:\n raise SmppAttributeError(\"SMPP could not parse value '{}' of attribute '{}'\".format(value, attribute))\n\n return value\n\n def init(self, customScript, configurationAttributes):\n print(\"SMPP Initialization\")\n\n self.TIME_FORMATTER = AbsoluteTimeFormatter()\n\n self.SMPP_SERVER = None\n self.SMPP_PORT = None\n\n self.SYSTEM_ID = None\n self.PASSWORD = None\n\n # Setup some good defaults for TON, NPI and source (from) address\n # TON (Type of Number), NPI (Number Plan Indicator)\n self.SRC_ADDR_TON = TypeOfNumber.ALPHANUMERIC # Alphanumeric\n self.SRC_ADDR_NPI = NumberingPlanIndicator.ISDN # ISDN (E163/E164)\n self.SRC_ADDR = \"Janssen OTP\"\n\n # Don't touch these unless you know what your doing, we don't handle number reformatting for\n # any other type than international.\n self.DST_ADDR_TON = TypeOfNumber.INTERNATIONAL # International\n self.DST_ADDR_NPI = NumberingPlanIndicator.ISDN # ISDN (E163/E164)\n\n # Priority flag and data_coding bits\n self.PRIORITY_FLAG = 3 # Very Urgent (ANSI-136), Emergency (IS-95)\n self.DATA_CODING_ALPHABET = Alphabet.ALPHA_DEFAULT # SMS default alphabet\n self.DATA_CODING_MESSAGE_CLASS = MessageClass.CLASS1 # EM (Mobile Equipment (mobile memory), normal message\n\n # Required server settings\n try:\n self.SMPP_SERVER = self.get_and_parse_smpp_config(configurationAttributes, \"smpp_server\")\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SMPP_PORT = self.get_and_parse_smpp_config(configurationAttributes, \"smpp_port\", convert = True)\n except SmppAttributeError as e:\n print(e)\n\n if None in (self.SMPP_SERVER, self.SMPP_PORT):\n print(\"SMPP smpp_server and smpp_port is empty, will not enable SMPP service\")\n return False\n\n # Optional system_id and password for bind auth\n try:\n self.SYSTEM_ID = self.get_and_parse_smpp_config(configurationAttributes, \"system_id\", optional = True)\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.PASSWORD = self.get_and_parse_smpp_config(configurationAttributes, \"password\", optional = True)\n except SmppAttributeError as e:\n print(e)\n\n if None in (self.SYSTEM_ID, self.PASSWORD):\n print(\"SMPP Authentication disabled\")\n\n # From number and to number settings\n try:\n self.SRC_ADDR_TON = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr_ton\",\n _type = TypeOfNumber,\n optional = True,\n default_desc = self.SRC_ADDR_TON\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SRC_ADDR_NPI = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr_npi\",\n _type = NumberingPlanIndicator,\n optional = True,\n default_desc = self.SRC_ADDR_NPI\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SRC_ADDR = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr\",\n optional = True,\n default_desc = self.SRC_ADDR\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DST_ADDR_TON = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"dest_addr_ton\",\n _type = TypeOfNumber,\n optional = True,\n default_desc = self.DST_ADDR_TON\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DST_ADDR_NPI = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"dest_addr_npi\",\n _type = NumberingPlanIndicator,\n optional = True,\n default_desc = self.DST_ADDR_NPI\n )\n except SmppAttributeError as e:\n print(e)\n\n # Priority flag and data coding, don't touch these unless you know what your doing...\n try:\n self.PRIORITY_FLAG = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"priority_flag\",\n convert = True,\n optional = True,\n default_desc = \"3 (Very Urgent, Emergency)\"\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DATA_CODING_ALPHABET = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"data_coding_alphabet\",\n _type = Alphabet,\n optional = True,\n default_desc = self.DATA_CODING_ALPHABET\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DATA_CODING_MESSAGE_CLASS = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"data_coding_alphabet\",\n _type = MessageClass,\n optional = True,\n default_desc = self.DATA_CODING_MESSAGE_CLASS\n )\n except SmppAttributeError as e:\n print(e)\n\n print(\"SMPP Initialized successfully\")\n return True\n\n def destroy(self, configurationAttributes):\n print(\"SMPP Destroy\")\n print(\"SMPP Destroyed successfully\")\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n\n print(\"SMPP form_response_passcode: {}\".format(str(form_passcode)))\n\n if step == 1:\n print(\"SMPP Step 1 Password Authentication\")\n credentials = self.identity.getCredentials()\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print(\"SMPP Error retrieving user {} from LDAP\".format(user_name))\n return False\n\n mobile_number = None\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if not mobile_number:\n mobile_number = foundUser.getAttribute(\"mobile\")\n if not mobile_number:\n mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if not mobile_number:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print(\"SMPP Error finding mobile number for user '{}'\".format(user_name))\n return False\n except Exception as e:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print(\"SMPP Error finding mobile number for {}: {}\".format(user_name, e))\n return False\n\n # Generate Random six digit code\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n\n self.identity.setWorkingParameter(\"mobile_number\", mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\", mobile_number)\n if not self.sendMessage(mobile_number, str(code)):\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n return False\n\n return True\n elif step == 2:\n # Retrieve the session attribute\n print(\"SMPP Step 2 SMS/OTP Authentication\")\n code = session_attributes.get(\"code\")\n print(\"SMPP Code: {}\".format(str(code)))\n\n if code is None:\n print(\"SMPP Failed to find previously sent code\")\n return False\n\n if form_passcode is None:\n print(\"SMPP Passcode is empty\")\n return False\n\n if len(form_passcode) != 6:\n print(\"SMPP Passcode from response is not 6 digits: {}\".format(form_passcode))\n return False\n\n if form_passcode == code:\n print(\"SMPP SUCCESS! User entered the same code!\")\n return True\n\n print(\"SMPP failed, user entered the wrong code! {} != {}\".format(form_passcode, code))\n facesMessages.add(facesMessage.SEVERITY_ERROR, \"Incorrect SMS code, please try again.\")\n return False\n\n print(\"SMPP ERROR: step param not found or != (1|2)\")\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print(\"SMPP Prepare for Step 1\")\n return True\n elif step == 2:\n print(\"SMPP Prepare for Step 2\")\n return True\n\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def sendMessage(self, number, code):\n status = False\n session = SMPPSession()\n session.setTransactionTimer(10000)\n\n # We only handle international destination number reformatting.\n # All others may vary by configuration decisions taken on SMPP\n # server side which we have no clue about.\n if self.DST_ADDR_TON == TypeOfNumber.INTERNATIONAL and number.startswith(\"+\"):\n number = number[1:]\n\n try:\n print(\"SMPP Connecting\")\n reference_id = session.connectAndBind(\n self.SMPP_SERVER,\n self.SMPP_PORT,\n BindParameter(\n BindType.BIND_TX,\n self.SYSTEM_ID,\n self.PASSWORD,\n None,\n self.SRC_ADDR_TON,\n self.SRC_ADDR_NPI,\n None\n )\n )\n print(\"SMPP Connected to server with system id {}\".format(reference_id))\n\n try:\n message_id = session.submitShortMessage(\n \"CMT\",\n self.SRC_ADDR_TON,\n self.SRC_ADDR_NPI,\n self.SRC_ADDR,\n self.DST_ADDR_TON,\n self.DST_ADDR_NPI,\n number,\n ESMClass(),\n 0,\n self.PRIORITY_FLAG,\n self.TIME_FORMATTER.format(Date()),\n None,\n RegisteredDelivery(SMSCDeliveryReceipt.DEFAULT),\n 0,\n GeneralDataCoding(\n self.DATA_CODING_ALPHABET,\n self.DATA_CODING_MESSAGE_CLASS,\n False\n ),\n 0,\n code\n )\n print(\"SMPP Message '{}' sent to #{} with message id {}\".format(code, number, message_id))\n status = True\n except PDUException as e:\n print(\"SMPP Invalid PDU parameter: {}\".format(e))\n except ResponseTimeoutException as e:\n print(\"SMPP Response timeout: {}\".format(e))\n except InvalidResponseException as e:\n print(\"SMPP Receive invalid response: {}\".format(e))\n except NegativeResponseException as e:\n print(\"SMPP Receive negative response: {}\".format(e))\n except IOException as e:\n print(\"SMPP IO error occured: {}\".format(e))\n finally:\n session.unbindAndClose()\n except IOException as e:\n print(\"SMPP Failed connect and bind to host: {}\".format(e))\n\n return status\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "smpp", "modified": false, "configurationProperties": [ { "hide": false, "value1": "smpp_server", "description": "IP or FQDN of SMPP server" }, { "hide": false, "value1": "smpp_port", "description": "TCP port of the SMPP server" }, { "hide": false, "value1": "system_id", "description": "Use if SMPP server requires authentication" }, { "hide": false, "value1": "password", "description": "Use if SMPP server requires authentication" }, { "hide": false, "value1": "source_addr_ton", "description": "Type of number, eg ALPHANUMERIC, INTERNATIONAL" }, { "hide": false, "value1": "source_addr", "description": "From number/name" } ], "baseDn": "inum=09A0-93D7,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Cache Refresh script", "locationType": "ldap", "dn": "inum=13D3-E7AD,ou=scripts,o=jans", "inum": "13D3-E7AD", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.user import CacheRefreshType\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList\nfrom io.jans.oxtrust.model import JanssenCustomAttribute\nfrom io.jans.model.custom.script.model.bind import BindCredentials\n\nimport java\n\nclass CacheRefresh(CacheRefreshType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Cache refresh. Initialization\"\n print \"Cache refresh. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Cache refresh. Destroy\"\n print \"Cache refresh. Destroyed successfully\"\n return True\n\n # Check if this instance conform starting conditions \n # configurationAttributes is java.util.Map\n # return True/False\n def isStartProcess(self, configurationAttributes):\n print \"Cache refresh. Is start process method\"\n\n return False\n \n # Get bind credentials required to access source server \n # configId is the source server\n # configurationAttributes is java.util.Map\n # return None (use password from configuration) or io.jans.model.custom.script.model.bind.BindCredentials\n def getBindCredentials(self, configId, configurationAttributes):\n print \"Cache refresh. GetBindCredentials method\"\n# if configId == \"source\":\n# return BindCredentials(\"cn=Directory Manager\", \"password\")\n\n return None\n\n # Update user entry before persist it\n # user is io.jans.oxtrust.model.JanssenCustomPerson\n # configurationAttributes is java.util.Map\n def updateUser(self, user, configurationAttributes):\n print \"Cache refresh. UpdateUser method\"\n\n attributes = user.getCustomAttributes()\n\n # Add new attribute preferredLanguage\n attrPrefferedLanguage = JanssenCustomAttribute(\"preferredLanguage\", \"en-us\")\n attributes.add(attrPrefferedLanguage)\n\n # Add new attribute userPassword\n attrUserPassword = JanssenCustomAttribute(\"userPassword\", \"test\")\n attributes.add(attrUserPassword)\n\n # Update givenName attribute\n for attribute in attributes:\n attrName = attribute.getName()\n if ((\"givenname\" == StringHelper.toLowerCase(attrName)) and StringHelper.isNotEmpty(attribute.getValue())):\n attribute.setValue(StringHelper.removeMultipleSpaces(attribute.getValue()) + \" (updated)\")\n\n return True\n\n def getApiVersion(self):\n return 11\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "cache_refresh", "name": "cache_refresh", "modified": false, "baseDn": "inum=13D3-E7AD,ou=scripts,o=jans" }, { "internal": false, "level": 30, "programmingLanguage": "python", "description": "Cert authentication module", "locationType": "ldap", "dn": "inum=2124-0CF1,ou=scripts,o=jans", "inum": "2124-0CF1", "script": "#\n# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom jakarta.faces.context import FacesContext\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.as.common.service.common import EncryptionService\nfrom java.util import Arrays\nfrom io.jans.as.common.cert.fingerprint import FingerprintHelper\nfrom io.jans.as.common.cert.validation import GenericCertificateVerifier\nfrom io.jans.as.common.cert.validation import PathCertificateVerifier\nfrom io.jans.as.common.cert.validation import OCSPCertificateVerifier\nfrom io.jans.as.common.cert.validation import CRLCertificateVerifier\nfrom io.jans.as.common.cert.validation.model import ValidationStatus\nfrom io.jans.as.server.util import CertUtil\nfrom io.jans.as.model.util import CertUtils\nfrom io.jans.as.server.service.net import HttpService\nfrom org.apache.http.params import CoreConnectionPNames\n\nimport sys\nimport base64\nimport urllib\n\nimport java\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Cert. Initialization\"\n\n if not (configurationAttributes.containsKey(\"chain_cert_file_path\")):\n print \"Cert. Initialization. Property chain_cert_file_path is mandatory\"\n return False\n\n if not (configurationAttributes.containsKey(\"map_user_cert\")):\n print \"Cert. Initialization. Property map_user_cert is mandatory\"\n return False\n\n chain_cert_file_path = configurationAttributes.get(\"chain_cert_file_path\").getValue2()\n\n self.chain_certs = CertUtil.loadX509CertificateFromFile(chain_cert_file_path)\n if self.chain_certs == None:\n print \"Cert. Initialization. Failed to load chain certificates from '%s'\" % chain_cert_file_path\n return False\n\n print \"Cert. Initialization. Loaded '%d' chain certificates\" % self.chain_certs.size()\n \n crl_max_response_size = 5 * 1024 * 1024 # 10Mb\n if configurationAttributes.containsKey(\"crl_max_response_size\"):\n crl_max_response_size = StringHelper.toInteger(configurationAttributes.get(\"crl_max_response_size\").getValue2(), crl_max_response_size)\n print \"Cert. Initialization. CRL max response size is '%d'\" % crl_max_response_size\n\n # Define array to order methods correctly\n self.validator_types = [ 'generic', 'path', 'ocsp', 'crl']\n self.validators = { 'generic' : [GenericCertificateVerifier(), False],\n 'path' : [PathCertificateVerifier(False), False],\n 'ocsp' : [OCSPCertificateVerifier(), False],\n 'crl' : [CRLCertificateVerifier(crl_max_response_size), False] }\n\n for type in self.validator_types:\n validator_param_name = \"use_%s_validator\" % type\n if configurationAttributes.containsKey(validator_param_name):\n validator_status = StringHelper.toBoolean(configurationAttributes.get(validator_param_name).getValue2(), False)\n self.validators[type][1] = validator_status\n\n print \"Cert. Initialization. Validation method '%s' status: '%s'\" % (type, self.validators[type][1])\n\n self.map_user_cert = StringHelper.toBoolean(configurationAttributes.get(\"map_user_cert\").getValue2(), False)\n print \"Cert. Initialization. map_user_cert: '%s'\" % self.map_user_cert\n\n self.enabled_recaptcha = self.initRecaptcha(configurationAttributes)\n print \"Cert. Initialization. enabled_recaptcha: '%s'\" % self.enabled_recaptcha\n\n print \"Cert. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Cert. Destroy\"\n\n for type in self.validator_types:\n self.validators[type][0].destroy()\n\n print \"Cert. Destroyed successfully\"\n\n return True\n\n def getApiVersion(self):\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n print \"Cert. Authenticate for step 1\"\n login_button = ServerUtil.getFirstValue(requestParameters, \"loginForm:loginButton\")\n if StringHelper.isEmpty(login_button):\n print \"Cert. Authenticate for step 1. Form were submitted incorrectly\"\n return False\n if self.enabled_recaptcha:\n print \"Cert. Authenticate for step 1. Validating recaptcha response\"\n recaptcha_response = ServerUtil.getFirstValue(requestParameters, \"g-recaptcha-response\")\n\n recaptcha_result = self.validateRecaptcha(recaptcha_response)\n print \"Cert. Authenticate for step 1. recaptcha_result: '%s'\" % recaptcha_result\n \n return recaptcha_result\n\n return True\n elif step == 2:\n print \"Cert. Authenticate for step 2\"\n\n # Validate if user selected certificate\n cert_x509 = self.getSessionAttribute(\"cert_x509\")\n if cert_x509 == None:\n print \"Cert. Authenticate for step 2. User not selected any certs\"\n identity.setWorkingParameter(\"cert_selected\", False)\n \n # Return True to inform user how to reset workflow\n return True\n else:\n identity.setWorkingParameter(\"cert_selected\", True)\n x509Certificate = self.certFromString(cert_x509)\n\n subjectX500Principal = x509Certificate.getSubjectX500Principal()\n print \"Cert. Authenticate for step 2. User selected certificate with DN '%s'\" % subjectX500Principal\n \n # Validate certificates which user selected\n valid = self.validateCertificate(x509Certificate)\n if not valid:\n print \"Cert. Authenticate for step 2. Certificate DN '%s' is not valid\" % subjectX500Principal\n identity.setWorkingParameter(\"cert_valid\", False)\n \n # Return True to inform user how to reset workflow\n return True\n\n identity.setWorkingParameter(\"cert_valid\", True)\n \n # Calculate certificate fingerprint\n x509CertificateFingerprint = self.calculateCertificateFingerprint(x509Certificate)\n identity.setWorkingParameter(\"cert_x509_fingerprint\", x509CertificateFingerprint)\n print \"Cert. Authenticate for step 2. Fingerprint is '%s' of certificate with DN '%s'\" % (x509CertificateFingerprint, subjectX500Principal)\n \n # Attempt to find user by certificate fingerprint\n cert_user_external_uid = \"cert:%s\" % x509CertificateFingerprint\n print \"Cert. Authenticate for step 2. Attempting to find user by jansExtUid attribute value %s\" % cert_user_external_uid\n\n find_user_by_external_uid = userService.getUserByAttribute(\"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n print \"Cert. Authenticate for step 2. Failed to find user\"\n \n if self.map_user_cert:\n print \"Cert. Authenticate for step 2. Storing cert_user_external_uid for step 3\"\n identity.setWorkingParameter(\"cert_user_external_uid\", cert_user_external_uid)\n return True\n else:\n print \"Cert. Authenticate for step 2. Mapping cert to user account is not allowed\"\n identity.setWorkingParameter(\"cert_count_login_steps\", 2)\n return False\n\n foundUserName = find_user_by_external_uid.getUserId()\n print \"Cert. Authenticate for step 2. foundUserName: \" + foundUserName\n\n logged_in = False\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(foundUserName)\n \n print \"Cert. Authenticate for step 2. Setting count steps to 2\"\n identity.setWorkingParameter(\"cert_count_login_steps\", 2)\n\n return logged_in\n elif step == 3:\n print \"Cert. Authenticate for step 3\"\n\n cert_user_external_uid = self.getSessionAttribute(\"cert_user_external_uid\")\n if cert_user_external_uid == None:\n print \"Cert. Authenticate for step 3. cert_user_external_uid is empty\"\n return False\n\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return False\n\n # Double check just to make sure. We did checking in previous step\n # Check if there is user which has cert_user_external_uid\n # Avoid mapping user cert to more than one IDP account\n find_user_by_external_uid = userService.getUserByAttribute(\"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n # Add cert_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n print \"Cert. Authenticate for step 3. Failed to update current user\"\n return False\n\n return True\n \n return True\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n print \"Cert. Prepare for step %d\" % step\n identity = CdiUtil.bean(Identity)\n \n if step == 1:\n if self.enabled_recaptcha:\n identity.setWorkingParameter(\"recaptcha_site_key\", self.recaptcha_creds['site_key'])\n elif step == 2:\n # Store certificate in session\n facesContext = CdiUtil.bean(FacesContext)\n externalContext = facesContext.getExternalContext()\n request = externalContext.getRequest()\n\n # Try to get certificate from header X-ClientCert\n clientCertificate = externalContext.getRequestHeaderMap().get(\"X-ClientCert\")\n if clientCertificate != None:\n x509Certificate = self.certFromPemString(clientCertificate)\n identity.setWorkingParameter(\"cert_x509\", self.certToString(x509Certificate))\n print \"Cert. Prepare for step 2. Storing user certificate obtained from 'X-ClientCert' header\"\n return True\n\n # Try to get certificate from attribute jakarta.servlet.request.X509Certificate\n x509Certificates = request.getAttribute('jakarta.servlet.request.X509Certificate')\n if (x509Certificates != None) and (len(x509Certificates) > 0):\n identity.setWorkingParameter(\"cert_x509\", self.certToString(x509Certificates[0]))\n print \"Cert. Prepare for step 2. Storing user certificate obtained from 'jakarta.servlet.request.X509Certificate' attribute\"\n return True\n\n if step < 4:\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"cert_selected\", \"cert_valid\", \"cert_x509\", \"cert_x509_fingerprint\", \"cert_count_login_steps\", \"cert_user_external_uid\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n cert_count_login_steps = self.getSessionAttribute(\"cert_count_login_steps\")\n if cert_count_login_steps != None:\n return cert_count_login_steps\n else:\n return 3\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n return \"/auth/cert/login.xhtml\"\n if step == 2:\n return \"/auth/cert/cert-login.xhtml\"\n elif step == 3:\n cert_selected = self.getSessionAttribute(\"cert_selected\")\n if True != cert_selected:\n return \"/auth/cert/cert-not-selected.xhtml\"\n\n cert_valid = self.getSessionAttribute(\"cert_valid\")\n if True != cert_valid:\n return \"/auth/cert/cert-invalid.xhtml\"\n \n return \"/login.xhtml\"\n\n return \"\"\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def processBasicAuthentication(self, credentials):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if (find_user_by_uid == None):\n print \"Cert. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def getSessionAttribute(self, attribute_name):\n identity = CdiUtil.bean(Identity)\n\n # Try to get attribute value from Seam event context\n if identity.isSetWorkingParameter(attribute_name):\n return identity.getWorkingParameter(attribute_name)\n \n # Try to get attribute from persistent session\n session_id = identity.getSessionId()\n if session_id == None:\n return None\n\n session_attributes = session_id.getSessionAttributes()\n if session_attributes == None:\n return None\n\n if session_attributes.containsKey(attribute_name):\n return session_attributes.get(attribute_name)\n\n return None\n\n def calculateCertificateFingerprint(self, x509Certificate):\n print \"Cert. Calculate fingerprint for certificate DN '%s'\" % x509Certificate.getSubjectX500Principal()\n \n publicKey = x509Certificate.getPublicKey()\n \n # Use oxAuth implementation\n fingerprint = FingerprintHelper.getPublicKeySshFingerprint(publicKey)\n \n return fingerprint \n\n def validateCertificate(self, x509Certificate):\n subjectX500Principal = x509Certificate.getSubjectX500Principal()\n\n print \"Cert. Validating certificate with DN '%s'\" % subjectX500Principal\n \n validation_date = java.util.Date()\n\n for type in self.validator_types:\n if self.validators[type][1]:\n result = self.validators[type][0].validate(x509Certificate, self.chain_certs, validation_date)\n print \"Cert. Validate certificate: '%s'. Validation method '%s' result: '%s'\" % (subjectX500Principal, type, result)\n \n if (result.getValidity() != ValidationStatus.CertificateValidity.VALID):\n print \"Cert. Certificate: '%s' is invalid\" % subjectX500Principal\n return False\n \n return True\n\n def certToString(self, x509Certificate):\n if x509Certificate == None:\n return None\n return base64.b64encode(x509Certificate.getEncoded())\n\n def certFromString(self, x509CertificateEncoded):\n x509CertificateDecoded = base64.b64decode(x509CertificateEncoded)\n return CertUtils.x509CertificateFromBytes(x509CertificateDecoded)\n\n def certFromPemString(self, pemCertificate):\n x509CertificateEncoded = pemCertificate.replace(\"-----BEGIN CERTIFICATE-----\", \"\").replace(\"-----END CERTIFICATE-----\", \"\").strip()\n return self.certFromString(x509CertificateEncoded)\n\n def initRecaptcha(self, configurationAttributes):\n print \"Cert. Initialize recaptcha\"\n if not configurationAttributes.containsKey(\"credentials_file\"):\n return False\n\n cert_creds_file = configurationAttributes.get(\"credentials_file\").getValue2()\n\n # Load credentials from file\n f = open(cert_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n except:\n print \"Cert. Initialize recaptcha. Failed to load credentials from file: %s\" % cert_creds_file\n return False\n finally:\n f.close()\n \n try:\n recaptcha_creds = creds[\"recaptcha\"]\n except:\n print \"Cert. Initialize recaptcha. Invalid credentials file '%s' format:\" % cert_creds_file\n return False\n \n self.recaptcha_creds = None\n if recaptcha_creds[\"enabled\"]:\n print \"Cert. Initialize recaptcha. Recaptcha is enabled\"\n\n encryptionService = CdiUtil.bean(EncryptionService)\n\n site_key = recaptcha_creds[\"site_key\"]\n secret_key = recaptcha_creds[\"secret_key\"]\n\n try:\n site_key = encryptionService.decrypt(site_key)\n except:\n # Ignore exception. Value is not encrypted\n print \"Cert. Initialize recaptcha. Assuming that 'site_key' in not encrypted\"\n\n try:\n secret_key = encryptionService.decrypt(secret_key)\n except:\n # Ignore exception. Value is not encrypted\n print \"Cert. Initialize recaptcha. Assuming that 'secret_key' in not encrypted\"\n\n \n self.recaptcha_creds = { 'site_key' : site_key, \"secret_key\" : secret_key }\n print \"Cert. Initialize recaptcha. Recaptcha is configured correctly\"\n\n return True\n else:\n print \"Cert. Initialize recaptcha. Recaptcha is disabled\"\n\n return False\n\n def validateRecaptcha(self, recaptcha_response):\n print \"Cert. Validate recaptcha response\"\n\n facesContext = CdiUtil.bean(FacesContext)\n request = facesContext.getExternalContext().getRequest()\n\n remoteip = ServerUtil.getIpAddress(request)\n print \"Cert. Validate recaptcha response. remoteip: '%s'\" % remoteip\n\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n http_client_params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15 * 1000)\n \n recaptcha_validation_url = \"https://www.google.com/recaptcha/api/siteverify\"\n recaptcha_validation_request = urllib.urlencode({ \"secret\" : self.recaptcha_creds['secret_key'], \"response\" : recaptcha_response, \"remoteip\" : remoteip })\n recaptcha_validation_headers = { \"Content-type\" : \"application/x-www-form-urlencoded\", \"Accept\" : \"application/json\" }\n\n try:\n http_service_response = httpService.executePost(http_client, recaptcha_validation_url, None, recaptcha_validation_headers, recaptcha_validation_request)\n http_response = http_service_response.getHttpResponse()\n except:\n print \"Cert. Validate recaptcha response. Exception: \", sys.exc_info()[1]\n return False\n\n try:\n if not httpService.isResponseStastusCodeOk(http_response):\n print \"Cert. Validate recaptcha response. Get invalid response from validation server: \", str(http_response.getStatusLine().getStatusCode())\n httpService.consume(http_response)\n return False\n \n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes)\n httpService.consume(http_response)\n finally:\n http_service_response.closeConnection()\n\n if response_string == None:\n print \"Cert. Validate recaptcha response. Get empty response from validation server\"\n return False\n \n response = json.loads(response_string)\n \n return response[\"success\"]\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "cert", "modified": false, "configurationProperties": [ { "hide": false, "value2": "/etc/certs/chain_cert.pem", "value1": "chain_cert_file_path" }, { "hide": false, "value2": "/etc/certs/cert_creds.json", "value1": "credentials_file" }, { "hide": false, "value2": "true", "value1": "map_user_cert" }, { "hide": false, "value2": "true", "value1": "use_generic_validator" }, { "hide": false, "value2": "true", "value1": "use_path_validator" }, { "hide": false, "value2": "false", "value1": "use_ocsp_validator" }, { "hide": false, "value2": "false", "value1": "use_crl_validator" }, { "hide": false, "value2": "10485760", "value1": "crl_max_response_size" } ], "baseDn": "inum=2124-0CF1,ou=scripts,o=jans" }, { "internal": false, "level": 40, "programmingLanguage": "python", "description": "OTP Validation of passwords using Yubicloud authentication module", "locationType": "ldap", "dn": "inum=24FD-B96E,ou=scripts,o=jans", "inum": "24FD-B96E", "script": "# Janssen Project software is available under the Apache License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan, Arunmozhi\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper\n\nimport java\n\nimport urllib2\nimport urllib\nimport uuid\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Yubicloud. Initialization\"\n\n self.api_server = configurationAttributes.get(\"yubicloud_uri\").getValue2()\n self.api_key = configurationAttributes.get(\"yubicloud_api_key\").getValue2()\n self.client_id = configurationAttributes.get(\"yubicloud_id\").getValue2()\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Yubicloud. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Yubicloud. Authenticate for step 1\"\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n username = credentials.getUsername()\n otp = credentials.getPassword()\n\n # Validate otp length\n if len(otp) < 32 or len(otp) > 48:\n print \"Yubicloud. Invalid OTP length\"\n return False\n\n user_service = CdiUtil.bean(UserService)\n user = user_service.getUser(username)\n\n public_key = user.getAttribute('yubikeyId')\n\n # Match the user with the yubikey\n if public_key not in otp:\n print \"Yubicloud. Public Key not matching OTP\"\n return False\n\n data = \"\"\n try:\n nonce = str(uuid.uuid4()).replace(\"-\", \"\")\n params = urllib.urlencode({\"id\": self.client_id, \"otp\": otp, \"nonce\": nonce})\n url = \"https://\" + self.api_server + \"/wsapi/2.0/verify/?\" + params\n f = urllib2.urlopen(url)\n data = f.read()\n except Exception as e:\n print \"Yubicloud. Exception \", e\n\n if 'status=OK' in data:\n user_service.authenticate(username)\n print \"Yubicloud. Authentication Successful\"\n return True\n\n print \"Yubicloud. End of Step 1. Returning False.\"\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Yubicloud. Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "yubicloud", "modified": false, "configurationProperties": [ { "hide": false, "value2": "api.yubico.com", "value1": "yubicloud_uri" }, { "hide": false, "value1": "yubicloud_api_key" }, { "hide": false, "value1": "yubicloud_id" } ], "baseDn": "inum=24FD-B96E,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Update token sample script", "locationType": "ldap", "dn": "inum=2D3E.5A03,ou=scripts,o=jans", "inum": "2D3E.5A03", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2021, Gluu\n#\n# Author: Yuriy Movchan\n#\n#\n\nfrom io.jans.model.custom.script.type.token import UpdateTokenType\n\nclass UpdateToken(UpdateTokenType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Update token script. Initializing ...\"\n print \"Update token script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Update token script. Destroying ...\"\n print \"Update token script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - indicates that script applied changes\n # This method is called after adding headers and claims. Hence script can override them\n # Note :\n # jsonWebResponse - is io.jans.as.model.token.JsonWebResponse, you can use any method to manipulate JWT\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def modifyIdToken(self, jsonWebResponse, context):\n print \"Update token script. Modify idToken: %s\" % jsonWebResponse\n\n jsonWebResponse.getHeader().setClaim(\"custom_header_name\", \"custom_header_value\")\n jsonWebResponse.getClaims().setClaim(\"custom_claim_name\", \"custom_claim_value\")\n\n print \"Update token script. After modify idToken: %s\" % jsonWebResponse\n return True\n\n # Returns boolean, true - indicates that script applied changes. If false is returned token will not be created.\n # refreshToken is reference of io.jans.as.server.model.common.RefreshToken (note authorization grant can be taken as context.getGrant())\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def modifyRefreshToken(self, refreshToken, context):\n return True\n\n # Returns boolean, true - indicates that script applied changes. If false is returned token will not be created.\n # accessToken is reference of io.jans.as.server.model.common.AccessToken (note authorization grant can be taken as context.getGrant())\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def modifyAccessToken(self, accessToken, context):\n return True\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getRefreshTokenLifetimeInSeconds(self, context):\n return 0\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getIdTokenLifetimeInSeconds(self, context):\n return 0\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getAccessTokenLifetimeInSeconds(self, context):\n return 0\n", "enabled": false, "revision": 12, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "update_token", "name": "update_token_sample", "modified": false, "baseDn": "inum=2D3E.5A03,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Introspection Sample Script", "locationType": "ldap", "dn": "inum=2DAF-AA90,ou=scripts,o=jans", "inum": "2DAF-AA90", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2018, Janssen\n#\n# Author: Yuriy Zabrovarnyy\n#\n#\n\nfrom io.jans.model.custom.script.type.introspection import IntrospectionType\nfrom java.lang import String\n\nclass Introspection(IntrospectionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Introspection script. Initializing ...\"\n print \"Introspection script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Introspection script. Destroying ...\"\n print \"Introspection script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - apply introspection method, false - ignore it.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def modifyResponse(self, responseAsJsonObject, context):\n responseAsJsonObject.accumulate(\"key_from_script\", \"value_from_script\")\n return True\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "introspection", "name": "introspection_sample", "modified": false, "baseDn": "inum=2DAF-AA90,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Resource Owner Password Credentials Example", "locationType": "ldap", "dn": "inum=2DAF-AA91,ou=scripts,o=jans", "inum": "2DAF-AA91", "script": "from io.jans.model.custom.script.type.owner import ResourceOwnerPasswordCredentialsType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.service.cdi.util import CdiUtil\nfrom java.lang import String\n\nclass ResourceOwnerPasswordCredentials(ResourceOwnerPasswordCredentialsType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"ROPC script. Initializing ...\"\n\n self.usernameParamName = \"username\"\n self.passwordParamName = \"password\"\n\n print \"ROPC script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"ROPC script. Destroying ...\"\n print \"ROPC script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns True and set user into context when user authenticated succesfully\n # Returns False when user not authenticated or it's needed to cancel notmal flow\n # Note :\n # context is reference of io.jans.as.service.external.context.ExternalResourceOwnerPasswordCredentialsContext#ExternalResourceOwnerPasswordCredentialsContext (in https://github.com/JanssenFederation/oxauth project, )\n def authenticate(self, context):\n print \"ROPC script. Authenticate\"\n deviceIdParam = context.getHttpRequest().getParameterValues(\"device_id\")\n if deviceIdParam != None and (deviceIdParam.lenght > 0 ):\n result = deviceIdParam[0] == \"device_id_1\"\n if not result:\n return False\n\n # Set auntenticated user in context\n # context.setUser(user)\n return True\n\n # Do generic authentication in other cases\n authService = CdiUtil.bean(AuthenticationService)\n\n username = context.getHttpRequest().getParameter(self.usernameParamName)\n password = context.getHttpRequest().getParameter(self.passwordParamName)\n result = authService.authenticate(username, password)\n if not result:\n print \"ROPC script. Authenticate. Could not authenticate user '%s' \" % username\n return False\n\n context.setUser(authService.getAuthenticatedUser())\n\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "resource_owner_password_credentials", "name": "resource_owner_password_credentials_example", "modified": false, "baseDn": "inum=2DAF-AA91,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Introspection Custom Parameters Sample Script", "locationType": "ldap", "dn": "inum=2DAF-BA90,ou=scripts,o=jans", "inum": "2DAF-BA90", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2019, Janssen\n#\n# Author: Yuriy Mochan\n#\n#\n\nfrom io.jans.model.custom.script.type.introspection import IntrospectionType\nfrom io.jans.as.model.common import AuthorizationGrantList\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.service.cdi.util import CdiUtil\nfrom java.lang import String\n\nclass Introspection(IntrospectionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Introspection script. Initializing ...\"\n print \"Introspection script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Introspection script. Destroying ...\"\n print \"Introspection script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - apply introspection method, false - ignore it.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def modifyResponse(self, responseAsJsonObject, context):\n token = context.getHttpRequest().getParameter(\"token\")\n if token is None:\n print \"Introspection. There is no token in request\"\n return False\n\n authorizationGrantList = CdiUtil.bean(AuthorizationGrantList)\n authorizationGrant = authorizationGrantList.getAuthorizationGrantByAccessToken(token);\n if authorizationGrant is None:\n print \"Introspection. Failed to load authorization grant by token\"\n return False\n\n # Put user_id into response\n responseAsJsonObject.accumulate(\"user_id\", authorizationGrant.getUser().getUserId())\n\n # Put custom parameters into response\n sessionDn = authorizationGrant.getSessionDn();\n if sessionDn is None:\n # There is no session\n return True\n\n sessionIdService = CdiUtil.bean(SessionIdService)\n session = sessionIdService.getSessionById(sessionDn)\n if sessionDn is None:\n print \"Introspection. Failed to load session '%s'\" % sessionDn\n return False\n\n # Return session_id\n responseAsJsonObject.accumulate(\"session_id\", sessionDn)\n \n sessionAttributes = session.getSessionAttributes()\n if sessionAttributes is None:\n # There is no session attributes\n return True\n\n # Append custom claims\n if sessionAttributes.containsKey(\"custom1\"):\n responseAsJsonObject.accumulate(\"custom1\", sessionAttributes.get(\"custom1\"))\n if sessionAttributes.containsKey(\"custom2\"):\n responseAsJsonObject.accumulate(\"custom2\", sessionAttributes.get(\"custom2\"))\n\n return True\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "introspection", "name": "introspection_custom_params", "modified": false, "baseDn": "inum=2DAF-BA90,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Resource Owner Password Credentials Custom Parameters Example", "locationType": "ldap", "dn": "inum=2DAF-BA91,ou=scripts,o=jans", "inum": "2DAF-BA91", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2019, Janssen\n#\n# Author: Yuriy Mochan\n#\n#\n\nfrom io.jans.model.custom.script.type.owner import ResourceOwnerPasswordCredentialsType\nfrom io.jans.as.server.service import AuthenticationService, SessionIdService\nfrom io.jans.as.model.common import SessionIdState\nfrom io.jans.as.server.security import Identity\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.model.authorize import AuthorizeRequestParam\nfrom io.jans.as.model.config import Constants\nfrom io.jans.util import StringHelper\nfrom java.lang import String\nfrom java.util import Date, HashMap\n\nclass ResourceOwnerPasswordCredentials(ResourceOwnerPasswordCredentialsType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"ROPC script. Initializing ...\"\n print \"ROPC script. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"ROPC script. Destroying ...\"\n print \"ROPC script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns True and set user into context when user authenticated succesfully\n # Returns False when user not authenticated or it's needed to cancel notmal flow\n # Note :\n # context is reference of io.jans.as.service.external.context.ExternalResourceOwnerPasswordCredentialsContext#ExternalResourceOwnerPasswordCredentialsContext (in https://github.com/JanssenFederation/oxauth project, )\n def authenticate(self, context):\n print \"ROPC script. Authenticate\"\n\n # Do generic authentication\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n username = context.getHttpRequest().getParameter(\"username\")\n password = context.getHttpRequest().getParameter(\"password\")\n result = authenticationService.authenticate(username, password)\n if not result:\n print \"ROPC script. Authenticate. Could not authenticate user '%s' \" % username\n return False\n\n context.setUser(authenticationService.getAuthenticatedUser())\n print \"ROPC script. Authenticate. User '%s' authenticated successfully\" % username\n \n\n # Get cusom parameters from request\n customParam1Value = context.getHttpRequest().getParameter(\"custom1\")\n customParam2Value = context.getHttpRequest().getParameter(\"custom2\")\n\n customParameters = {}\n customParameters[\"custom1\"] = customParam1Value\n customParameters[\"custom2\"] = customParam2Value\n print \"ROPC script. Authenticate. User '%s'. Creating authenticated session with custom attributes: '%s'\" % (username, customParameters)\n\n session = self.createNewAuthenticatedSession(context, customParameters)\n \n # This is needed to allow store in token entry sessionId\n authenticationService.configureEventUser(session)\n\n print \"ROPC script. Authenticate. User '%s'. Created authenticated session: '%s'\" % (username, customParameters)\n\n return True\n\n def createNewAuthenticatedSession(self, context, customParameters={}):\n sessionIdService = CdiUtil.bean(SessionIdService)\n\n user = context.getUser()\n client = CdiUtil.bean(Identity).getSessionClient().getClient()\n\n # Add mandatory session parameters\n sessionAttributes = HashMap()\n sessionAttributes.put(Constants.AUTHENTICATED_USER, user.getUserId())\n sessionAttributes.put(AuthorizeRequestParam.CLIENT_ID, client.getClientId())\n sessionAttributes.put(AuthorizeRequestParam.PROMPT, \"\")\n\n # Add custom session parameters\n for key, value in customParameters.iteritems():\n if StringHelper.isNotEmpty(value):\n sessionAttributes.put(key, value)\n\n # Generate authenticated session\n sessionId = sessionIdService.generateAuthenticatedSessionId(context.getHttpRequest(), user.getDn(), sessionAttributes)\n\n print \"ROPC script. Generated session id. DN: '%s'\" % sessionId.getDn()\n\n return sessionId\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "resource_owner_password_credentials", "name": "resource_owner_password_credentials_custom_params_example", "modified": false, "baseDn": "inum=2DAF-BA91,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Frontchannel logout Sample", "locationType": "ldap", "dn": "inum=2DAF-CA90,ou=scripts,o=jans", "inum": "2DAF-CA90", "script": "# Copyright (c) 2020, Janssen\n#\n# Author: Yuriy Zabrovarnyy\n#\n\nfrom io.jans.model.custom.script.type.logout import EndSessionType\nfrom java.lang import String\n\nclass EndSession(EndSessionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"EndSession script. Initializing ...\"\n print \"EndSession script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"EndSession script. Destroying ...\"\n print \"EndSession script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns string, it must be valid HTML (with iframes according to spec http://openid.net/specs/openid-connect-frontchannel-1_0.html)\n # This method is called on `/end_session` after actual session is killed and oxauth construct HTML to return to RP.\n # Note :\n # context is reference of io.jans.as.service.external.context.EndSessionContext (in https://github.com/JanssenFederation/oxauth project, )\n def getFrontchannelHtml(self, context):\n return \"\"", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "end_session", "name": "frontchannel_logout_sample", "modified": false, "baseDn": "inum=2DAF-CA90,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample UMA RPT Policy", "locationType": "ldap", "dn": "inum=2DAF-F995,ou=scripts,o=jans", "inum": "2DAF-F995", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2017, Janssen\n#\n# Author: Yuriy Zabrovarnyy\n#\n# Call sequence\n# 1. First is call constructor of the Script __init__\n# 2. Next init() method\n# 3. Next getRequiredClaims() - method returns required claims, so UMA engine checks whether\n# in request RP provided all claims that are required. Pay attention that there can be\n# multiple scripts bound to the scopes, means that UMA engine will build set of required claims\n# from all scripts. If not all claims are provided need_info error is sent to RP.\n# During need_info construction getClaimsGatheringScriptName() method is called\n# 4. authorize() method is called if all required claims are provided.\n# 5. destroy()\n\nfrom io.jans.model.custom.script.type.uma import UmaRptPolicyType\nfrom io.jans.model.uma import ClaimDefinitionBuilder\nfrom java.lang import String\n\nclass UmaRptPolicy(UmaRptPolicyType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"RPT Policy. Initializing ...\"\n print \"RPT Policy. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"RPT Policy. Destroying ...\"\n print \"RPT Policy. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns required claims definitions.\n # This method must provide definition of all claims that is used in 'authorize' method.\n # Note : name in both places must match.\n # %1$s - placeholder for issuer. It uses standard Java Formatter, docs : https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html\n def getRequiredClaims(self, context): # context is reference of io.jans.as.uma.authorization.UmaAuthorizationContext\n json = \"\"\"[\n {\n \"issuer\" : [ \"%1$s\" ],\n \"name\" : \"country\",\n \"claim_token_format\" : [ \"http://openid.net/specs/openid-connect-core-1_0.html#IDToken\" ],\n \"claim_type\" : \"string\",\n \"friendly_name\" : \"country\"\n },\n {\n \"issuer\" : [ \"%1$s\" ],\n \"name\" : \"city\",\n \"claim_token_format\" : [ \"http://openid.net/specs/openid-connect-core-1_0.html#IDToken\" ],\n \"claim_type\" : \"string\",\n \"friendly_name\" : \"city\"\n }\n ]\"\"\"\n context.addRedirectUserParam(\"customUserParam1\", \"value1\") # pass some custom parameters to need_info uri. It can be removed if you don't need custom parameters.\n return ClaimDefinitionBuilder.build(String.format(json, context.getIssuer()))\n\n # Main authorization method. Must return True or False.\n def authorize(self, context): # context is reference of io.jans.as.uma.authorization.UmaAuthorizationContext\n print \"RPT Policy. Authorizing ...\"\n\n if context.getClaim(\"country\") == 'US' and context.getClaim(\"city\") == 'NY':\n print \"Authorized successfully!\"\n return True\n\n return False\n\n # Returns name of the Claims-Gathering script which will be invoked if need_info error is returned.\n def getClaimsGatheringScriptName(self, context): # context is reference of io.jans.as.uma.authorization.UmaAuthorizationContext\n context.addRedirectUserParam(\"customUserParam2\", \"value2\") # pass some custom parameters to need_info uri. It can be removed if you don't need custom parameters.\n return \"sampleClaimsGathering\"", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "uma_rpt_policy", "name": "uma_rpt_policy", "modified": false, "configurationProperties": [ { "hide": false, "value1": "allowed_clients" } ], "baseDn": "inum=2DAF-F995,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Sample UMA Claims Gathering", "locationType": "ldap", "dn": "inum=2DAF-F996,ou=scripts,o=jans", "inum": "2DAF-F996", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2017, Janssen\n#\n# Author: Yuriy Zabrovarnyy\n#\n\nfrom io.jans.model.custom.script.type.uma import UmaClaimsGatheringType\n\nclass UmaClaimsGathering(UmaClaimsGatheringType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Claims-Gathering. Initializing ...\"\n print \"Claims-Gathering. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Claims-Gathering. Destroying ...\"\n print \"Claims-Gathering. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n\n # Main gather method. Must return True (if gathering performed successfully) or False (if fail).\n # Method must set claim into context (via context.putClaim('name', value)) in order to persist it (otherwise it will be lost).\n # All user entered values can be access via Map context.getPageClaims()\n def gather(self, step, context): # context is reference of io.jans.as.uma.authorization.UmaGatherContext\n print \"Claims-Gathering. Gathering ...\"\n\n if step == 1:\n if (context.getPageClaims().containsKey(\"country\")):\n country = context.getPageClaims().get(\"country\")\n print \"Country: \" + country\n\n context.putClaim(\"country\", country)\n return True\n\n print \"Claims-Gathering. 'country' is not provided on step 1.\"\n return False\n\n elif step == 2:\n if (context.getPageClaims().containsKey(\"city\")):\n city = context.getPageClaims().get(\"city\")\n print \"City: \" + city\n\n context.putClaim(\"city\", city)\n print \"Claims-Gathering. 'city' is not provided on step 2.\"\n return True\n\n return False\n\n def getNextStep(self, step, context):\n return -1\n\n def prepareForStep(self, step, context):\n if step == 10 and not context.isAuthenticated():\n # user is not authenticated, so we are redirecting user to authorization endpoint\n # client_id is specified via configuration attribute.\n # Make sure that given client has redirect_uri to Claims-Gathering Endpoint with parameter authentication=true\n # Sample https://sample.com/restv1/uma/gather_claims?authentication=true\n # If redirect to external url is performated, make sure that viewAction has onPostback=\"true\" (otherwise redirect will not work)\n # After user is authenticated then within the script it's possible to get user attributes as\n # context.getUser(\"uid\", \"sn\")\n # If user is authenticated to current AS (to the same server, not external one) then it's possible to\n # access Connect session attributes directly (no need to obtain id_token after redirect with 'code').\n # To fetch attributes please use getConnectSessionAttributes() method.\n\n print \"User is not authenticated. Redirect for authentication ...\"\n clientId = context.getConfigurationAttributes().get(\"client_id\").getValue2()\n redirectUri = context.getClaimsGatheringEndpoint() + \"?authentication=true\" # without authentication=true parameter it will not work\n authorizationUrl = context.getAuthorizationEndpoint() + \"?client_id=\" + clientId + \"&redirect_uri=\" + redirectUri + \"&scope=openid&response_type=code\"\n context.redirectToExternalUrl(authorizationUrl) # redirect to external url\n return False\n if step == 10 and context.isAuthenticated(): # example how to get session attribute if user is authenticated to same AS\n arc = context.getConnectSessionAttributes().get(\"acr\")\n\n return True\n\n def getStepsCount(self, context):\n return 2\n\n def getPageForStep(self, step, context):\n if step == 1:\n return \"/uma2/sample/country.xhtml\"\n elif step == 2:\n return \"/uma2/sample/city.xhtml\"\n return \"\"", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "uma_claims_gathering", "name": "sampleClaimsGathering", "modified": false, "baseDn": "inum=2DAF-F996,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Client authorization UMA RPT Policy for SCIM and Passport", "locationType": "ldap", "dn": "inum=2DAF-F9A5,ou=scripts,o=jans", "inum": "2DAF-F9A5", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2017, Janssen\n#\n# Author: Jose Gonzalez\n# Adapted from previous 3.0.1 script of Yuriy Movchan\n#\n# oxConfigurationProperty required:\n# allowed_clients - comma separated list of dns of allowed clients\n# (i.e. the SCIM RP client)\n\nfrom io.jans.as.model.uma import UmaConstants\nfrom io.jans.model.uma import ClaimDefinitionBuilder\nfrom io.jans.model.custom.script.type.uma import UmaRptPolicyType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList, HashSet\nfrom java.lang import String\n\nclass UmaRptPolicy(UmaRptPolicyType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"RPT Policy. Initializing ...\"\n self.clientsSet = self.prepareClientsSet(configurationAttributes)\n print \"RPT Policy. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"RPT Policy. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def getRequiredClaims(self, context):\n json = \"\"\"[\n ]\"\"\"\n return ClaimDefinitionBuilder.build(json)\n\n def authorize(self, context): # context is reference of io.jans.as.uma.authorization.UmaAuthorizationContext\n print \"RPT Policy. Authorizing ...\"\n\n client_id=context.getClient().getClientId()\n print \"UmaRptPolicy. client_id = %s\" % client_id\n\n if (StringHelper.isEmpty(client_id)):\n return False\n \n if (self.clientsSet.contains(client_id)):\n print \"UmaRptPolicy. Authorizing client\"\n return True\n else:\n print \"UmaRptPolicy. Client isn't authorized\"\n return False\n\n def getClaimsGatheringScriptName(self, context):\n return UmaConstants.NO_SCRIPT\n\n def prepareClientsSet(self, configurationAttributes):\n clientsSet = HashSet()\n if (not configurationAttributes.containsKey(\"allowed_clients\")):\n return clientsSet\n\n allowedClientsList = configurationAttributes.get(\"allowed_clients\").getValue2()\n if (StringHelper.isEmpty(allowedClientsList)):\n print \"UmaRptPolicy. The property allowed_clients is empty\"\n return clientsSet \n\n allowedClientsListArray = StringHelper.split(allowedClientsList, \",\")\n if (ArrayHelper.isEmpty(allowedClientsListArray)):\n print \"UmaRptPolicy. No clients specified in allowed_clients property\"\n return clientsSet\n \n # Convert to HashSet to quick search\n i = 0\n count = len(allowedClientsListArray)\n while (i < count):\n client = allowedClientsListArray[i]\n clientsSet.add(client)\n i = i + 1\n\n return clientsSet\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "uma_rpt_policy", "name": "scim_access_policy", "modified": false, "configurationProperties": [ { "hide": false, "value1": "allowed_clients" } ], "baseDn": "inum=2DAF-F9A5,ou=scripts,o=jans" }, { "internal": false, "level": 20, "programmingLanguage": "python", "description": "Basic (with user locking) authentication module", "locationType": "ldap", "dn": "inum=4BBE-C6A8,ou=scripts,o=jans", "inum": "4BBE-C6A8", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n# Author: Gasmyr Mougang\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.service import CacheService\nfrom io.jans.util import StringHelper\nfrom io.jans.orm.exception import AuthenticationException\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\nfrom java.time import LocalDateTime, Duration\nfrom java.time.format import DateTimeFormatter\n\nimport java\nimport datetime\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Basic (lock account). Initialization\"\n\n self.invalidLoginCountAttribute = \"jansCountInvalidLogin\"\n if configurationAttributes.containsKey(\"invalid_login_count_attribute\"):\n self.invalidLoginCountAttribute = configurationAttributes.get(\"invalid_login_count_attribute\").getValue2()\n else:\n print \"Basic (lock account). Initialization. Using default attribute\"\n\n self.maximumInvalidLoginAttemps = 3\n if configurationAttributes.containsKey(\"maximum_invalid_login_attemps\"):\n self.maximumInvalidLoginAttemps = StringHelper.toInteger(configurationAttributes.get(\"maximum_invalid_login_attemps\").getValue2())\n else:\n print \"Basic (lock account). Initialization. Using default number attempts\"\n\n self.lockExpirationTime = 180\n if configurationAttributes.containsKey(\"lock_expiration_time\"):\n self.lockExpirationTime = StringHelper.toInteger(configurationAttributes.get(\"lock_expiration_time\").getValue2())\n else:\n print \"Basic (lock account). Initialization. Using default lock expiration time\"\n\n\n print \"Basic (lock account). Initialized successfully. invalid_login_count_attribute: '%s', maximum_invalid_login_attemps: '%s', lock_expiration_time: '%s'\" % (self.invalidLoginCountAttribute, self.maximumInvalidLoginAttemps, self.lockExpirationTime)\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Basic (lock account). Destroy\"\n print \"Basic (lock account). Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n print \"Basic (lock account). Authenticate for step 1\"\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n cacheService = CdiUtil.bean(CacheService)\n userService = CdiUtil.bean(UserService)\n\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n try:\n logged_in = authenticationService.authenticate(user_name, user_password)\n except AuthenticationException:\n print \"Basic (lock account). Authenticate. Failed to authenticate user '%s'\" % user_name\n\n if logged_in:\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(0))\n else:\n countInvalidLoginArributeValue = self.getUserAttributeValue(user_name, self.invalidLoginCountAttribute)\n userSatus = self.getUserAttributeValue(user_name, \"jansStatus\")\n print \"Current user '%s' status is '%s'\" % ( user_name, userSatus )\n\n countInvalidLogin = StringHelper.toInteger(countInvalidLoginArributeValue, 0)\n\n if countInvalidLogin < self.maximumInvalidLoginAttemps:\n countInvalidLogin = countInvalidLogin + 1\n remainingAttempts = self.maximumInvalidLoginAttemps - countInvalidLogin\n\n print \"Remaining login count attempts '%s' for user '%s'\" % ( remainingAttempts, user_name )\n\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(countInvalidLogin))\n if remainingAttempts > 0 and userSatus == \"active\":\n facesMessages.add(FacesMessage.SEVERITY_INFO, StringHelper.toString(remainingAttempts)+\" more attempt(s) before account is LOCKED!\")\n\n if (countInvalidLogin >= self.maximumInvalidLoginAttemps) and ((userSatus == None) or (userSatus == \"active\")):\n print \"Basic (lock account). Locking '%s' for '%s' seconds\" % ( user_name, self.lockExpirationTime)\n self.lockUser(user_name)\n return False\n\n if (countInvalidLogin >= self.maximumInvalidLoginAttemps) and userSatus == \"inactive\":\n print \"Basic (lock account). User '%s' is locked. Checking if we can unlock him\" % user_name\n \n unlock_and_authenticate = False\n\n object_from_store = cacheService.get(None, \"lock_user_\" + user_name)\n if object_from_store == None:\n # Object in cache was expired. We need to unlock user\n print \"Basic (lock account). User locking details for user '%s' not exists\" % user_name\n unlock_and_authenticate = True\n else:\n # Analyze object from cache\n user_lock_details = json.loads(object_from_store)\n\n user_lock_details_locked = user_lock_details['locked']\n user_lock_details_created = user_lock_details['created']\n user_lock_details_created_date = LocalDateTime.parse(user_lock_details_created, DateTimeFormatter.ISO_LOCAL_DATE_TIME)\n user_lock_details_created_diff = Duration.between(user_lock_details_created_date, LocalDateTime.now()).getSeconds()\n print \"Basic (lock account). Get user '%s' locking details. locked: '%s', Created: '%s', Difference in seconds: '%s'\" % ( user_name, user_lock_details_locked, user_lock_details_created, user_lock_details_created_diff )\n\n if user_lock_details_locked and user_lock_details_created_diff >= self.lockExpirationTime:\n print \"Basic (lock account). Unlocking user '%s' after lock expiration\" % user_name\n unlock_and_authenticate = True\n\n if unlock_and_authenticate:\n self.unLockUser(user_name)\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(0))\n logged_in = authenticationService.authenticate(user_name, user_password)\n if not logged_in:\n # Update number of attempts \n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(1))\n if self.maximumInvalidLoginAttemps == 1:\n # Lock user if maximum count login attempts is 1 \n self.lockUser(user_name)\n return False\n\n\n return logged_in\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"Basic (lock account). Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def getUserAttributeValue(self, user_name, attribute_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n\n find_user_by_uid = userService.getUser(user_name, attribute_name)\n if find_user_by_uid == None:\n return None\n\n custom_attribute_value = userService.getCustomAttribute(find_user_by_uid, attribute_name)\n if custom_attribute_value == None:\n return None\n \n attribute_value = custom_attribute_value.getValue()\n\n print \"Basic (lock account). Get user attribute. User's '%s' attribute '%s' value is '%s'\" % (user_name, attribute_name, attribute_value)\n\n return attribute_value\n\n def setUserAttributeValue(self, user_name, attribute_name, attribute_value):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n\n find_user_by_uid = userService.getUser(user_name)\n if find_user_by_uid == None:\n return None\n \n userService.setCustomAttribute(find_user_by_uid, attribute_name, attribute_value)\n updated_user = userService.updateUser(find_user_by_uid)\n\n print \"Basic (lock account). Set user attribute. User's '%s' attribute '%s' value is '%s'\" % (user_name, attribute_name, attribute_value)\n\n return updated_user\n\n def lockUser(self, user_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n cacheService= CdiUtil.bean(CacheService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n find_user_by_uid = userService.getUser(user_name)\n if (find_user_by_uid == None):\n return None\n\n status_attribute_value = userService.getCustomAttribute(find_user_by_uid, \"gluuStatus\")\n if status_attribute_value != None:\n user_status = status_attribute_value.getValue()\n if StringHelper.equals(user_status, \"inactive\"):\n print \"Basic (lock account). Lock user. User '%s' locked already\" % user_name\n return\n \n userService.setCustomAttribute(find_user_by_uid, \"gluuStatus\", \"inactive\")\n updated_user = userService.updateUser(find_user_by_uid)\n\n object_to_store = json.dumps({'locked': True, 'created': LocalDateTime.now().toString()}, separators=(',',':'))\n\n cacheService.put(StringHelper.toString(self.lockExpirationTime), \"lock_user_\"+user_name, object_to_store);\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Your account is locked. Please try again after \" + StringHelper.toString(self.lockExpirationTime) + \" secs\")\n\n print \"Basic (lock account). Lock user. User '%s' locked\" % user_name\n\n def unLockUser(self, user_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n cacheService= CdiUtil.bean(CacheService)\n\n find_user_by_uid = userService.getUser(user_name)\n if (find_user_by_uid == None):\n return None\n\n object_to_store = json.dumps({'locked': False, 'created': LocalDateTime.now().toString()}, separators=(',',':'))\n cacheService.put(StringHelper.toString(self.lockExpirationTime), \"lock_user_\"+user_name, object_to_store);\n\n userService.setCustomAttribute(find_user_by_uid, \"jansStatus\", \"active\")\n userService.setCustomAttribute(find_user_by_uid, self.invalidLoginCountAttribute, None)\n updated_user = userService.updateUser(find_user_by_uid)\n\n\n print \"Basic (lock account). Lock user. User '%s' unlocked\" % user_name\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "basic_lock", "modified": false, "configurationProperties": [ { "hide": false, "value2": "oxCountInvalidLogin", "value1": "invalid_login_count_attribute" }, { "hide": false, "value2": "3", "value1": "maximum_invalid_login_attemps" }, { "hide": false, "value2": "120", "value1": "lock_expiration_time" } ], "baseDn": "inum=4BBE-C6A8,ou=scripts,o=jans" }, { "internal": false, "level": 40, "programmingLanguage": "python", "description": "HOTP/TOPT authentication module", "locationType": "ldap", "dn": "inum=5018-D4BF,ou=scripts,o=jans", "inum": "5018-D4BF", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\n# Requires the following custom properties and values:\n# otp_type: totp/hotp\n# issuer: Janssen Inc\n# otp_conf_file: /etc/certs/otp_configuration.json\n#\n# These are non mandatory custom properties and values:\n# label: Janssen OTP\n# qr_options: { width: 400, height: 400 }\n# registration_uri: https://ce-dev.jans.org/identity/register\n\nimport jarray\nimport json\nimport sys\nfrom com.google.common.io import BaseEncoding\nfrom com.lochbridge.oath.otp import HOTP\nfrom com.lochbridge.oath.otp import HOTPValidator\nfrom com.lochbridge.oath.otp import HmacShaAlgorithm\nfrom com.lochbridge.oath.otp import TOTP\nfrom com.lochbridge.oath.otp.keyprovisioning import OTPAuthURIBuilder\nfrom com.lochbridge.oath.otp.keyprovisioning import OTPKey\nfrom com.lochbridge.oath.otp.keyprovisioning.OTPKey import OTPType\nfrom java.security import SecureRandom\nfrom java.util import Arrays\nfrom java.util.concurrent import TimeUnit\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"OTP. Initialization\"\n\n if not configurationAttributes.containsKey(\"otp_type\"):\n print \"OTP. Initialization. Property otp_type is mandatory\"\n return False\n self.otpType = configurationAttributes.get(\"otp_type\").getValue2()\n\n if not self.otpType in [\"hotp\", \"totp\"]:\n print \"OTP. Initialization. Property value otp_type is invalid\"\n return False\n\n if not configurationAttributes.containsKey(\"issuer\"):\n print \"OTP. Initialization. Property issuer is mandatory\"\n return False\n self.otpIssuer = configurationAttributes.get(\"issuer\").getValue2()\n\n self.customLabel = None\n if configurationAttributes.containsKey(\"label\"):\n self.customLabel = configurationAttributes.get(\"label\").getValue2()\n\n self.customQrOptions = {}\n if configurationAttributes.containsKey(\"qr_options\"):\n self.customQrOptions = configurationAttributes.get(\"qr_options\").getValue2()\n\n self.registrationUri = None\n if configurationAttributes.containsKey(\"registration_uri\"):\n self.registrationUri = configurationAttributes.get(\"registration_uri\").getValue2()\n\n validOtpConfiguration = self.loadOtpConfiguration(configurationAttributes)\n if not validOtpConfiguration:\n return False\n\n print \"OTP. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"OTP. Destroy\"\n print \"OTP. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n print \"getNextStep Invoked\"\n # If user not pass current step change step to previous\n identity = CdiUtil.bean(Identity)\n retry_current_step = identity.getWorkingParameter(\"retry_current_step\")\n if retry_current_step:\n print \"OTP. Get next step. Retrying current step %s\" % step\n # Remove old QR code\n #identity.setWorkingParameter(\"super_gluu_request\", \"timeout\")\n resultStep = step\n return resultStep\n return -1\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n self.setRequestScopedParameters(identity)\n\n if step == 1:\n print \"OTP. Authenticate for step 1\"\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n otp_auth_method = \"authenticate\"\n # Uncomment this block if you need to allow user second OTP registration\n #enrollment_mode = ServerUtil.getFirstValue(requestParameters, \"loginForm:registerButton\")\n #if StringHelper.isNotEmpty(enrollment_mode):\n # otp_auth_method = \"enroll\"\n\n if otp_auth_method == \"authenticate\":\n user_enrollments = self.findEnrollments(authenticated_user.getUserId())\n if len(user_enrollments) == 0:\n otp_auth_method = \"enroll\"\n print \"OTP. Authenticate for step 1. There is no OTP enrollment for user '%s'. Changing otp_auth_method to '%s'\" % (authenticated_user.getUserId(), otp_auth_method)\n\n if otp_auth_method == \"enroll\":\n print \"OTP. Authenticate for step 1. Setting count steps: '%s'\" % 3\n identity.setWorkingParameter(\"otp_count_login_steps\", 3)\n\n print \"OTP. Authenticate for step 1. otp_auth_method: '%s'\" % otp_auth_method\n identity.setWorkingParameter(\"otp_auth_method\", otp_auth_method)\n\n return True\n elif step == 2:\n print \"OTP. Authenticate for step 2\"\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Authenticate for step 2. Failed to determine user name\"\n return False\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n # Restore state from session\n identity.setWorkingParameter(\"retry_current_step\", False)\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if otp_auth_method == 'enroll':\n auth_result = ServerUtil.getFirstValue(requestParameters, \"auth_result\")\n if not StringHelper.isEmpty(auth_result):\n # defect fix #1225 - Retry the step, show QR code again\n if auth_result == 'timeout':\n\t\t\t\t\t\tprint \"OTP. QR-code timeout. Authenticate for step %s. Reinitializing current step\" % step\n\t\t\t\t\t\tidentity.setWorkingParameter(\"retry_current_step\", True)\n\t\t\t\t\t\treturn True\n\n print \"OTP. Authenticate for step 2. User not enrolled OTP\"\n return False\n\n print \"OTP. Authenticate for step 2. Skipping this step during enrollment\"\n return True\n\n otp_auth_result = self.processOtpAuthentication(requestParameters, user.getUserId(), identity, otp_auth_method)\n print \"OTP. Authenticate for step 2. OTP authentication result: '%s'\" % otp_auth_result\n\n return otp_auth_result\n elif step == 3:\n print \"OTP. Authenticate for step 3\"\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Authenticate for step 2. Failed to determine user name\"\n return False\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n # Restore state from session\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if otp_auth_method != 'enroll':\n return False\n\n otp_auth_result = self.processOtpAuthentication(requestParameters, user.getUserId(), identity, otp_auth_method)\n print \"OTP. Authenticate for step 3. OTP authentication result: '%s'\" % otp_auth_result\n\n return otp_auth_result\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n self.setRequestScopedParameters(identity)\n\n if step == 1:\n print \"OTP. Prepare for step 1\"\n\n return True\n elif step == 2:\n print \"OTP. Prepare for step 2\"\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Prepare for step 2. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Prepare for step 2. Failed to load user enty\"\n return False\n\n if self.otpType == \"hotp\":\n otp_secret_key = self.generateSecretHotpKey()\n otp_enrollment_request = self.generateHotpSecretKeyUri(otp_secret_key, self.otpIssuer, user.getAttribute(\"displayName\"))\n elif self.otpType == \"totp\":\n otp_secret_key = self.generateSecretTotpKey()\n otp_enrollment_request = self.generateTotpSecretKeyUri(otp_secret_key, self.otpIssuer, user.getAttribute(\"displayName\"))\n else:\n print \"OTP. Prepare for step 2. Unknown OTP type: '%s'\" % self.otpType\n return False\n\n print \"OTP. Prepare for step 2. Prepared enrollment request for user: '%s'\" % user.getUserId()\n identity.setWorkingParameter(\"otp_secret_key\", self.toBase64Url(otp_secret_key))\n identity.setWorkingParameter(\"otp_enrollment_request\", otp_enrollment_request)\n\n return True\n elif step == 3:\n print \"OTP. Prepare for step 3\"\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Prepare for step 3. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n return True\n\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"otp_auth_method\", \"otp_count_login_steps\", \"otp_secret_key\", \"otp_enrollment_request\",\"retry_current_step\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n identity = CdiUtil.bean(Identity)\n\n if identity.isSetWorkingParameter(\"otp_count_login_steps\"):\n return StringHelper.toInteger(\"%s\" % identity.getWorkingParameter(\"otp_count_login_steps\"))\n else:\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n identity = CdiUtil.bean(Identity)\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Gep page for step 2. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n return \"/auth/otp/enroll.xhtml\"\n else:\n return \"/auth/otp/otplogin.xhtml\"\n elif step == 3:\n return \"/auth/otp/otplogin.xhtml\"\n\n return \"\"\n\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def setRequestScopedParameters(self, identity):\n if self.registrationUri != None:\n identity.setWorkingParameter(\"external_registration_uri\", self.registrationUri)\n\n if self.customLabel != None:\n identity.setWorkingParameter(\"qr_label\", self.customLabel)\n\n identity.setWorkingParameter(\"qr_options\", self.customQrOptions)\n\n def loadOtpConfiguration(self, configurationAttributes):\n print \"OTP. Load OTP configuration\"\n if not configurationAttributes.containsKey(\"otp_conf_file\"):\n return False\n\n otp_conf_file = configurationAttributes.get(\"otp_conf_file\").getValue2()\n\n # Load configuration from file\n f = open(otp_conf_file, 'r')\n try:\n otpConfiguration = json.loads(f.read())\n except:\n print \"OTP. Load OTP configuration. Failed to load configuration from file:\", otp_conf_file\n return False\n finally:\n f.close()\n\n # Check configuration file settings\n try:\n self.hotpConfiguration = otpConfiguration[\"hotp\"]\n self.totpConfiguration = otpConfiguration[\"totp\"]\n \n hmacShaAlgorithm = self.totpConfiguration[\"hmacShaAlgorithm\"]\n hmacShaAlgorithmType = None\n\n if StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha1\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_1\n elif StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha256\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_256\n elif StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha512\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_512\n else:\n print \"OTP. Load OTP configuration. Invalid TOTP HMAC SHA algorithm: '%s'\" % hmacShaAlgorithm\n \n self.totpConfiguration[\"hmacShaAlgorithmType\"] = hmacShaAlgorithmType\n except:\n print \"OTP. Load OTP configuration. Invalid configuration file '%s' format. Exception: '%s'\" % (otp_conf_file, sys.exc_info()[1])\n return False\n \n\n return True\n\n def processBasicAuthentication(self, credentials):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if find_user_by_uid == None:\n print \"OTP. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def findEnrollments(self, user_name, skipPrefix = True):\n result = []\n\n userService = CdiUtil.bean(UserService)\n user = userService.getUser(user_name, \"jansExtUid\")\n if user == None:\n print \"OTP. Find enrollments. Failed to find user\"\n return result\n \n user_custom_ext_attribute = userService.getCustomAttribute(user, \"jansExtUid\")\n if user_custom_ext_attribute == None:\n return result\n\n otp_prefix = \"%s:\" % self.otpType\n \n otp_prefix_length = len(otp_prefix) \n for user_external_uid in user_custom_ext_attribute.getValues():\n index = user_external_uid.find(otp_prefix)\n if index != -1:\n if skipPrefix:\n enrollment_uid = user_external_uid[otp_prefix_length:]\n else:\n enrollment_uid = user_external_uid\n\n result.append(enrollment_uid)\n \n return result\n\n def validateSessionId(self, identity):\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"OTP. Validate session id. Failed to determine session_id\"\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if not otp_auth_method in ['enroll', 'authenticate']:\n print \"OTP. Validate session id. Failed to authenticate user. otp_auth_method: '%s'\" % otp_auth_method\n return False\n\n return True\n\n def processOtpAuthentication(self, requestParameters, user_name, identity, otp_auth_method):\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n userService = CdiUtil.bean(UserService)\n\n otpCode = ServerUtil.getFirstValue(requestParameters, \"loginForm:otpCode\")\n if StringHelper.isEmpty(otpCode):\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to authenticate. OTP code is empty\")\n print \"OTP. Process OTP authentication. otpCode is empty\"\n\n return False\n \n if otp_auth_method == \"enroll\":\n # Get key from session\n otp_secret_key_encoded = identity.getWorkingParameter(\"otp_secret_key\")\n if otp_secret_key_encoded == None:\n print \"OTP. Process OTP authentication. OTP secret key is invalid\"\n return False\n \n otp_secret_key = self.fromBase64Url(otp_secret_key_encoded)\n\n if self.otpType == \"hotp\":\n validation_result = self.validateHotpKey(otp_secret_key, 1, otpCode)\n \n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process HOTP authentication during enrollment. otpCode is valid\"\n # Store HOTP Secret Key and moving factor in user entry\n otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, validation_result[\"movingFactor\"] )\n\n # Add otp_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n\n print \"OTP. Process HOTP authentication during enrollment. Failed to update user entry\"\n elif self.otpType == \"totp\":\n validation_result = self.validateTotpKey(otp_secret_key, otpCode,user_name)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process TOTP authentication during enrollment. otpCode is valid\"\n # Store TOTP Secret Key and moving factor in user entry\n otp_user_external_uid = \"totp:%s\" % otp_secret_key_encoded\n\n # Add otp_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n\n print \"OTP. Process TOTP authentication during enrollment. Failed to update user entry\"\n elif otp_auth_method == \"authenticate\":\n user_enrollments = self.findEnrollments(user_name)\n\n if len(user_enrollments) == 0:\n print \"OTP. Process OTP authentication. There is no OTP enrollment for user '%s'\" % user_name\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"There is no valid OTP user enrollments\")\n return False\n\n if self.otpType == \"hotp\":\n for user_enrollment in user_enrollments:\n user_enrollment_data = user_enrollment.split(\";\")\n otp_secret_key_encoded = user_enrollment_data[0]\n\n # Get current moving factor from user entry\n moving_factor = StringHelper.toInteger(user_enrollment_data[1])\n otp_secret_key = self.fromBase64Url(otp_secret_key_encoded)\n\n # Validate TOTP\n validation_result = self.validateHotpKey(otp_secret_key, moving_factor, otpCode)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process HOTP authentication during authentication. otpCode is valid\"\n otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, moving_factor )\n new_otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, validation_result[\"movingFactor\"] )\n \n # Update moving factor in user entry\n find_user_by_external_uid = userService.replaceUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, new_otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n \n print \"OTP. Process HOTP authentication during authentication. Failed to update user entry\"\n elif self.otpType == \"totp\":\n for user_enrollment in user_enrollments:\n otp_secret_key = self.fromBase64Url(user_enrollment)\n\n # Validate TOTP\n validation_result = self.validateTotpKey(otp_secret_key, otpCode, user_name)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process TOTP authentication during authentication. otpCode is valid\"\n return True\n\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to authenticate. OTP code is invalid\")\n print \"OTP. Process OTP authentication. OTP code is invalid\"\n\n return False\n\n # Shared HOTP/TOTP methods\n def generateSecretKey(self, keyLength):\n bytes = jarray.zeros(keyLength, \"b\")\n secureRandom = SecureRandom()\n secureRandom.nextBytes(bytes)\n \n return bytes\n \n # HOTP methods\n def generateSecretHotpKey(self):\n keyLength = self.hotpConfiguration[\"keyLength\"]\n \n return self.generateSecretKey(keyLength)\n\n def generateHotpKey(self, secretKey, movingFactor):\n digits = self.hotpConfiguration[\"digits\"]\n\n hotp = HOTP.key(secretKey).digits(digits).movingFactor(movingFactor).build()\n \n return hotp.value()\n\n def validateHotpKey(self, secretKey, movingFactor, totpKey):\n lookAheadWindow = self.hotpConfiguration[\"lookAheadWindow\"]\n digits = self.hotpConfiguration[\"digits\"]\n\n htopValidationResult = HOTPValidator.lookAheadWindow(lookAheadWindow).validate(secretKey, movingFactor, digits, totpKey)\n if htopValidationResult.isValid():\n return { \"result\": True, \"movingFactor\": htopValidationResult.getNewMovingFactor() }\n\n return { \"result\": False, \"movingFactor\": None }\n\n def generateHotpSecretKeyUri(self, secretKey, issuer, userDisplayName):\n digits = self.hotpConfiguration[\"digits\"]\n\n secretKeyBase32 = self.toBase32(secretKey)\n otpKey = OTPKey(secretKeyBase32, OTPType.HOTP)\n label = issuer + \" %s\" % userDisplayName\n\n otpAuthURI = OTPAuthURIBuilder.fromKey(otpKey).label(label).issuer(issuer).digits(digits).build()\n\n return otpAuthURI.toUriString()\n\n # TOTP methods\n def generateSecretTotpKey(self):\n keyLength = self.totpConfiguration[\"keyLength\"]\n \n return self.generateSecretKey(keyLength)\n\n def generateTotpKey(self, secretKey):\n digits = self.totpConfiguration[\"digits\"]\n timeStep = self.totpConfiguration[\"timeStep\"]\n hmacShaAlgorithmType = self.totpConfiguration[\"hmacShaAlgorithmType\"]\n\n totp = TOTP.key(secretKey).digits(digits).timeStep(TimeUnit.SECONDS.toMillis(timeStep)).hmacSha(hmacShaAlgorithmType).build()\n \n return totp.value()\n\n def validateTotpKey(self, secretKey, totpKey, user_name):\n localTotpKey = self.generateTotpKey(secretKey)\n cachedOTP = self.getCachedOTP(user_name)\n\n if StringHelper.equals(localTotpKey, totpKey) and not StringHelper.equals(localTotpKey, cachedOTP):\n userService = CdiUtil.bean(UserService)\n if cachedOTP is None:\n userService.addUserAttribute(user_name, \"jansOTPCache\",localTotpKey)\n else :\n userService.replaceUserAttribute(user_name, \"jansOTPCache\", cachedOTP, localTotpKey)\n print \"OTP. Caching OTP: '%s'\" % localTotpKey\n return { \"result\": True }\n return { \"result\": False }\n\t\n def getCachedOTP(self, user_name):\n userService = CdiUtil.bean(UserService)\n user = userService.getUser(user_name, \"jansOTPCache\")\n if user is None:\n print \"OTP. Get Cached OTP. Failed to find OTP\"\n return None\n customAttribute = userService.getCustomAttribute(user, \"jansOTPCache\")\n \n if customAttribute is None:\n print \"OTP. Custom attribute is null\"\n return None\n user_cached_OTP = customAttribute.getValue()\n if user_cached_OTP is None:\n print \"OTP. no OTP is present in LDAP\"\n return None\n \n print \"OTP.Cached OTP: '%s'\" % user_cached_OTP\n return user_cached_OTP\n \n def generateTotpSecretKeyUri(self, secretKey, issuer, userDisplayName):\n digits = self.totpConfiguration[\"digits\"]\n timeStep = self.totpConfiguration[\"timeStep\"]\n\n secretKeyBase32 = self.toBase32(secretKey)\n otpKey = OTPKey(secretKeyBase32, OTPType.TOTP)\n label = issuer + \" %s\" % userDisplayName\n\n otpAuthURI = OTPAuthURIBuilder.fromKey(otpKey).label(label).issuer(issuer).digits(digits).timeStep(TimeUnit.SECONDS.toMillis(timeStep)).build()\n\n return otpAuthURI.toUriString()\n\n # Utility methods\n def toBase32(self, bytes):\n return BaseEncoding.base32().omitPadding().encode(bytes)\n\n def toBase64Url(self, bytes):\n return BaseEncoding.base64Url().encode(bytes)\n\n def fromBase64Url(self, chars):\n return BaseEncoding.base64Url().decode(chars)\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "otp", "modified": false, "configurationProperties": [ { "hide": false, "value2": "totp", "value1": "otp_type" }, { "hide": false, "value2": "/etc/certs/otp_configuration.json", "value1": "otp_conf_file" }, { "hide": false, "value2": "Gluu Inc", "value1": "issuer" }, { "hide": false, "value2": "Gluu OTP", "value1": "label" }, { "hide": false, "value2": "{ size: 400, mSize: 0.05 }", "value1": "qr_options" }, { "hide": false, "value2": "https://jenkins-build.jans.io/identity/register", "value1": "registration_uri" } ], "baseDn": "inum=5018-D4BF,ou=scripts,o=jans" }, { "internal": false, "level": 50, "programmingLanguage": "python", "description": "DUO authentication module", "locationType": "ldap", "dn": "inum=5018-F9CF,ou=scripts,o=jans", "inum": "5018-F9CF", "script": "from io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService, SessionIdService\nfrom io.jans.as.server.service.common import UserService\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom io.jans.as.server.service.net import HttpService\nimport os\nimport java\nimport sys\nfrom com.duosecurity import Client\nfrom com.duosecurity.exception import DuoException\nfrom com.duosecurity.model import Token\nfrom io.jans.jsf2.service import FacesService\nfrom jakarta.faces.context import FacesContext\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.as.server.util import ServerUtil\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Duo-Universal. Initialization\"\n \n if (not configurationAttributes.containsKey(\"client_id\")):\n\t print \"Duo Universal. Initialization. Property client_id is not specified\"\n\t return False\n else: \n \tself.client_id = configurationAttributes.get(\"client_id\").getValue2() \n \t\n if (not configurationAttributes.containsKey(\"client_secret\")):\n\t print \"Duo Universal. Initialization. Property client_secret is not specified\"\n\t return False\n else: \n \tself.client_secret = configurationAttributes.get(\"client_secret\").getValue2() \n \t\n if (not configurationAttributes.containsKey(\"api_hostname\")):\n\t print \"Duo Universal. Initialization. Property api_hostname is not specified\"\n\t return False\n else: \n \tself.api_hostname = configurationAttributes.get(\"api_hostname\").getValue2() \n \n print \"Duo-Universal. Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Duo-Universal. Destroy\"\n print \"Duo-Universal. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"Duo-Universal. Authenticate for step %s\" % step\n \n identity = CdiUtil.bean(Identity)\n if (step == 1):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n # Check if user authenticated already in another custom script\n user = authenticationService.getAuthenticatedUser()\n \n if user == None:\n print \"user is none\"\n credentials = identity.getCredentials()\n \n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n \n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n \t\t\t\t\n if (not logged_in):\n print \"return false\"\n return False\n identity.setWorkingParameter('username',user_name)\n return True\n \n elif (step == 2):\n \n identity = CdiUtil.bean(Identity)\n \n state = ServerUtil.getFirstValue(requestParameters, \"state\")\n \t\t\t# Get state to verify consistency and originality\n if identity.getWorkingParameter('state_duo') == state :\n \t\n \t# Get authorization token to trade for 2FA\n \tduoCode = ServerUtil.getFirstValue(requestParameters, \"duo_code\")\n\t \ttry:\n\t token = self.duo_client.exchangeAuthorizationCodeFor2FAResult(duoCode, identity.getWorkingParameter('username'))\n print \"token status %s \" % token.getAuth_result().getStatus()\n\t \texcept:\n\t # Handle authentication failure.\n\t print \"authentication failure\", sys.exc_info()[1]\n\t return False\n\t \n\t # User successfully passed Duo authentication.\n\t \n\t if \"allow\" == token.getAuth_result().getStatus():\n\t return True\n\t \n\t return False\n \n else:\n print \"Neither step 1 or 2\" \n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \tprint \"Duo-Universal. Prepare for step %s\" % step\n \n if (step == 1):\n return True\n elif (step == 2):\n \tidentity = CdiUtil.bean(Identity)\n user_name = identity.getWorkingParameter('username')\n \tfacesContext = CdiUtil.bean(FacesContext)\n \trequest = facesContext.getExternalContext().getRequest()\n \thttpService = CdiUtil.bean(HttpService)\n \turl = httpService.constructServerUrl(request) + \"/postlogin.htm\"\n \t\n \ttry:\n\t \tself.duo_client = Client(self.client_id,self.client_secret,self.api_hostname,url)\n\t \tself.duo_client.healthCheck()\n\t \texcept:\n print \"Duo-Universal. Duo config error. Verify the values in Duo-Universal.conf are correct \", sys.exc_info()[1]\n \n state = self.duo_client.generateState()\n identity.setWorkingParameter(\"state_duo\",state)\n prompt_uri = self.duo_client.createAuthUrl(user_name, state)\n \n facesService = CdiUtil.bean(FacesService)\n facesService.redirectToExternalURL(prompt_uri )\n\n return True\n \n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"state_duo\", \"username\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n print \"Duo-Universal. getPageForStep - %s \" % step\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n ", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "duo", "modified": false, "configurationProperties": [ { "hide": false, "value2": "/etc/certs/duo_creds.json", "value1": "duo_creds_file" }, { "hide": false, "value2": "api-random.duosecurity.com", "value1": "duo_host" } ], "baseDn": "inum=5018-F9CF,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "Add GitHub claims to introspection response", "locationType": "ldap", "dn": "inum=8333-DFBC,ou=scripts,o=jans", "inum": "8333-DFBC", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2019, Janssen\n#\n#\n\nfrom io.jans.model.custom.script.type.introspection import IntrospectionType\nfrom io.jans.as.server.model.common import AuthorizationGrantList\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.service.cdi.util import CdiUtil\nfrom java.lang import String\n\nclass Introspection(IntrospectionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Github. Introspection script. Initializing ...\"\n print \"Github. Introspection script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Github. Introspection script. Destroying ...\"\n print \"Github. Introspection script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - apply introspection method, false - ignore it.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def modifyResponse(self, responseAsJsonObject, context):\n print \"Github. Checking for saved parameters in session ...\"\n try:\n token = context.getHttpRequest().getParameter(\"token\")\n if token is None:\n print \"Github. Introspection. There is no token in request\"\n return True\n\n authorizationGrantList = CdiUtil.bean(AuthorizationGrantList)\n authorizationGrant = authorizationGrantList.getAuthorizationGrantByAccessToken(token)\n if authorizationGrant is None:\n print \"Github. Introspection. Failed to load authorization grant by token\"\n return False\n\n # Put user_id into response\n responseAsJsonObject.accumulate(\"user_id\", authorizationGrant.getUser().getUserId())\n\n # Put custom parameters into response\n sessionDn = authorizationGrant.getSessionDn();\n print \"sessionDn '%s'\" % sessionDn\n if sessionDn is None:\n print \"There is no session\"\n return True\n\n sessionIdService = CdiUtil.bean(SessionIdService)\n session = sessionIdService.getSessionByDn(sessionDn, False)\n if sessionDn is None:\n print \"Github. Introspection. Failed to load session '%s'\" % sessionDn\n return False\n\n # Return session_id\n responseAsJsonObject.accumulate(\"session_id\", sessionDn)\n\n sessionAttributes = session.getSessionAttributes()\n if sessionAttributes is None:\n print \"There is no session attributes\"\n return True\n\n # Append custom claims\n customClaims = {}\n\n if sessionAttributes.containsKey(\"gihub_username\"):\n customClaims[\"gihub_username\"] = sessionAttributes.get(\"gihub_username\")\n if sessionAttributes.containsKey(\"gihub_access_token\"):\n customClaims[\"gihub_access_token\"] = sessionAttributes.get(\"gihub_access_token\")\n\n responseAsJsonObject.accumulate(\"customClaims\", customClaims)\n except Exception as e:\n print \"Exception occured. Unable to resolve role/scope mapping.\"\n print e\n\n return True\n\n", "enabled": false, "revision": 0, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "introspection", "name": "github-claims-introspection-script", "modified": false, "baseDn": "inum=8333-DFBC,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "locationType": "ldap", "dn": "inum=8AF7.D82A,ou=scripts,o=jans", "inum": "8AF7.D82A", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2020, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.model.custom.script.type.persistence import PersistenceType\nfrom io.jans.util import StringHelper\nfrom io.jans.persist.operation.auth import PasswordEncryptionHelper\nfrom io.jans.persist.operation.auth import PasswordEncryptionMethod\n\nimport java\n\nclass PersistenceExtension(PersistenceType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Persistence extension. Initialization\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Persistence extension. Destroy\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def onAfterCreate(self, context, configurationAttributes):\n print \"Persistence extension. Method: onAfterCreate\"\n\n def onAfterDestroy(self, context, configurationAttributes):\n print \"Persistence extension. Method: onAfterDestroy\"\n\n def createHashedPassword(self, credential):\n print \"Persistence extension. Method: createHashedPassword\"\n\n hashed_password= PasswordEncryptionHelper.createStoragePassword(credential, PasswordEncryptionMethod.HASH_METHOD_PKCS5S2)\n\n return hashed_password\n\n def compareHashedPasswords(self, credential, storedCredential):\n print \"Persistence extension. Method: compareHashedPasswords\"\n \n auth_result = PasswordEncryptionHelper.compareCredentials(credential, storedCredential)\n\n return auth_result \n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "persistence_extension", "name": "persistence_extension", "modified": false, "baseDn": "inum=8AF7.D82A,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "locationType": "ldap", "dn": "inum=8AF7.D82B,ou=scripts,o=jans", "inum": "8AF7.D82B", "script": "# oxShibboleth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2020, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.idp import IdpType\nfrom io.jans.util import StringHelper\nfrom io.jans.idp.externalauth import AuthenticatedNameTranslator\nfrom net.shibboleth.idp.authn.principal import UsernamePrincipal, IdPAttributePrincipal\nfrom net.shibboleth.idp.authn import ExternalAuthentication\nfrom net.shibboleth.idp.attribute import IdPAttribute, StringAttributeValue\nfrom net.shibboleth.idp.authn.context import AuthenticationContext, ExternalAuthenticationContext\nfrom net.shibboleth.idp.attribute.context import AttributeContext\nfrom javax.security.auth import Subject\nfrom java.util import Collections, HashMap, HashSet, ArrayList, Arrays\n\nimport java\n\nclass IdpExtension(IdpType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Idp extension. Initialization\"\n \n self.defaultNameTranslator = AuthenticatedNameTranslator()\n \n return True\n\n def destroy(self, configurationAttributes):\n print \"Idp extension. Destroy\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Translate attributes from user profile\n # context is io.jans.idp.externalauth.TranslateAttributesContext (https://github.com/JanssenFederation/shib-oxauth-authn3/blob/master/src/main/java/io.jans.idp/externalauth/TranslateAttributesContext.java)\n # configurationAttributes is java.util.Map\n def translateAttributes(self, context, configurationAttributes):\n print \"Idp extension. Method: translateAttributes\"\n \n # Return False to use default method\n #return False\n \n request = context.getRequest()\n userProfile = context.getUserProfile()\n principalAttributes = self.defaultNameTranslator.produceIdpAttributePrincipal(userProfile.getAttributes())\n print \"Idp extension. Converted user profile: '%s' to attribute principal: '%s'\" % (userProfile, principalAttributes)\n\n if not principalAttributes.isEmpty():\n print \"Idp extension. Found attributes from oxAuth. Processing...\"\n \n # Start: Custom part\n # Add givenName attribute\n givenNameAttribute = IdPAttribute(\"jansEnrollmentCode\")\n givenNameAttribute.setValues(ArrayList(Arrays.asList(StringAttributeValue(\"Dummy\"))))\n principalAttributes.add(IdPAttributePrincipal(givenNameAttribute))\n print \"Idp extension. Updated attribute principal: '%s'\" % principalAttributes\n # End: Custom part\n\n principals = HashSet()\n principals.addAll(principalAttributes)\n principals.add(UsernamePrincipal(userProfile.getId()))\n\n request.setAttribute(ExternalAuthentication.SUBJECT_KEY, Subject(False, Collections.singleton(principals),\n Collections.emptySet(), Collections.emptySet()))\n\n print \"Created an IdP subject instance with principals containing attributes for: '%s'\" % userProfile.getId()\n\n if False:\n idpAttributes = ArrayList()\n for principalAttribute in principalAttributes:\n idpAttributes.add(principalAttribute.getAttribute())\n \n request.setAttribute(ExternalAuthentication.ATTRIBUTES_KEY, idpAttributes)\n \n authenticationKey = context.getAuthenticationKey()\n profileRequestContext = ExternalAuthentication.getProfileRequestContext(authenticationKey, request)\n authContext = profileRequestContext.getSubcontext(AuthenticationContext)\n extContext = authContext.getSubcontext(ExternalAuthenticationContext)\n \n extContext.setSubject(Subject(False, Collections.singleton(principals), Collections.emptySet(), Collections.emptySet()));\n \n extContext.getSubcontext(AttributeContext, True).setUnfilteredIdPAttributes(idpAttributes)\n extContext.getSubcontext(AttributeContext).setIdPAttributes(idpAttributes)\n else:\n print \"No attributes released from oxAuth. Creating an IdP principal for: '%s'\" % userProfile.getId()\n request.setAttribute(ExternalAuthentication.PRINCIPAL_NAME_KEY, userProfile.getId())\n\n #Return True to specify that default method is not needed\n return False\n\n # Update attributes before releasing them\n # context is io.jans.idp.consent.processor.PostProcessAttributesContext (https://github.com/JanssenFederation/shib-oxauth-authn3/blob/master/src/main/java/io.jans.idp/consent/processor/PostProcessAttributesContext.java)\n # configurationAttributes is java.util.Map\n def updateAttributes(self, context, configurationAttributes):\n print \"Idp extension. Method: updateAttributes\"\n attributeContext = context.getAttributeContext()\n\n customAttributes = HashMap()\n customAttributes.putAll(attributeContext.getIdPAttributes())\n\n # Remove givenName attribute\n customAttributes.remove(\"givenName\")\n\n # Update surname attribute\n if customAttributes.containsKey(\"sn\"):\n customAttributes.get(\"sn\").setValues(ArrayList(Arrays.asList(StringAttributeValue(\"Dummy\"))))\n \n # Set updated attributes\n attributeContext.setIdPAttributes(customAttributes.values())\n\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "idp", "name": "idp", "modified": false, "baseDn": "inum=8AF7.D82B,ou=scripts,o=jans" }, { "internal": false, "level": 70, "programmingLanguage": "python", "description": "Fido2 authentication module", "locationType": "ldap", "dn": "inum=8BAF-80D7,ou=scripts,o=jans", "inum": "8BAF-80D7", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.fido2.client import Fido2ClientFactory\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\nfrom java.util import Arrays\nfrom java.util.concurrent.locks import ReentrantLock\nfrom jakarta.ws.rs import ClientErrorException\nfrom jakarta.ws.rs.core import Response\n\nimport java\nimport sys\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Fido2. Initialization\"\n\n if not configurationAttributes.containsKey(\"fido2_server_uri\"):\n print \"fido2_server_uri. Initialization. Property fido2_server_uri is not specified\"\n return False\n\n self.fido2_server_uri = configurationAttributes.get(\"fido2_server_uri\").getValue2()\n\n self.fido2_domain = None\n if configurationAttributes.containsKey(\"fido2_domain\"):\n self.fido2_domain = configurationAttributes.get(\"fido2_domain\").getValue2()\n\n self.metaDataLoaderLock = ReentrantLock()\n self.metaDataConfiguration = None\n\n print \"Fido2. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Fido2. Destroy\"\n print \"Fido2. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n\n if step == 1:\n print \"Fido2. Authenticate for step 1\"\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\",ServerUtil.getFirstValue(requestParameters, \"loginForm:platformAuthenticator\"))\n\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n return True\n elif step == 2:\n print \"Fido2. Authenticate for step 2\"\n\n token_response = ServerUtil.getFirstValue(requestParameters, \"tokenResponse\")\n if token_response == None:\n print \"Fido2. Authenticate for step 2. tokenResponse is empty\"\n return False\n\n auth_method = ServerUtil.getFirstValue(requestParameters, \"authMethod\")\n if auth_method == None:\n print \"Fido2. Authenticate for step 2. authMethod is empty\"\n return False\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Fido2. Prepare for step 2. Failed to determine user name\"\n return False\n\n if auth_method == 'authenticate':\n print \"Fido2. Prepare for step 2. Call Fido2 in order to finish authentication flow\"\n assertionService = Fido2ClientFactory.instance().createAssertionService(self.metaDataConfiguration)\n assertionStatus = assertionService.verify(token_response)\n authenticationStatusEntity = assertionStatus.readEntity(java.lang.String)\n\n if assertionStatus.getStatus() != Response.Status.OK.getStatusCode():\n print \"Fido2. Authenticate for step 2. Get invalid authentication status from Fido2 server\"\n return False\n\n return True\n elif auth_method == 'enroll':\n print \"Fido2. Prepare for step 2. Call Fido2 in order to finish registration flow\"\n attestationService = Fido2ClientFactory.instance().createAttestationService(self.metaDataConfiguration)\n attestationStatus = attestationService.verify(token_response)\n\n if attestationStatus.getStatus() != Response.Status.OK.getStatusCode():\n print \"Fido2. Authenticate for step 2. Get invalid registration status from Fido2 server\"\n return False\n\n return True\n else:\n print \"Fido2. Prepare for step 2. Authentication method is invalid\"\n return False\n\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n\n if step == 1:\n return True\n elif step == 2:\n print \"Fido2. Prepare for step 2\"\n\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Fido2. Prepare for step 2. Failed to determine session_id\"\n return False\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Fido2. Prepare for step 2. Failed to determine user name\"\n return False\n\n userName = user.getUserId()\n\n metaDataConfiguration = self.getMetaDataConfiguration()\n\n assertionResponse = None\n attestationResponse = None\n\n # Check if user have registered devices\n count = CdiUtil.bean(UserService).countFido2RegisteredDevices(userName, self.fido2_domain)\n if count > 0:\n print \"Fido2. Prepare for step 2. Call Fido2 endpoint in order to start assertion flow\"\n\n try:\n assertionService = Fido2ClientFactory.instance().createAssertionService(metaDataConfiguration)\n assertionRequest = json.dumps({'username': userName}, separators=(',', ':'))\n assertionResponse = assertionService.authenticate(assertionRequest).readEntity(java.lang.String)\n # if device has only platform authenticator and assertion is expecting a security key\n if \"internal\" in assertionResponse:\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\", \"true\")\n else:\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\", \"false\")\n\n except ClientErrorException, ex:\n print \"Fido2. Prepare for step 2. Failed to start assertion flow. Exception:\", sys.exc_info()[1]\n return False\n else:\n print \"Fido2. Prepare for step 2. Call Fido2 endpoint in order to start attestation flow\"\n\n try:\n attestationService = Fido2ClientFactory.instance().createAttestationService(metaDataConfiguration)\n platformAuthenticatorAvailable = identity.getWorkingParameter(\"platformAuthenticatorAvailable\") == \"true\"\n basic_json = {'username': userName, 'displayName': userName, 'attestation' : 'direct'}\n print \"% s\" % identity.getWorkingParameter(\"platformAuthenticatorAvailable\")\n if platformAuthenticatorAvailable is True:\n # the reason behind userVerification = discouraged --> https://chromium.googlesource.com/chromium/src/+/master/content/browser/webauth/uv_preferred.md\n platform_json = {\"authenticatorSelection\":{\"authenticatorAttachment\":\"platform\",\"requireResidentKey\" : \"false\", \"userVerification\" : \"discouraged\" } }\n basic_json.update(platform_json)\n\n # also need to add this --> excludeCredentials : [//registered ids]\n print \" basic_json %s\" % basic_json\n\n attestationRequest = json.dumps(basic_json)\n #, separators=(',', ':'))\n\n attestationResponse = attestationService.register(attestationRequest).readEntity(java.lang.String)\n except ClientErrorException, ex:\n print \"Fido2. Prepare for step 2. Failed to start attestation flow. Exception:\", sys.exc_info()[1]\n return False\n\n identity.setWorkingParameter(\"fido2_assertion_request\", ServerUtil.asJson(assertionResponse))\n identity.setWorkingParameter(\"fido2_attestation_request\", ServerUtil.asJson(attestationResponse))\n print \"Fido2. Prepare for step 2. Successfully start flow with next requests.\\nfido2_assertion_request: '%s'\\nfido2_attestation_request: '%s'\" % ( assertionResponse, attestationResponse )\n\n return True\n elif step == 3:\n print \"Fido2. Prepare for step 3\"\n\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList( \"platformAuthenticatorAvailable\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n return \"/auth/fido2/step1.xhtml\"\n elif step == 2:\n identity = CdiUtil.bean(Identity)\n if identity.getWorkingParameter(\"platformAuthenticatorAvailable\") == \"true\":\n return \"/auth/fido2/platform.xhtml\"\n else:\n return \"/auth/fido2/secKeys.xhtml\"\n return \"\"\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def getMetaDataConfiguration(self):\n if self.metaDataConfiguration != None:\n return self.metaDataConfiguration\n\n self.metaDataLoaderLock.lock()\n # Make sure that another thread not loaded configuration already\n if self.metaDataConfiguration != None:\n return self.metaDataConfiguration\n\n try:\n print \"Fido2. Initialization. Downloading Fido2 metadata\"\n self.fido2_server_metadata_uri = self.fido2_server_uri + \"/.well-known/fido2-configuration\"\n\n metaDataConfigurationService = Fido2ClientFactory.instance().createMetaDataConfigurationService(self.fido2_server_metadata_uri)\n\n max_attempts = 10\n for attempt in range(1, max_attempts + 1):\n try:\n self.metaDataConfiguration = metaDataConfigurationService.getMetadataConfiguration().readEntity(java.lang.String)\n return self.metaDataConfiguration\n except ClientErrorException, ex:\n # Detect if last try or we still get Service Unavailable HTTP error\n if (attempt == max_attempts) or (ex.getResponse().getResponseStatus() != Response.Status.SERVICE_UNAVAILABLE):\n raise ex\n\n java.lang.Thread.sleep(3000)\n print \"Attempting to load metadata: %d\" % attempt\n finally:\n self.metaDataLoaderLock.unlock()\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "fido2", "modified": false, "configurationProperties": [ { "hide": false, "value2": "https://jenkins-build.jans.io", "value1": "fido2_server_uri" } ], "baseDn": "inum=8BAF-80D7,ou=scripts,o=jans" }, { "internal": false, "level": 60, "programmingLanguage": "python", "description": "Super Gluu authentication module", "locationType": "ldap", "dn": "inum=92F0-BF9E,ou=scripts,o=jans", "inum": "92F0-BF9E", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom com.google.android.gcm.server import Sender, Message\nfrom com.notnoop.apns import APNS\nfrom java.util import Arrays\nfrom org.apache.http.params import CoreConnectionPNames\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.model.config import ConfigurationFactory\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.service.fido.u2f import DeviceRegistrationService\nfrom io.jans.as.server.service.net import HttpService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.as.common.service.common import EncryptionService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.service import MailService\nfrom io.jans.as.server.service.push.sns import PushPlatform\nfrom io.jans.as.server.service.push.sns import PushSnsService\nfrom io.jans.notify.client import NotifyClientFactory \nfrom java.util import Arrays, HashMap, IdentityHashMap, Date\nfrom java.time import ZonedDateTime\nfrom java.time.format import DateTimeFormatter\n\nimport datetime\nimport urllib\n\nimport sys\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Super-Gluu. Initialization\"\n\n if not configurationAttributes.containsKey(\"authentication_mode\"):\n print \"Super-Gluu. Initialization. Property authentication_mode is mandatory\"\n return False\n\n self.applicationId = None\n if configurationAttributes.containsKey(\"application_id\"):\n self.applicationId = configurationAttributes.get(\"application_id\").getValue2()\n\n self.registrationUri = None\n if configurationAttributes.containsKey(\"registration_uri\"):\n self.registrationUri = configurationAttributes.get(\"registration_uri\").getValue2()\n\n authentication_mode = configurationAttributes.get(\"authentication_mode\").getValue2()\n if StringHelper.isEmpty(authentication_mode):\n print \"Super-Gluu. Initialization. Failed to determine authentication_mode. authentication_mode configuration parameter is empty\"\n return False\n \n self.oneStep = StringHelper.equalsIgnoreCase(authentication_mode, \"one_step\")\n self.twoStep = StringHelper.equalsIgnoreCase(authentication_mode, \"two_step\")\n\n if not (self.oneStep or self.twoStep):\n print \"Super-Gluu. Initialization. Valid authentication_mode values are one_step and two_step\"\n return False\n \n self.enabledPushNotifications = self.initPushNotificationService(configurationAttributes)\n\n self.androidUrl = None\n if configurationAttributes.containsKey(\"supergluu_android_download_url\"):\n self.androidUrl = configurationAttributes.get(\"supergluu_android_download_url\").getValue2()\n\n self.IOSUrl = None\n if configurationAttributes.containsKey(\"supergluu_ios_download_url\"):\n self.IOSUrl = configurationAttributes.get(\"supergluu_ios_download_url\").getValue2()\n\n self.customLabel = None\n if configurationAttributes.containsKey(\"label\"):\n self.customLabel = configurationAttributes.get(\"label\").getValue2()\n\n self.customQrOptions = {}\n if configurationAttributes.containsKey(\"qr_options\"):\n self.customQrOptions = configurationAttributes.get(\"qr_options\").getValue2()\n\n self.use_super_gluu_group = False\n if configurationAttributes.containsKey(\"super_gluu_group\"):\n self.super_gluu_group = configurationAttributes.get(\"super_gluu_group\").getValue2()\n self.use_super_gluu_group = True\n print \"Super-Gluu. Initialization. Using super_gluu only if user belong to group: %s\" % self.super_gluu_group\n\n self.use_audit_group = False\n if configurationAttributes.containsKey(\"audit_group\"):\n self.audit_group = configurationAttributes.get(\"audit_group\").getValue2()\n\n if (not configurationAttributes.containsKey(\"audit_group_email\")):\n print \"Super-Gluu. Initialization. Property audit_group_email is not specified\"\n return False\n\n self.audit_email = configurationAttributes.get(\"audit_group_email\").getValue2()\n self.use_audit_group = True\n\n print \"Super-Gluu. Initialization. Using audit group: %s\" % self.audit_group\n \n if self.use_super_gluu_group or self.use_audit_group:\n if not configurationAttributes.containsKey(\"audit_attribute\"):\n print \"Super-Gluu. Initialization. Property audit_attribute is not specified\"\n return False\n else:\n self.audit_attribute = configurationAttributes.get(\"audit_attribute\").getValue2()\n\n print \"Super-Gluu. Initialized successfully. oneStep: '%s', twoStep: '%s', pushNotifications: '%s', customLabel: '%s'\" % (self.oneStep, self.twoStep, self.enabledPushNotifications, self.customLabel)\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Super-Gluu. Destroy\"\n\n self.pushAndroidService = None\n self.pushAppleService = None\n\n print \"Super-Gluu. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n client_redirect_uri = self.getApplicationUri(session_attributes)\n if client_redirect_uri == None:\n print \"Super-Gluu. Authenticate. redirect_uri is not set\"\n return False\n\n self.setRequestScopedParameters(identity, step)\n\n # Validate form result code and initialize QR code regeneration if needed (retry_current_step = True)\n identity.setWorkingParameter(\"retry_current_step\", False)\n form_auth_result = ServerUtil.getFirstValue(requestParameters, \"auth_result\")\n if StringHelper.isNotEmpty(form_auth_result):\n print \"Super-Gluu. Authenticate for step %s. Get auth_result: '%s'\" % (step, form_auth_result)\n if form_auth_result in ['error']:\n return False\n\n if form_auth_result in ['timeout']:\n if ((step == 1) and self.oneStep) or ((step == 2) and self.twoStep): \n print \"Super-Gluu. Authenticate for step %s. Reinitializing current step\" % step\n identity.setWorkingParameter(\"retry_current_step\", True)\n return False\n\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n if step == 1:\n print \"Super-Gluu. Authenticate for step 1\"\n\n user_name = credentials.getUsername()\n if self.oneStep:\n session_device_status = self.getSessionDeviceStatus(session_attributes, user_name)\n if session_device_status == None:\n return False\n\n u2f_device_id = session_device_status['device_id']\n\n validation_result = self.validateSessionDeviceStatus(client_redirect_uri, session_device_status)\n if validation_result:\n print \"Super-Gluu. Authenticate for step 1. User successfully authenticated with u2f_device '%s'\" % u2f_device_id\n else:\n return False\n \n if not session_device_status['one_step']:\n print \"Super-Gluu. Authenticate for step 1. u2f_device '%s' is not one step device\" % u2f_device_id\n return False\n \n # There are two steps only in enrollment mode\n if session_device_status['enroll']:\n return validation_result\n\n identity.setWorkingParameter(\"super_gluu_count_login_steps\", 1)\n\n user_inum = session_device_status['user_inum']\n\n u2f_device = deviceRegistrationService.findUserDeviceRegistration(user_inum, u2f_device_id, \"jansId\")\n if u2f_device == None:\n print \"Super-Gluu. Authenticate for step 1. Failed to load u2f_device '%s'\" % u2f_device_id\n return False\n\n logged_in = authenticationService.authenticate(user_name)\n if not logged_in:\n print \"Super-Gluu. Authenticate for step 1. Failed to authenticate user '%s'\" % user_name\n return False\n\n print \"Super-Gluu. Authenticate for step 1. User '%s' successfully authenticated with u2f_device '%s'\" % (user_name, u2f_device_id)\n \n return True\n elif self.twoStep:\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n if (self.use_super_gluu_group):\n print \"Super-Gluu. Authenticate for step 1. Checking if user belong to super_gluu group\"\n is_member_super_gluu_group = self.isUserMemberOfGroup(authenticated_user, self.audit_attribute, self.super_gluu_group)\n if (is_member_super_gluu_group):\n print \"Super-Gluu. Authenticate for step 1. User '%s' member of super_gluu group\" % authenticated_user.getUserId()\n super_gluu_count_login_steps = 2\n else:\n if self.use_audit_group:\n self.processAuditGroup(authenticated_user, self.audit_attribute, self.audit_group)\n super_gluu_count_login_steps = 1\n \n identity.setWorkingParameter(\"super_gluu_count_login_steps\", super_gluu_count_login_steps)\n \n if super_gluu_count_login_steps == 1:\n return True\n \n auth_method = 'authenticate'\n enrollment_mode = ServerUtil.getFirstValue(requestParameters, \"loginForm:registerButton\")\n if StringHelper.isNotEmpty(enrollment_mode):\n auth_method = 'enroll'\n \n if auth_method == 'authenticate':\n user_inum = userService.getUserInum(authenticated_user)\n u2f_devices_list = deviceRegistrationService.findUserDeviceRegistrations(user_inum, client_redirect_uri, \"jansId\")\n if u2f_devices_list.size() == 0:\n auth_method = 'enroll'\n print \"Super-Gluu. Authenticate for step 1. There is no U2F '%s' user devices associated with application '%s'. Changing auth_method to '%s'\" % (user_name, client_redirect_uri, auth_method)\n \n print \"Super-Gluu. Authenticate for step 1. auth_method: '%s'\" % auth_method\n \n identity.setWorkingParameter(\"super_gluu_auth_method\", auth_method)\n\n return True\n\n return False\n elif step == 2:\n print \"Super-Gluu. Authenticate for step 2\"\n\n user = authenticationService.getAuthenticatedUser()\n if (user == None):\n print \"Super-Gluu. Authenticate for step 2. Failed to determine user name\"\n return False\n user_name = user.getUserId()\n\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n session_device_status = self.getSessionDeviceStatus(session_attributes, user_name)\n if session_device_status == None:\n return False\n\n u2f_device_id = session_device_status['device_id']\n\n # There are two steps only in enrollment mode\n if self.oneStep and session_device_status['enroll']:\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n user_inum = userService.getUserInum(authenticated_user)\n \n attach_result = deviceRegistrationService.attachUserDeviceRegistration(user_inum, u2f_device_id)\n\n print \"Super-Gluu. Authenticate for step 2. Result after attaching u2f_device '%s' to user '%s': '%s'\" % (u2f_device_id, user_name, attach_result) \n\n return attach_result\n elif self.twoStep:\n if user_name == None:\n print \"Super-Gluu. Authenticate for step 2. Failed to determine user name\"\n return False\n\n validation_result = self.validateSessionDeviceStatus(client_redirect_uri, session_device_status, user_name)\n if validation_result:\n print \"Super-Gluu. Authenticate for step 2. User '%s' successfully authenticated with u2f_device '%s'\" % (user_name, u2f_device_id)\n else:\n return False\n \n super_gluu_request = json.loads(session_device_status['super_gluu_request'])\n auth_method = super_gluu_request['method']\n if auth_method in ['enroll', 'authenticate']:\n if validation_result and self.use_audit_group:\n user = authenticationService.getAuthenticatedUser()\n self.processAuditGroup(user, self.audit_attribute, self.audit_group)\n\n return validation_result\n\n print \"Super-Gluu. Authenticate for step 2. U2F auth_method is invalid\"\n\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n client_redirect_uri = self.getApplicationUri(session_attributes)\n if client_redirect_uri == None:\n print \"Super-Gluu. Prepare for step. redirect_uri is not set\"\n return False\n\n self.setRequestScopedParameters(identity, step)\n\n if step == 1:\n print \"Super-Gluu. Prepare for step 1\"\n if self.oneStep:\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine session_id\"\n return False\n\n issuer = CdiUtil.bean(ConfigurationFactory).getConfiguration().getIssuer()\n super_gluu_request_dictionary = {'app': client_redirect_uri,\n 'issuer': issuer,\n 'state': session.getId(),\n 'created': DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now().withNano(0))}\n\n self.addGeolocationData(session_attributes, super_gluu_request_dictionary)\n\n super_gluu_request = json.dumps(super_gluu_request_dictionary, separators=(',',':'))\n print \"Super-Gluu. Prepare for step 1. Prepared super_gluu_request:\", super_gluu_request\n \n identity.setWorkingParameter(\"super_gluu_request\", super_gluu_request)\n elif self.twoStep:\n identity.setWorkingParameter(\"display_register_action\", True)\n\n return True\n elif step == 2:\n print \"Super-Gluu. Prepare for step 2\"\n if self.oneStep:\n return True\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine user name\"\n return False\n\n if session_attributes.containsKey(\"super_gluu_request\"):\n super_gluu_request = session_attributes.get(\"super_gluu_request\")\n if not StringHelper.equalsIgnoreCase(super_gluu_request, \"timeout\"):\n print \"Super-Gluu. Prepare for step 2. Request was generated already\"\n return True\n \n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine session_id\"\n return False\n\n auth_method = session_attributes.get(\"super_gluu_auth_method\")\n if StringHelper.isEmpty(auth_method):\n print \"Super-Gluu. Prepare for step 2. Failed to determine auth_method\"\n return False\n\n print \"Super-Gluu. Prepare for step 2. auth_method: '%s'\" % auth_method\n \n issuer = CdiUtil.bean(ConfigurationFactory).getAppConfiguration().getIssuer()\n super_gluu_request_dictionary = {'username': user.getUserId(),\n 'app': client_redirect_uri,\n 'issuer': issuer,\n 'method': auth_method,\n 'state': session.getId(),\n 'created': DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now().withNano(0))}\n\n self.addGeolocationData(session_attributes, super_gluu_request_dictionary)\n\n super_gluu_request = json.dumps(super_gluu_request_dictionary, separators=(',',':'))\n print \"Super-Gluu. Prepare for step 2. Prepared super_gluu_request:\", super_gluu_request\n\n identity.setWorkingParameter(\"super_gluu_request\", super_gluu_request)\n identity.setWorkingParameter(\"super_gluu_auth_method\", auth_method)\n\n if auth_method in ['authenticate']:\n self.sendPushNotification(client_redirect_uri, user, super_gluu_request)\n\n return True\n else:\n return False\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n # If user not pass current step change step to previous\n identity = CdiUtil.bean(Identity)\n retry_current_step = identity.getWorkingParameter(\"retry_current_step\")\n if retry_current_step:\n print \"Super-Gluu. Get next step. Retrying current step\"\n\n # Remove old QR code\n identity.setWorkingParameter(\"super_gluu_request\", \"timeout\")\n\n resultStep = step\n return resultStep\n\n return -1\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 1:\n if self.oneStep: \n return Arrays.asList(\"super_gluu_request\")\n elif self.twoStep:\n return Arrays.asList(\"display_register_action\")\n elif step == 2:\n return Arrays.asList(\"super_gluu_auth_method\", \"super_gluu_request\")\n \n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n identity = CdiUtil.bean(Identity)\n if identity.isSetWorkingParameter(\"super_gluu_count_login_steps\"):\n return identity.getWorkingParameter(\"super_gluu_count_login_steps\")\n else:\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n if self.oneStep: \n return \"/auth/super-gluu/login.xhtml\"\n elif step == 2:\n if self.oneStep:\n return \"/login.xhtml\"\n else:\n identity = CdiUtil.bean(Identity)\n authmethod = identity.getWorkingParameter(\"super_gluu_auth_method\")\n print \"Super-Gluu. authmethod '%s'\" % authmethod\n if authmethod == \"enroll\":\n return \"/auth/super-gluu/login.xhtml\"\n else:\n return \"/auth/super-gluu/login.xhtml\"\n\n return \"\"\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def processBasicAuthentication(self, credentials):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if find_user_by_uid == None:\n print \"Super-Gluu. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def validateSessionDeviceStatus(self, client_redirect_uri, session_device_status, user_name = None):\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n\n u2f_device_id = session_device_status['device_id']\n\n u2f_device = None\n if session_device_status['enroll'] and session_device_status['one_step']:\n u2f_device = deviceRegistrationService.findOneStepUserDeviceRegistration(u2f_device_id)\n if u2f_device == None:\n print \"Super-Gluu. Validate session device status. There is no one step u2f_device '%s'\" % u2f_device_id\n return False\n else:\n # Validate if user has specified device_id enrollment\n user_inum = userService.getUserInum(user_name)\n\n if session_device_status['one_step']:\n user_inum = session_device_status['user_inum']\n \n u2f_device = deviceRegistrationService.findUserDeviceRegistration(user_inum, u2f_device_id)\n if u2f_device == None:\n print \"Super-Gluu. Validate session device status. There is no u2f_device '%s' associated with user '%s'\" % (u2f_device_id, user_inum)\n return False\n\n if not StringHelper.equalsIgnoreCase(client_redirect_uri, u2f_device.application):\n print \"Super-Gluu. Validate session device status. u2f_device '%s' associated with other application '%s'\" % (u2f_device_id, u2f_device.application)\n return False\n \n return True\n\n def getSessionDeviceStatus(self, session_attributes, user_name):\n print \"Super-Gluu. Get session device status\"\n\n if not session_attributes.containsKey(\"super_gluu_request\"):\n print \"Super-Gluu. Get session device status. There is no Super-Gluu request in session attributes\"\n return None\n\n # Check session state extended\n if not session_attributes.containsKey(\"session_custom_state\"):\n print \"Super-Gluu. Get session device status. There is no session_custom_state in session attributes\"\n return None\n\n session_custom_state = session_attributes.get(\"session_custom_state\")\n if not StringHelper.equalsIgnoreCase(\"approved\", session_custom_state):\n print \"Super-Gluu. Get session device status. User '%s' not approve or not pass U2F authentication. session_custom_state: '%s'\" % (user_name, session_custom_state)\n return None\n\n # Try to find device_id in session attribute\n if not session_attributes.containsKey(\"oxpush2_u2f_device_id\"):\n print \"Super-Gluu. Get session device status. There is no u2f_device associated with this request\"\n return None\n\n # Try to find user_inum in session attribute\n if not session_attributes.containsKey(\"oxpush2_u2f_device_user_inum\"):\n print \"Super-Gluu. Get session device status. There is no user_inum associated with this request\"\n return None\n \n enroll = False\n if session_attributes.containsKey(\"oxpush2_u2f_device_enroll\"):\n enroll = StringHelper.equalsIgnoreCase(\"true\", session_attributes.get(\"oxpush2_u2f_device_enroll\"))\n\n one_step = False\n if session_attributes.containsKey(\"oxpush2_u2f_device_one_step\"):\n one_step = StringHelper.equalsIgnoreCase(\"true\", session_attributes.get(\"oxpush2_u2f_device_one_step\"))\n \n super_gluu_request = session_attributes.get(\"super_gluu_request\")\n u2f_device_id = session_attributes.get(\"oxpush2_u2f_device_id\")\n user_inum = session_attributes.get(\"oxpush2_u2f_device_user_inum\")\n\n session_device_status = {\"super_gluu_request\": super_gluu_request, \"device_id\": u2f_device_id, \"user_inum\" : user_inum, \"enroll\" : enroll, \"one_step\" : one_step}\n print \"Super-Gluu. Get session device status. session_device_status: '%s'\" % (session_device_status)\n \n return session_device_status\n\n def initPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize Native/SNS/Gluu notification services\"\n\n self.pushSnsMode = False\n self.pushGluuMode = False\n if configurationAttributes.containsKey(\"notification_service_mode\"):\n notificationServiceMode = configurationAttributes.get(\"notification_service_mode\").getValue2()\n if StringHelper.equalsIgnoreCase(notificationServiceMode, \"sns\"):\n return self.initSnsPushNotificationService(configurationAttributes)\n elif StringHelper.equalsIgnoreCase(notificationServiceMode, \"gluu\"):\n return self.initGluuPushNotificationService(configurationAttributes)\n\n return self.initNativePushNotificationService(configurationAttributes)\n\n def initNativePushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize native notification services\"\n \n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n android_creds = creds[\"android\"][\"gcm\"]\n ios_creds = creds[\"ios\"][\"apns\"]\n except:\n print \"Super-Gluu. Initialize native notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if android_creds[\"enabled\"]:\n self.pushAndroidService = Sender(android_creds[\"api_key\"]) \n print \"Super-Gluu. Initialize native notification services. Created Android notification service\"\n \n if ios_creds[\"enabled\"]:\n p12_file_path = ios_creds[\"p12_file_path\"]\n p12_password = ios_creds[\"p12_password\"]\n\n try:\n encryptionService = CdiUtil.bean(EncryptionService)\n p12_password = encryptionService.decrypt(p12_password)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize native notification services. Assuming that 'p12_password' password in not encrypted\"\n\n apnsServiceBuilder = APNS.newService().withCert(p12_file_path, p12_password)\n if ios_creds[\"production\"]:\n self.pushAppleService = apnsServiceBuilder.withProductionDestination().build()\n else:\n self.pushAppleService = apnsServiceBuilder.withSandboxDestination().build()\n\n self.pushAppleServiceProduction = ios_creds[\"production\"]\n\n print \"Super-Gluu. Initialize native notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def initSnsPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize SNS notification services\"\n self.pushSnsMode = True\n\n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n sns_creds = creds[\"sns\"]\n android_creds = creds[\"android\"][\"sns\"]\n ios_creds = creds[\"ios\"][\"sns\"]\n except:\n print \"Super-Gluu. Initialize SNS notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if not (android_creds[\"enabled\"] or ios_creds[\"enabled\"]):\n print \"Super-Gluu. Initialize SNS notification services. SNS disabled for all platforms\"\n return False\n\n sns_access_key = sns_creds[\"access_key\"]\n sns_secret_access_key = sns_creds[\"secret_access_key\"]\n sns_region = sns_creds[\"region\"]\n\n encryptionService = CdiUtil.bean(EncryptionService)\n\n try:\n sns_secret_access_key = encryptionService.decrypt(sns_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize SNS notification services. Assuming that 'sns_secret_access_key' in not encrypted\"\n \n pushSnsService = CdiUtil.bean(PushSnsService)\n pushClient = pushSnsService.createSnsClient(sns_access_key, sns_secret_access_key, sns_region)\n\n if android_creds[\"enabled\"]:\n self.pushAndroidService = pushClient\n self.pushAndroidPlatformArn = android_creds[\"platform_arn\"]\n print \"Super-Gluu. Initialize SNS notification services. Created Android notification service\"\n\n if ios_creds[\"enabled\"]:\n self.pushAppleService = pushClient \n self.pushApplePlatformArn = ios_creds[\"platform_arn\"]\n self.pushAppleServiceProduction = ios_creds[\"production\"]\n print \"Super-Gluu. Initialize SNS notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def initGluuPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize Gluu notification services\"\n\n self.pushGluuMode = True\n\n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n gluu_conf = creds[\"gluu\"]\n android_creds = creds[\"android\"][\"gluu\"]\n ios_creds = creds[\"ios\"][\"gluu\"]\n except:\n print \"Super-Gluu. Initialize Gluu notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if not (android_creds[\"enabled\"] or ios_creds[\"enabled\"]):\n print \"Super-Gluu. Initialize Gluu notification services. Gluu disabled for all platforms\"\n return False\n\n gluu_server_uri = gluu_conf[\"server_uri\"]\n notifyClientFactory = NotifyClientFactory.instance()\n metadataConfiguration = None\n try:\n metadataConfiguration = notifyClientFactory.createMetaDataConfigurationService(gluu_server_uri).getMetadataConfiguration()\n except:\n print \"Super-Gluu. Initialize Gluu notification services. Failed to load metadata. Exception: \", sys.exc_info()[1]\n return False\n\n gluuClient = notifyClientFactory.createNotifyService(metadataConfiguration)\n encryptionService = CdiUtil.bean(EncryptionService)\n\n if android_creds[\"enabled\"]:\n gluu_access_key = android_creds[\"access_key\"]\n gluu_secret_access_key = android_creds[\"secret_access_key\"]\n \n try:\n gluu_secret_access_key = encryptionService.decrypt(gluu_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize Gluu notification services. Assuming that 'gluu_secret_access_key' in not encrypted\"\n \n self.pushAndroidService = gluuClient \n self.pushAndroidServiceAuth = notifyClientFactory.getAuthorization(gluu_access_key, gluu_secret_access_key);\n print \"Super-Gluu. Initialize Gluu notification services. Created Android notification service\"\n\n if ios_creds[\"enabled\"]:\n gluu_access_key = ios_creds[\"access_key\"]\n gluu_secret_access_key = ios_creds[\"secret_access_key\"]\n \n try:\n gluu_secret_access_key = encryptionService.decrypt(gluu_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize Gluu notification services. Assuming that 'gluu_secret_access_key' in not encrypted\"\n \n self.pushAppleService = gluuClient \n self.pushAppleServiceAuth = notifyClientFactory.getAuthorization(gluu_access_key, gluu_secret_access_key);\n print \"Super-Gluu. Initialize Gluu notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def loadPushNotificationCreds(self, configurationAttributes):\n print \"Super-Gluu. Initialize notification services\"\n if not configurationAttributes.containsKey(\"credentials_file\"):\n return None\n\n super_gluu_creds_file = configurationAttributes.get(\"credentials_file\").getValue2()\n\n # Load credentials from file\n f = open(super_gluu_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n except:\n print \"Super-Gluu. Initialize notification services. Failed to load credentials from file:\", super_gluu_creds_file\n return None\n finally:\n f.close()\n\n return creds\n\n def sendPushNotification(self, client_redirect_uri, user, super_gluu_request):\n try:\n self.sendPushNotificationImpl(client_redirect_uri, user, super_gluu_request)\n except:\n print \"Super-Gluu. Send push notification. Failed to send push notification: \", sys.exc_info()[1]\n\n def sendPushNotificationImpl(self, client_redirect_uri, user, super_gluu_request):\n if not self.enabledPushNotifications:\n return\n\n user_name = user.getUserId()\n print \"Super-Gluu. Send push notification. Loading user '%s' devices\" % user_name\n\n send_notification = False\n send_notification_result = True\n\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n\n user_inum = userService.getUserInum(user_name)\n\n send_android = 0\n send_ios = 0\n u2f_devices_list = deviceRegistrationService.findUserDeviceRegistrations(user_inum, client_redirect_uri, \"jansId\", \"jansDeviceData\", \"jansDeviceNotificationConf\")\n if u2f_devices_list.size() > 0:\n for u2f_device in u2f_devices_list:\n device_data = u2f_device.getDeviceData()\n\n # Device data which Super-Gluu gets during enrollment\n if device_data == None:\n continue\n\n platform = device_data.getPlatform()\n push_token = device_data.getPushToken()\n debug = False\n\n if StringHelper.equalsIgnoreCase(platform, \"ios\") and StringHelper.isNotEmpty(push_token):\n # Sending notification to iOS user's device\n if self.pushAppleService == None:\n print \"Super-Gluu. Send push notification. Apple native push notification service is not enabled\"\n else:\n send_notification = True\n \n title = \"Super Gluu\"\n message = \"Confirm your sign in request to: %s\" % client_redirect_uri\n\n if self.pushSnsMode or self.pushGluuMode:\n pushSnsService = CdiUtil.bean(PushSnsService)\n targetEndpointArn = self.getTargetEndpointArn(deviceRegistrationService, pushSnsService, PushPlatform.APNS, user, u2f_device)\n if targetEndpointArn == None:\n \treturn\n\n send_notification = True\n \n sns_push_request_dictionary = { \"aps\": \n { \"badge\": 0,\n \"alert\" : {\"body\": message, \"title\" : title},\n \"category\": \"ACTIONABLE\",\n \"content-available\": \"1\",\n \"sound\": 'default'\n },\n \"request\" : super_gluu_request\n }\n push_message = json.dumps(sns_push_request_dictionary, separators=(',',':'))\n \n if self.pushSnsMode:\n apple_push_platform = PushPlatform.APNS\n if not self.pushAppleServiceProduction:\n apple_push_platform = PushPlatform.APNS_SANDBOX\n \n send_notification_result = pushSnsService.sendPushMessage(self.pushAppleService, apple_push_platform, targetEndpointArn, push_message, None)\n if debug:\n print \"Super-Gluu. Send iOS SNS push notification. token: '%s', message: '%s', send_notification_result: '%s', apple_push_platform: '%s'\" % (push_token, push_message, send_notification_result, apple_push_platform)\n elif self.pushGluuMode:\n send_notification_result = self.pushAppleService.sendNotification(self.pushAppleServiceAuth, targetEndpointArn, push_message)\n if debug:\n print \"Super-Gluu. Send iOS Gluu push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n else:\n additional_fields = { \"request\" : super_gluu_request }\n \n msgBuilder = APNS.newPayload().alertBody(message).alertTitle(title).sound(\"default\")\n msgBuilder.category('ACTIONABLE').badge(0)\n msgBuilder.forNewsstand()\n msgBuilder.customFields(additional_fields)\n push_message = msgBuilder.build()\n \n send_notification_result = self.pushAppleService.push(push_token, push_message)\n if debug:\n print \"Super-Gluu. Send iOS Native push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n send_ios = send_ios + 1\n\n if StringHelper.equalsIgnoreCase(platform, \"android\") and StringHelper.isNotEmpty(push_token):\n # Sending notification to Android user's device\n if self.pushAndroidService == None:\n print \"Super-Gluu. Send native push notification. Android native push notification service is not enabled\"\n else:\n send_notification = True\n\n title = \"Super-Gluu\"\n if self.pushSnsMode or self.pushGluuMode:\n pushSnsService = CdiUtil.bean(PushSnsService)\n targetEndpointArn = self.getTargetEndpointArn(deviceRegistrationService, pushSnsService, PushPlatform.GCM, user, u2f_device)\n if targetEndpointArn == None:\n \treturn\n\n send_notification = True\n \n sns_push_request_dictionary = { \"collapse_key\": \"single\",\n \"content_available\": True,\n \"time_to_live\": 60,\n \"data\": \n { \"message\" : super_gluu_request,\n \"title\" : title }\n }\n push_message = json.dumps(sns_push_request_dictionary, separators=(',',':'))\n \n if self.pushSnsMode:\n send_notification_result = pushSnsService.sendPushMessage(self.pushAndroidService, PushPlatform.GCM, targetEndpointArn, push_message, None)\n if debug:\n print \"Super-Gluu. Send Android SNS push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n elif self.pushGluuMode:\n send_notification_result = self.pushAndroidService.sendNotification(self.pushAndroidServiceAuth, targetEndpointArn, push_message)\n if debug:\n print \"Super-Gluu. Send Android Gluu push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n else:\n msgBuilder = Message.Builder().addData(\"message\", super_gluu_request).addData(\"title\", title).collapseKey(\"single\").contentAvailable(True)\n push_message = msgBuilder.build()\n \n send_notification_result = self.pushAndroidService.send(push_message, push_token, 3)\n if debug:\n print \"Super-Gluu. Send Android Native push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n send_android = send_android + 1\n\n print \"Super-Gluu. Send push notification. send_android: '%s', send_ios: '%s'\" % (send_android, send_ios)\n\n def getTargetEndpointArn(self, deviceRegistrationService, pushSnsService, platform, user, u2fDevice):\n targetEndpointArn = None\n \n # Return endpoint ARN if it created already\n notificationConf = u2fDevice.getDeviceNotificationConf()\n if StringHelper.isNotEmpty(notificationConf):\n notificationConfJson = json.loads(notificationConf)\n targetEndpointArn = notificationConfJson['sns_endpoint_arn']\n if StringHelper.isNotEmpty(targetEndpointArn):\n print \"Super-Gluu. Get target endpoint ARN. There is already created target endpoint ARN\"\n return targetEndpointArn\n\n # Create endpoint ARN \n pushClient = None\n pushClientAuth = None\n platformApplicationArn = None\n if platform == PushPlatform.GCM:\n pushClient = self.pushAndroidService\n if self.pushSnsMode:\n platformApplicationArn = self.pushAndroidPlatformArn\n if self.pushGluuMode:\n pushClientAuth = self.pushAndroidServiceAuth\n elif platform == PushPlatform.APNS:\n pushClient = self.pushAppleService\n if self.pushSnsMode:\n platformApplicationArn = self.pushApplePlatformArn\n if self.pushGluuMode:\n pushClientAuth = self.pushAppleServiceAuth\n else:\n return None\n\n deviceData = u2fDevice.getDeviceData()\n pushToken = deviceData.getPushToken()\n \n print \"Super-Gluu. Get target endpoint ARN. Attempting to create target endpoint ARN for user: '%s'\" % user.getUserId()\n if self.pushSnsMode:\n targetEndpointArn = pushSnsService.createPlatformArn(pushClient, platformApplicationArn, pushToken, user)\n else:\n customUserData = pushSnsService.getCustomUserData(user)\n registerDeviceResponse = pushClient.registerDevice(pushClientAuth, pushToken, customUserData);\n if registerDeviceResponse != None and registerDeviceResponse.getStatusCode() == 200:\n targetEndpointArn = registerDeviceResponse.getEndpointArn()\n \n if StringHelper.isEmpty(targetEndpointArn):\n\t print \"Super-Gluu. Failed to get endpoint ARN for user: '%s'\" % user.getUserId()\n \treturn None\n\n print \"Super-Gluu. Get target endpoint ARN. Create target endpoint ARN '%s' for user: '%s'\" % (targetEndpointArn, user.getUserId())\n \n # Store created endpoint ARN in device entry\n userInum = user.getAttribute(\"inum\")\n u2fDeviceUpdate = deviceRegistrationService.findUserDeviceRegistration(userInum, u2fDevice.getId())\n u2fDeviceUpdate.setDeviceNotificationConf('{\"sns_endpoint_arn\" : \"%s\"}' % targetEndpointArn)\n deviceRegistrationService.updateDeviceRegistration(userInum, u2fDeviceUpdate)\n\n return targetEndpointArn\n\n def getApplicationUri(self, session_attributes):\n if self.applicationId != None:\n return self.applicationId\n \n if not session_attributes.containsKey(\"redirect_uri\"):\n return None\n\n return session_attributes.get(\"redirect_uri\")\n\n def setRequestScopedParameters(self, identity, step):\n downloadMap = HashMap()\n if self.registrationUri != None:\n identity.setWorkingParameter(\"external_registration_uri\", self.registrationUri)\n\n if self.androidUrl!= None and step == 1:\n downloadMap.put(\"android\", self.androidUrl)\n\n if self.IOSUrl != None and step == 1:\n downloadMap.put(\"ios\", self.IOSUrl)\n \n if self.customLabel != None:\n identity.setWorkingParameter(\"super_gluu_label\", self.customLabel)\n \n identity.setWorkingParameter(\"download_url\", downloadMap)\n identity.setWorkingParameter(\"super_gluu_qr_options\", self.customQrOptions)\n\n def addGeolocationData(self, session_attributes, super_gluu_request_dictionary):\n if session_attributes.containsKey(\"remote_ip\"):\n remote_ip = session_attributes.get(\"remote_ip\")\n if StringHelper.isNotEmpty(remote_ip):\n print \"Super-Gluu. Prepare for step 2. Adding req_ip and req_loc to super_gluu_request\"\n super_gluu_request_dictionary['req_ip'] = remote_ip\n\n remote_loc_dic = self.determineGeolocationData(remote_ip)\n if remote_loc_dic == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine remote location by remote IP '%s'\" % remote_ip\n return\n\n remote_loc = \"%s, %s, %s\" % ( remote_loc_dic['country'], remote_loc_dic['regionName'], remote_loc_dic['city'] )\n remote_loc_encoded = urllib.quote(remote_loc.encode('utf-8'))\n super_gluu_request_dictionary['req_loc'] = remote_loc_encoded\n\n def determineGeolocationData(self, remote_ip):\n print \"Super-Gluu. Determine remote location. remote_ip: '%s'\" % remote_ip\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n http_client_params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15 * 1000)\n \n geolocation_service_url = \"http://ip-api.com/json/%s?fields=49177\" % remote_ip\n geolocation_service_headers = { \"Accept\" : \"application/json\" }\n\n try:\n http_service_response = httpService.executeGet(http_client, geolocation_service_url, geolocation_service_headers)\n http_response = http_service_response.getHttpResponse()\n except:\n print \"Super-Gluu. Determine remote location. Exception: \", sys.exc_info()[1]\n return None\n\n try:\n if not httpService.isResponseStastusCodeOk(http_response):\n print \"Super-Gluu. Determine remote location. Get invalid response from validation server: \", str(http_response.getStatusLine().getStatusCode())\n httpService.consume(http_response)\n return None\n \n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes)\n httpService.consume(http_response)\n finally:\n http_service_response.closeConnection()\n\n if response_string == None:\n print \"Super-Gluu. Determine remote location. Get empty response from location server\"\n return None\n \n response = json.loads(response_string)\n \n if not StringHelper.equalsIgnoreCase(response['status'], \"success\"):\n print \"Super-Gluu. Determine remote location. Get response with status: '%s'\" % response['status']\n return None\n\n return response\n\n def isUserMemberOfGroup(self, user, attribute, group):\n is_member = False\n member_of_list = user.getAttributeValues(attribute)\n if (member_of_list != None):\n for member_of in member_of_list:\n if StringHelper.equalsIgnoreCase(group, member_of) or member_of.endswith(group):\n is_member = True\n break\n\n return is_member\n\n def processAuditGroup(self, user, attribute, group):\n is_member = self.isUserMemberOfGroup(user, attribute, group)\n if (is_member):\n print \"Super-Gluu. Authenticate for processAuditGroup. User '%s' member of audit group\" % user.getUserId()\n print \"Super-Gluu. Authenticate for processAuditGroup. Sending e-mail about user '%s' login to %s\" % (user.getUserId(), self.audit_email)\n \n # Send e-mail to administrator\n user_id = user.getUserId()\n mailService = CdiUtil.bean(MailService)\n subject = \"User log in: %s\" % user_id\n body = \"User log in: %s\" % user_id\n mailService.sendMail(self.audit_email, subject, body)\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "super_gluu", "modified": false, "configurationProperties": [ { "hide": false, "value2": "{ size: 500, mSize: 0.05 }", "value1": "qr_options" }, { "hide": false, "value2": "Super Gluu", "value1": "label" }, { "hide": false, "value2": "https://jenkins-build.jans.io/identity/register", "value1": "registration_uri" }, { "hide": false, "value2": "two_step", "value1": "authentication_mode" }, { "hide": false, "value2": "gluu", "value1": "notification_service_mode" }, { "hide": false, "value2": "/etc/certs/super_gluu_creds.json", "value1": "credentials_file" }, { "hide": false, "value2": "https://play.google.com/store/apps/details?id=gluu.org.super.gluu&hl=en_US", "value1": "supergluu_android_download_url" }, { "hide": false, "value2": "https://itunes.apple.com/us/app/super-gluu/id1093479646", "value1": "supergluu_ios_download_url" } ], "baseDn": "inum=92F0-BF9E,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Jans Config Api authorization script", "locationType": "ldap", "dn": "inum=A110-88AB,ou=scripts,o=jans", "inum": "A110-88AB", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2018, Janssen\n#\n# Author: Puja Sharma\n#\n#\n\nfrom io.jans.as.model.jwt import Jwt\nfrom io.jans.as.model.crypto import AuthCryptoProvider\nfrom io.jans.model.custom.script.conf import CustomScriptConfiguration\nfrom io.jans.model.custom.script.type.configapi import ConfigApiType\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom io.jans.configapi.model.configuration import ApiAppConfiguration\n\nfrom org.json import JSONObject\nfrom java.lang import String\nfrom jakarta.servlet.http import HttpServletRequest\nfrom jakarta.servlet.http import HttpServletResponse\n\n\nclass ConfigApiAuthorization(ConfigApiType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, configurationAttributes):\n print \"ConfigApiType script. Initializing ...\"\n print \"ConfigApiType script. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"ConfigApiType script. Destroying ...\"\n print \"ConfigApiType script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 1\n\n\n # Returns boolean true or false depending on the process, if the client is authorized\n # or not.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def authorize(self, responseAsJsonObject, context):\n print \" responseAsJsonObject: %s\" % responseAsJsonObject\n print \" context: %s\" % context\n\n print \"Config Authentication process\"\n request = context.httpRequest\n response = context.httpResponse\n print \" request = : %s\" % request\n print \" response = : %s\" % response\n\n appConfiguration = context.getApiAppConfiguration()\n customScriptConfiguration = context.getScript()\n issuer = context.getRequestParameters().get(\"ISSUER\")\n token = context.getRequestParameters().get(\"TOKEN\")\n method = context.getRequestParameters().get(\"METHOD\")\n path = context.getRequestParameters().get(\"PATH\")\n \n print \" requese2: %s\" % request\n print \" response2 new: %s\" % response\n print \"ConfigApiType.appConfiguration: %s\" % appConfiguration\n print \"ConfigApiType.customScriptConfiguration: %s\" % customScriptConfiguration\n print \"ConfigApiType.issuer: %s\" % issuer\n print \"ConfigApiType.token: %s\" % token\n print \"ConfigApiType.method: %s\" % method\n print \"ConfigApiType.path: %s\" % path\n\n #Example to validate method\n if (\"GET\" == StringHelper.toUpperCase(method) ):\n print \"Validate method: %s\" % method\n \n if (\"attributes\" == StringHelper.toLowerCase(path) ):\n print \"ConfigApiType.path: %s\" % path\n \n responseAsJsonObject.accumulate(\"key_from_script\", \"value_from_script\")\n print \" final responseAsJsonObject: %s\" % responseAsJsonObject\n\n return True\n\n\n\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "config_api_auth", "name": "config_api_authorization", "modified": false, "configurationProperties": [ { "hide": false, "value2": "Test value 1", "value1": "testProp1" }, { "hide": false, "value2": "Test value 2", "value1": "testProp2" } ], "baseDn": "inum=A110-88AB,ou=scripts,o=jans" }, { "internal": false, "level": 1, "programmingLanguage": "python", "description": "Role Based Scopes", "locationType": "ldap", "dn": "inum=A44E-4F3D,ou=scripts,o=jans", "inum": "A44E-4F3D", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2018, Janssen\n#\n# Author: Yuriy Zabrovarnyy, Arnab Dutta, Mustafa Baser\n#\n#\nfrom io.jans.as.model.jwt import Jwt\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.model.crypto import AuthCryptoProvider\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.model.custom.script.type.introspection import IntrospectionType\nfrom io.jans.as.server.model.config import ConfigurationFactory\nfrom io.jans.as.model.config.adminui import AdminConf\nfrom org.json import JSONObject\nfrom java.lang import String\n\ntry:\n import json\nexcept ImportError:\n import simplejson as json\n\n\nclass Introspection(IntrospectionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Introspection script. Initializing ...\"\n print \"Introspection script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Introspection script. Destroying ...\"\n print \"Introspection script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - apply introspection method, false - ignore it.\n # This method is called after introspection response is ready. This method can modify introspection response.\n # Note :\n # responseAsJsonObject - is org.codehaus.jettison.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.service.external.context.ExternalIntrospectionContext (in https://github.com/JanssenFederation/oxauth project, )\n def modifyResponse(self, responseAsJsonObject, context):\n print \"Inside modifyResponse method of introspection script ....\"\n try:\n # Getting user-info-jwt\n ujwt = context.getHttpRequest().getParameter(\"ujwt\")\n print ujwt\n if not ujwt:\n print \"UJWT is empty or null. Only the default scopes will be added to the token.\"\n entryManager = CdiUtil.bean(PersistenceEntryManager)\n adminConf = AdminConf()\n adminUIConfig = entryManager.find(adminConf.getClass(), \"ou=admin-ui,ou=configuration,o=jans\")\n permissions = adminUIConfig.getDynamic().getPermissions()\n scopes = []\n for ele in permissions:\n if ele.getDefaultPermissionInToken() is not None and ele.getDefaultPermissionInToken():\n scopes.append(ele.getPermission())\n\n responseAsJsonObject.accumulate(\"scope\", scopes)\n return True\n\n # Parse jwt\n userInfoJwt = Jwt.parse(ujwt)\n\n configObj = CdiUtil.bean(ConfigurationFactory)\n jwksObj = configObj.getWebKeysConfiguration()\n jwks = JSONObject(jwksObj)\n\n # Validate JWT\n authCryptoProvider = AuthCryptoProvider()\n validJwt = authCryptoProvider.verifySignature(userInfoJwt.getSigningInput(), userInfoJwt.getEncodedSignature(), userInfoJwt.getHeader().getKeyId(), jwks, None, userInfoJwt.getHeader().getSignatureAlgorithm())\n\n if validJwt == True:\n # Get claims from parsed JWT\n jwtClaims = userInfoJwt.getClaims()\n jansAdminUIRole = jwtClaims.getClaim(\"jansAdminUIRole\")\n # fetch role-scope mapping from database\n scopes = None\n try:\n entryManager = CdiUtil.bean(PersistenceEntryManager)\n adminConf = AdminConf()\n adminUIConfig = entryManager.find(adminConf.getClass(), \"ou=admin-ui,ou=configuration,o=jans\")\n roleScopeMapping = adminUIConfig.getDynamic().getRolePermissionMapping()\n\n for ele in roleScopeMapping:\n if ele.getRole() == jansAdminUIRole.getString(0):\n scopes = ele.getPermissions()\n except Exception as e:\n print \"Error: Failed to fetch/parse Admin UI roleScopeMapping from DB\"\n print e\n\n print \"Following scopes will be added in api token: {}\".format(scopes)\n\n responseAsJsonObject.accumulate(\"scope\", scopes)\n except Exception as e:\n print \"Exception occured. Unable to resolve role/scope mapping.\"\n print e\n return True", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "introspection", "name": "role_based_scopes", "modified": false, "baseDn": "inum=A44E-4F3D,ou=scripts,o=jans" }, { "internal": false, "aliases": [ "basic_alias1", "basic_alias2" ], "level": 10, "programmingLanguage": "python", "description": "Sample authentication module", "locationType": "ldap", "dn": "inum=A51E-76DA,ou=scripts,o=jans", "inum": "A51E-76DA", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.util import StringHelper\n\nimport java\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Basic. Initialization\"\n print \"Basic. Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Basic. Destroy\"\n print \"Basic. Destroyed successfully\"\n return True\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if (step == 1):\n print \"Basic. Authenticate for step 1\"\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return False\n\n return True\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Basic. Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "basic", "modified": false, "baseDn": "inum=A51E-76DA,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample script for SCIM events", "locationType": "ldap", "dn": "inum=A910-56AB,ou=scripts,o=jans", "inum": "A910-56AB", "script": "# Visit https://www.gluu.org/docs/gluu-server/user-management/scim-scripting/ to learn more\nfrom io.jans.model.custom.script.type.scim import ScimType\n\nimport java\n\nclass ScimEventHandler(ScimType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, configurationAttributes):\n print \"ScimEventHandler (init): Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"ScimEventHandler (destroy): Destroyed successfully\"\n return True \n\n def getApiVersion(self):\n return 5\n\n def createUser(self, user, configurationAttributes):\n return True\n\n def updateUser(self, user, configurationAttributes):\n return True\n\n def deleteUser(self, user, configurationAttributes):\n return True\n\n def createGroup(self, group, configurationAttributes):\n return True\n\n def updateGroup(self, group, configurationAttributes):\n return True\n\n def deleteGroup(self, group, configurationAttributes):\n return True\n \n def postCreateUser(self, user, configurationAttributes):\n return True\n\n def postUpdateUser(self, user, configurationAttributes):\n return True\n\n def postDeleteUser(self, user, configurationAttributes):\n return True\n\n def postUpdateGroup(self, group, configurationAttributes):\n return True\n\n def postCreateGroup(self, group, configurationAttributes):\n return True\n\n def postDeleteGroup(self, group, configurationAttributes):\n return True\n \n def getUser(self, user, configurationAttributes):\n return True\n \n def getGroup(self, group, configurationAttributes):\n return True\n \n def postSearchUsers(self, results, configurationAttributes):\n return True\n\n def postSearchGroups(self, results, configurationAttributes):\n return True\n \n def allowResourceOperation(self, context, entity, configurationAttributes):\n return True \n \n def allowSearchOperation(self, context, configurationAttributes):\n return \"\"\n \n def rejectedResourceOperationResponse(self, context, entity, configurationAttributes):\n return None \n \n def rejectedSearchOperationResponse(self, context, configurationAttributes):\n return None\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "scim", "name": "scim_event_handler", "modified": false, "configurationProperties": [ { "hide": false, "value2": "Test value 1", "value1": "testProp1" }, { "hide": false, "value2": "Test value 2", "value1": "testProp2" } ], "baseDn": "inum=A910-56AB,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "This script is a 2 in 1. It can be used to enable user to reset its password or to enable 2FA sending a token to user's email", "dn": "inum=B270-381E,ou=scripts,o=jans", "inum": "B270-381E", "script": "# coding: utf-8\n# Janssen Project software is available under the Apache License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Christian Eland\n\n\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\n# from org.gluu.oxauth.auth import Authenticator\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.as.common.service.common import ConfigurationService\nfrom io.jans.as.common.service.common import EncryptionService\nfrom io.jans.jsf2.message import FacesMessages\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.orm.exception import AuthenticationException\n\n#dealing with smtp server\nimport smtplib\n\n#dealing with emails\nfrom email.mime.multipart import MIMEMultipart\nfrom email.mime.text import MIMEText\n\n# This one is from core Java\nfrom java.util import Arrays\n\n# to generate string token\nimport random\nimport string\n\n# regex\nimport re\n\nimport urllib\n\nimport java\n\nclass EmailValidator():\n '''\n Class to check e-mail format\n '''\n regex = '^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$'\n\n def check(self, email):\n '''\n Check if email format is valid\n returns: boolean\n '''\n\n if(re.search(self.regex,email)):\n print \"Forgot Password - %s is a valid email format\" % email\n return True\n else:\n print \"Forgot Password - %s is an invalid email format\" % email\n return False\n\nclass Token:\n #class that deals with string token\n\n def generateToken(self):\n ''' method to generate token string\n returns: String\n '''\n letters = string.ascii_lowercase\n\n #token lenght\n lenght = 20\n\n #generate token\n token = ''.join(random.choice(letters) for i in range(lenght))\n print \"Forgot Password - Generating token\"\n\n return token\n\n\nclass EmailSender():\n #class that sends e-mail through smtp\n\n def getSmtpConfig(self):\n '''\n get SMTP config from Gluu Server\n return dict\n '''\n \n smtpconfig = CdiUtil.bean(ConfigurationService).getConfiguration().getSmtpConfiguration()\n \n if smtpconfig is None:\n print \"Forgot Password - SMTP CONFIG DOESN'T EXIST - Please configure\"\n\n else:\n print \"Forgot Password - SMTP CONFIG FOUND\"\n encryptionService = CdiUtil.bean(EncryptionService)\n smtp_config = {\n 'host' : smtpconfig.getHost(),\n 'port' : smtpconfig.getPort(),\n 'user' : smtpconfig.getUserName(),\n 'from' : smtpconfig.getFromEmailAddress(),\n 'pwd_decrypted' : encryptionService.decrypt(smtpconfig.getPassword()),\n 'req_ssl' : smtpconfig.isRequiresSsl(),\n 'requires_authentication' : smtpconfig.isRequiresAuthentication(),\n 'server_trust' : smtpconfig.isServerTrust()\n }\n\n return smtp_config\n\n \n\n def sendEmail(self,useremail,token):\n '''\n send token by e-mail to useremail\n '''\n\n # server connection \n smtpconfig = self.getSmtpConfig()\n \n try:\n s = smtplib.SMTP(smtpconfig['host'], port=smtpconfig['port'])\n \n\n if smtpconfig['requires_authentication']:\n \n if smtpconfig['req_ssl']:\n s.starttls()\n \n s.login(smtpconfig['user'], smtpconfig['pwd_decrypted'])\n\n \n #message setup\n msg = MIMEMultipart() #create message\n \n message = \"Here is your token: %s\" % token\n\n msg['From'] = smtpconfig['from'] #sender\n msg['To'] = useremail #recipient\n msg['Subject'] = \"Password Reset Request\" #subject\n\n #attach message body\n msg.attach(MIMEText(message, 'plain'))\n\n #send message via smtp server\n # send_message method is for python3 only s.send_message(msg)\n\n #send email (python2)\n s.sendmail(msg['From'],msg['To'],msg.as_string())\n \n #after sent, delete\n del msg\n\n except smtplib.SMTPAuthenticationError as err:\n print \"Forgot Password - SMTPAuthenticationError - %s - %s\" % (MY_ADDRESS,PASSWORD)\n print err\n\n except smtplib.smtplib.SMTPSenderRefused as err:\n print \"Forgot Password - SMTPSenderRefused - \" + err\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n\n print \"Forgot Password - Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Forgot Password - Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n # I'm not sure why is 11 and not 2\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n '''\n Authenticates user\n Step 1 will be defined according to SCRIPT_FUNCTION custom attribute\n returns: boolean\n '''\n\n #gets custom attribute\n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n\n print \"Forgot Password - %s - Authenticate for step %s\" % (sf, step)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n\n if step == 1:\n\n if sf == \"forgot_password\":\n\n \n authenticationService = CdiUtil.bean(AuthenticationService)\n\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n \n if not logged_in:\n\n \n email = ServerUtil.getFirstValue(requestParameters, \"ForgotPasswordForm:useremail\")\n validator = EmailValidator()\n if not validator.check(email):\n print \"Forgot Password - Email format invalid\"\n return False\n\n else:\n print \"Forgot Password -Email format valid\"\n \n print \"Forgot Password - Entered email is %s\" % email\n identity.setWorkingParameter(\"useremail\",email)\n \n # Just trying to get the user by the email\n user_service = CdiUtil.bean(UserService)\n user2 = user_service.getUserByAttribute(\"mail\", email)\n\n if user2 is not None:\n \n print user2\n print \"Forgot Password - User with e-mail %s found.\" % user2.getAttribute(\"mail\")\n \n # send email\n new_token = Token()\n token = new_token.generateToken() \n sender = EmailSender()\n print \"Email: \" + email\n print \"Token: \" + token\n sender.sendEmail(email,token)\n\n \n identity.setWorkingParameter(\"token\", token)\n print identity.getWorkingParameter(\"token\")\n \n \n \n else:\n print \"Forgot Password - User with e-mail %s not found\" % email\n\n return True\n\n\n else:\n # if user is already authenticated, returns true.\n\n user = authenticationService.getAuthenticatedUser()\n print \"Forgot Password - User %s is authenticated\" % user.getUserId()\n\n return True\n\n if sf == \"email_2FA\":\n\n try:\n # Just trying to get the user by the uid\n authenticationService = CdiUtil.bean(AuthenticationService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n \n print 'email_2FA user_name: ' + str(user_name)\n \n user_service = CdiUtil.bean(UserService)\n user2 = user_service.getUserByAttribute(\"uid\", user_name)\n\n if user2 is not None:\n print \"user:\"\n print user2\n print \"Forgot Password - User with e-mail %s found.\" % user2.getAttribute(\"mail\")\n email = user2.getAttribute(\"mail\")\n uid = user2.getAttribute(\"uid\")\n\n # send token\n # send email\n new_token = Token()\n token = new_token.generateToken() \n sender = EmailSender()\n print \"Email: \" + email\n print \"Token: \" + token\n sender.sendEmail(email,token)\n\n identity.setWorkingParameter(\"token\", token)\n\n return True\n\n except AuthenticationException as err:\n print err\n return False\n\n \n \n\n if step == 2:\n # step 2 user enters token\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n \n authenticationService = CdiUtil.bean(AuthenticationService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n # retrieves token typed by user\n input_token = ServerUtil.getFirstValue(requestParameters, \"ResetTokenForm:inputToken\")\n\n print \"Forgot Password - Token inputed by user is %s\" % input_token\n\n token = identity.getWorkingParameter(\"token\")\n print \"Forgot Password - Retrieved token\"\n email = identity.getWorkingParameter(\"useremail\")\n print \"Forgot Password - Retrieved email\" \n\n # compares token sent and token entered by user\n if input_token == token:\n print \"Forgot Password - token entered correctly\"\n identity.setWorkingParameter(\"token_valid\", True)\n \n return True\n\n else:\n print \"Forgot Password - wrong token\"\n return False\n\n \n if step == 3:\n # step 3 enters new password (only runs if custom attibute is forgot_password\n\n user_service = CdiUtil.bean(UserService)\n\n email = identity.getWorkingParameter(\"useremail\")\n user2 = user_service.getUserByAttribute(\"mail\", email)\n\n\n user_name = user2.getUserId()\n \n new_password = ServerUtil.getFirstValue(requestParameters, \"UpdatePasswordForm:newPassword\")\n \n print \"Forgot Password - New password submited\"\n \n # update user info with new password\n user2.setAttribute(\"userPassword\",new_password)\n print \"Forgot Password - user uid is %s\" % user_name\n print \"Forgot Password - Updating user with new password...\"\n user_service.updateUser(user2)\n print \"Forgot Password - User updated with new password\"\n # authenticates and login user\n print \"Forgot Password - Loading authentication service...\"\n authenticationService2 = CdiUtil.bean(AuthenticationService)\n\n print \"Forgot Password - Trying to authenticate user...\"\n login = authenticationService2.authenticate(user_name, new_password)\n \n return True\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \n print \"Forgot Password - Preparing for step %s\" % step\n \n return True\n\n\n # Return value is a java.util.List \n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"token\",\"useremail\",\"token_valid\")\n\n\n # This method determines how many steps the authentication flow may have\n # It doesn't have to be a constant value\n def getCountAuthenticationSteps(self, configurationAttributes):\n \n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n \n\n # if option is forgot_token\n if sf == \"forgot_password\":\n print \"Entered sf == forgot_password\"\n return 3\n \n # if ption is email_2FA\n if sf == \"email_2FA\":\n print \"Entered if sf=email_2FA\"\n return 2\n\n else:\n print \"Forgot Password - Custom Script Custom Property Incorrect, please check\"\n\n\n # The xhtml page to render upon each step of the flow\n # returns a string relative to oxAuth webapp root\n def getPageForStep(self, configurationAttributes, step):\n \n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n\n if step == 1:\n\n if sf == \"forgot_password\":\n return \"/auth/forgot_password/forgot.xhtml\"\n\n if sf == 'email_2FA':\n return \"\"\n\n if step == 2:\n return \"/auth/forgot_password/entertoken.xhtml\"\n\n if step == 3:\n if sf == \"forgot_password\":\n return \"/auth/forgot_password/newpassword.xhtml\"\n\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n # Method used on version 2 (11?)\n return -1\n \n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "SCRIPT_FUNCTION" } ], "scriptType": "person_authentication", "name": "Forgot_Password_2FA_Token", "modified": false, "configurationProperties": [ { "hide": false, "value2": "forgot_password", "value1": "SCRIPT_FUNCTION" } ], "baseDn": "inum=B270-381E,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "Agama Script", "locationType": "ldap", "dn": "inum=BADA-BADA,ou=scripts,o=jans", "inum": "BADA-BADA", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\nfrom io.jans.agama import NativeJansFlowBridge\nfrom io.jans.agama.engine.misc import FlowUtils\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.jsf2.service import FacesService\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nfrom jakarta.faces.application import FacesMessage\n\nimport java\nimport sys\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Agama. Initialization\" \n prop = \"cust_param_name\"\n self.cust_param_name = self.configProperty(configurationAttributes, prop)\n \n if self.cust_param_name == None:\n print \"Agama. Custom parameter name not referenced via property '%s'\" % prop\n return False\n \n print \"Agama. Request param '%s' will be used to pass flow inputs\" % self.cust_param_name\n print \"Agama. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Agama. Destroy\"\n print \"Agama. Destroyed successfully\"\n return True\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n\n if step == 1:\n print \"Agama. Authenticate for step 1\"\n \n try:\n bridge = CdiUtil.bean(NativeJansFlowBridge)\n result = bridge.close()\n \n if result == None or not result.isSuccess():\n print \"Agama. Flow DID NOT finished successfully\"\n return False\n else:\n print \"Agama. Flow finished successfully\"\n data = result.getData()\n userId = data.get(\"userId\") if data != None else None\n \n if userId == None:\n print \"Agama. No userId provided in flow result.\" \n self.setMessageError(FacesMessage.SEVERITY_ERROR, \"Unable to determine identity of user\")\n return False\n \n authenticated = CdiUtil.bean(AuthenticationService).authenticate(userId)\n \n if not authenticated:\n print \"Agama. Unable to authenticate %s\" % userId\n return False\n except:\n print \"Agama. Exception: \", sys.exc_info()[1]\n return False\n\n return True\n\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \n if not CdiUtil.bean(FlowUtils).serviceEnabled():\n print \"Agama. Please ENABLE Agama engine in auth-server configuration\"\n return False\n\n if step == 1:\n print \"Agama. Prepare for Step 1\"\n\n session = CdiUtil.bean(Identity).getSessionId()\n if session == None:\n print \"Agama. Failed to retrieve session_id\"\n return False\n \n param = session.getSessionAttributes().get(self.cust_param_name) \n if param == None:\n print \"Agama. Request param '%s' is missing or has no value\" % self.cust_param_name\n return False\n \n (qn, ins) = self.extractParams(param)\n if qn == None:\n print \"Agama. Param '%s' is missing the name of the flow to be launched\" % self.cust_param_name\n return False\n \n try:\n bridge = CdiUtil.bean(NativeJansFlowBridge)\n running = bridge.prepareFlow(session.getId(), qn, ins)\n \n if running == None:\n print \"Agama. Flow '%s' does not exist!\" % qn\n return False\n elif running:\n print \"Agama. A flow is already in course\"\n \n print \"Agama. Redirecting to start/resume agama flow '%s'...\" % qn\n \n CdiUtil.bean(FacesService).redirectToExternalURL(bridge.getTriggerUrl())\n except:\n print \"Agama. An error occurred when launching flow '%s'. Check jans-auth logs\" % qn\n print \"Agama. Exception: \", sys.exc_info()[1]\n return False\n #except java.lang.Throwable, ex:\n # ex.printStackTrace() \n # return False \n return True\n \n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n # page referenced here is only used when a flow is restarted\n return \"/\" + CdiUtil.bean(NativeJansFlowBridge).scriptPageUrl()\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n# Misc routines\n\n def configProperty(self, configProperties, name):\n prop = configProperties.get(name)\n return None if prop == None else prop.getValue2()\n\n def setMessageError(self, severity, msg):\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n facesMessages.clear()\n facesMessages.add(severity, msg)\n \n def extractParams(self, param):\n\n # param must be of the form QN-INPUT where QN is the qualified name of the flow to launch\n # INPUT is a JSON object that contains the arguments to use for the flow call.\n # The keys of this object should match the already defined flow inputs. Ideally, and \n # depending on the actual flow implementation, some keys may not even be required \n # QN and INPUTS are separated by a hyphen\n # INPUT must be properly URL-encoded when HTTP GET is used\n \n i = param.find(\"-\")\n if i == 0:\n return (None, None)\n elif i == -1:\n return (param, None)\n else:\n return (param[:i], param[i+1:])\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "agama", "modified": false, "configurationProperties": [ { "hide": false, "value2": "agama_flow", "value1": "cust_param_name" } ], "baseDn": "inum=BADA-BADA,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "Firebase notification sender", "locationType": "ldap", "dn": "inum=C1BA-C1BA,ou=scripts,o=jans", "inum": "C1BA-C1BA", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2018, Janssen\n#\n# Author: Milton BO\n#\n#\n\nfrom io.jans.as.client.fcm import FirebaseCloudMessagingResponse\nfrom io.jans.as.client.fcm import FirebaseCloudMessagingClient\nfrom io.jans.as.client.fcm import FirebaseCloudMessagingRequest\nfrom io.jans.as.util import RedirectUri\nfrom io.jans.model.custom.script.type.ciba import EndUserNotificationType\nfrom java.lang import String\nfrom java.util import UUID\n\nclass EndUserNotification(EndUserNotificationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, configurationAttributes):\n print \"Firebase EndUserNotification script. Initializing ...\"\n print \"Firebase EndUserNotification script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Firebase EndUserNotification script. Destroying ...\"\n print \"Firebase EndUserNotification script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 1\n\n # Returns boolean true or false depending on the process, if the notification\n # is sent successfully or not.\n def notifyEndUser(self, context):\n print 'Sending push notification using Firebase Cloud Messaging'\n appConfiguration = context.getAppConfiguration()\n encryptionService = context.getEncryptionService()\n clientId = appConfiguration.getBackchannelClientId()\n redirectUri = appConfiguration.getBackchannelRedirectUri()\n url = appConfiguration.getCibaEndUserNotificationConfig().getNotificationUrl()\n key = encryptionService.decrypt(appConfiguration.getCibaEndUserNotificationConfig().getNotificationKey(), True)\n to = context.getDeviceRegistrationToken()\n title = \"oxAuth Authentication Request\"\n body = \"Client Initiated Backchannel Authentication (CIBA)\"\n\n authorizationRequestUri = RedirectUri(appConfiguration.getAuthorizationEndpoint())\n authorizationRequestUri.addResponseParameter(\"client_id\", clientId)\n authorizationRequestUri.addResponseParameter(\"response_type\", \"id_token\")\n authorizationRequestUri.addResponseParameter(\"scope\", context.getScope())\n authorizationRequestUri.addResponseParameter(\"acr_values\", context.getAcrValues())\n authorizationRequestUri.addResponseParameter(\"redirect_uri\", redirectUri)\n authorizationRequestUri.addResponseParameter(\"state\", UUID.randomUUID().toString())\n authorizationRequestUri.addResponseParameter(\"nonce\", UUID.randomUUID().toString())\n authorizationRequestUri.addResponseParameter(\"prompt\", \"consent\")\n authorizationRequestUri.addResponseParameter(\"auth_req_id\", context.getAuthReqId())\n\n clickAction = authorizationRequestUri.toString()\n\n firebaseCloudMessagingRequest = FirebaseCloudMessagingRequest(key, to, title, body, clickAction)\n firebaseCloudMessagingClient = FirebaseCloudMessagingClient(url)\n firebaseCloudMessagingClient.setRequest(firebaseCloudMessagingRequest)\n firebaseCloudMessagingResponse = firebaseCloudMessagingClient.exec()\n\n responseStatus = firebaseCloudMessagingResponse.getStatus()\n print \"CIBA: firebase cloud messaging result status \" + str(responseStatus)\n return (responseStatus >= 200 and responseStatus < 300 )\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "ciba_end_user_notification", "name": "firebase_ciba_end_user_notification", "modified": false, "baseDn": "inum=C1BA-C1BA,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Scan Token Update Script", "dn": "inum=CACD-5902,ou=scripts,o=jans", "inum": "CACD-5902", "script": "from io.jans.service.cdi.util import CdiUtil\nfrom io.jans.model.custom.script.type.token import UpdateTokenType\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.model.config import ConfigurationFactory\nfrom io.jans.as.server.service import ClientService\nfrom io.jans.as.server.service.net import HttpService\nfrom java.nio.charset import Charset\nfrom org.json import JSONObject\nfrom jakarta.faces.context import FacesContext\n\nimport java\nimport sys\nimport os\n\nclass UpdateToken(UpdateTokenType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Update token script. Initializing ...\"\n if (not configurationAttributes.containsKey(\"BILLING_API_URL\")):\n\t print \"Update token script. Initialization. Property BILLING_API_URL is not specified\"\n\t return False\n else:\n \tself.BILLING_API_URL = configurationAttributes.get(\"BILLING_API_URL\").getValue2()\n\n print \"Update token script. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Update token script. Destroying ...\"\n print \"Update token script. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n # Returns boolean, true - indicates that script applied changes\n # This method is called after adding headers and claims. Hence script can override them\n # Note :\n # jsonWebResponse - is JwtHeader, you can use any method to manipulate JWT\n # context is reference of io.jans.oxauth.service.external.context.ExternalUpdateTokenContext (in https://github.com/GluuFederation/oxauth project, )\n def modifyIdToken(self, jsonWebResponse, context):\n return True\n\n # Returns boolean, true - indicates that script applied changes. If false is returned token will not be created.\n # refreshToken is reference of io.jans.as.server.model.common.RefreshToken (note authorization grant can be taken as context.getGrant())\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def modifyRefreshToken(self, refreshToken, context):\n return True\n\n # Returns boolean, true - indicates that script applied changes. If false is returned token will not be created.\n # accessToken is reference of io.jans.as.server.model.common.AccessToken (note authorization grant can be taken as context.getGrant())\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def modifyAccessToken(self, accessToken, context):\n print \"Update token script. Modify AT: \"\n\tsessionIdService = CdiUtil.bean(SessionIdService)\n\tsessionId = sessionIdService.getSessionByDn(context.getGrant().getSessionDn()) # fetch from persistence\n client_id = sessionId.getSessionAttributes().get(\"client_id\")\n\n # get org_id from client_id\n clientService = CdiUtil.bean(ClientService)\n client = clientService.getClient(client_id)\n org_id = client.getOrganization()\n\n # the aud claim is mandatory in the auth header request (by Google API gateway)\n facesContext = CdiUtil.bean(FacesContext)\n request = facesContext.getExternalContext().getRequest()\n accessToken.getHeader().setClaim(\"aud\", request)\n\n\n # query Billing API\n return self.balanceAvailable(org_id)\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getRefreshTokenLifetimeInSeconds(self, context):\n return 0\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getIdTokenLifetimeInSeconds(self, context):\n return 0\n\n # context is reference of io.jans.as.server.service.external.context.ExternalUpdateTokenContext (in https://github.com/JanssenProject/jans-auth-server project, )\n def getAccessTokenLifetimeInSeconds(self, context):\n return 0\n\n def balanceAvailable(self, org_id):\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n\n url = self.BILLING_API_URL + \"organization_balance?organization_id=\"+org_id\n\n try:\n http_service_response = httpService.executeGet(http_client, url)\n http_response = http_service_response.getHttpResponse()\n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes, Charset.forName(\"UTF-8\"))\n json_response = JSONObject(response_string)\n httpService.consume(http_response)\n print json_response.get(\"status\")\n if json_response.get(\"status\") == \"true\":\n return True\n else:\n print \"AT will not be created because balance is negative : %s \" % json_response.get(\"status\")\n return False\n\n except:\n print \"Failed to invoke BILLING_API: \", sys.exc_info()[1]\n return False\n\n\n finally:\n http_service_response.closeConnection()\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "v2", "value1": "v1" } ], "scriptType": "update_token", "name": "scan_update_token", "modified": false, "configurationProperties": [ { "hide": false, "value2": "https://my.billing.api.com/", "value1": "BILLING_API_URL", "description": "URL to billing API" } ], "baseDn": "inum=CACD-5902,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Permission Dynamic Scope script", "locationType": "ldap", "dn": "inum=CB5B-3211,ou=scripts,o=jans", "inum": "CB5B-3211", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.scope import DynamicScopeType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList\n\nimport java\n\nclass DynamicScope(DynamicScopeType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Permission dynamic scope. Initialization\"\n\n print \"Permission dynamic scope. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Permission dynamic scope. Destroy\"\n print \"Permission dynamic scope. Destroyed successfully\"\n return True \n\n # Update Json Web token before signing/encrypring it\n # dynamicScopeContext is io.jans.as.service.external.context.DynamicScopeExternalContext\n # configurationAttributes is java.util.Map\n def update(self, dynamicScopeContext, configurationAttributes):\n print \"Permission dynamic scope scope. Update method\"\n\n authorizationGrant = dynamicScopeContext.getAuthorizationGrant()\n user = dynamicScopeContext.getUser()\n jsonWebResponse = dynamicScopeContext.getJsonWebResponse()\n claims = jsonWebResponse.getClaims()\n\n userService = CdiUtil.bean(UserService)\n roles = userService.getCustomAttribute(user, \"role\")\n if roles != None:\n claims.setClaim(\"role\", roles.getValues())\n\n return True\n\n def getSupportedClaims(self, configurationAttributes):\n return Arrays.asList(\"role\")\n\n def getApiVersion(self):\n return 11\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "dynamic_scope", "name": "dynamic_permission", "modified": false, "baseDn": "inum=CB5B-3211,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Client Registration script", "locationType": "ldap", "dn": "inum=DAA9-B788,ou=scripts,o=jans", "inum": "DAA9-B788", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.client import ClientRegistrationType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.service import ScopeService\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom java.util import Arrays, ArrayList, HashSet\n\nimport java\n\nclass ClientRegistration(ClientRegistrationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Client registration. Initialization\"\n \n self.clientRedirectUrisSet = self.prepareClientRedirectUris(configurationAttributes)\n\n print \"Client registration. Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Client registration. Destroy\"\n print \"Client registration. Destroyed successfully\"\n return True \n\n # Update client entry before persistent it\n # context refers to io.jans.as.server.service.external.context.DynamicClientRegistrationContext - see https://github.com/JanssenProject/jans-auth-server/blob/e083818272ac48813eca8525e94f7bd73a7a9f1b/server/src/main/java/io/jans/as/server/service/external/context/DynamicClientRegistrationContext.java#L24\n def createClient(self, context):\n print \"Client registration. CreateClient method\"\n registerRequest = context.getRegisterRequest()\n configurationAttributes = context.getConfigurationAttibutes()\n client = context.getClient()\n\n redirectUris = client.getRedirectUris()\n print \"Client registration. Redirect Uris: %s\" % redirectUris\n\n addAddressScope = False\n for redirectUri in redirectUris:\n if (self.clientRedirectUrisSet.contains(redirectUri)):\n addAddressScope = True\n break\n \n print \"Client registration. Is add address scope: %s\" % addAddressScope\n\n if addAddressScope:\n currentScopes = client.getScopes()\n print \"Client registration. Current scopes: %s\" % currentScopes\n \n scopeService = CdiUtil.bean(ScopeService)\n addressScope = scopeService.getScopeByDisplayName(\"address\")\n newScopes = ArrayHelper.addItemToStringArray(currentScopes, addressScope.getDn())\n \n print \"Client registration. Result scopes: %s\" % newScopes\n client.setScopes(newScopes)\n\n return True\n\n # Update client entry before persistent it\n # context refers to io.jans.as.server.service.external.context.DynamicClientRegistrationContext - see https://github.com/JanssenProject/jans-auth-server/blob/e083818272ac48813eca8525e94f7bd73a7a9f1b/server/src/main/java/io/jans/as/server/service/external/context/DynamicClientRegistrationContext.java#L24\n def updateClient(self, context):\n print \"Client registration. UpdateClient method\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def prepareClientRedirectUris(self, configurationAttributes):\n clientRedirectUrisSet = HashSet()\n if not configurationAttributes.containsKey(\"client_redirect_uris\"):\n return clientRedirectUrisSet\n\n clientRedirectUrisList = configurationAttributes.get(\"client_redirect_uris\").getValue2()\n if StringHelper.isEmpty(clientRedirectUrisList):\n print \"Client registration. The property client_redirect_uris is empty\"\n return clientRedirectUrisSet \n\n clientRedirectUrisArray = StringHelper.split(clientRedirectUrisList, \",\")\n if ArrayHelper.isEmpty(clientRedirectUrisArray):\n print \"Client registration. No clients specified in client_redirect_uris property\"\n return clientRedirectUrisSet\n \n # Convert to HashSet to quick search\n i = 0\n count = len(clientRedirectUrisArray)\n while i < count:\n uris = clientRedirectUrisArray[i]\n clientRedirectUrisSet.add(uris)\n i = i + 1\n\n return clientRedirectUrisSet\n\n # Returns secret key which will be used to validate Software Statement if HMAC algorithm is used (e.g. HS256, HS512). Invoked if oxauth conf property softwareStatementValidationType=SCRIPT which is default/fallback value.\n # context is reference of io.jans.as.service.external.context.DynamicClientRegistrationContext (in https://github.com/JanssenFederation/oxauth project )\n def getSoftwareStatementHmacSecret(self, context):\n return \"\"\n\n # Returns JWKS which will be used to validate Software Statement if keys are used (e.g. RS256). Invoked if oxauth conf property softwareStatementValidationType=SCRIPT which is default/fallback value.\n # context is reference of io.jans.as.service.external.context.DynamicClientRegistrationContext (in https://github.com/JanssenFederation/oxauth project )\n def getSoftwareStatementJwks(self, context):\n return \"\"\n\n # cert - java.security.cert.X509Certificate\n # context refers to io.jans.as.server.service.external.context.DynamicClientRegistrationContext - see https://github.com/JanssenProject/jans-auth-server/blob/e083818272ac48813eca8525e94f7bd73a7a9f1b/server/src/main/java/io/jans/as/server/service/external/context/DynamicClientRegistrationContext.java#L24\n def isCertValidForClient(self, cert, context):\n return False\n\n # responseAsJsonObject - is org.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.server.model.common.ExecutionContext\n def modifyPutResponse(self, responseAsJsonObject, executionContext):\n return False\n\n # responseAsJsonObject - is org.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.server.model.common.ExecutionContext\n def modifyReadResponse(self, responseAsJsonObject, executionContext):\n return False\n\n # responseAsJsonObject - is org.json.JSONObject, you can use any method to manipulate json\n # context is reference of io.jans.as.server.model.common.ExecutionContext\n def modifyPostResponse(self, responseAsJsonObject, executionContext):\n return False\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "client_registration", "name": "client_registration", "modified": false, "configurationProperties": [ { "hide": false, "value2": "https://client.example.com/example1, https://client.example.com/example2", "value1": "client_redirect_uris" } ], "baseDn": "inum=DAA9-B788,ou=scripts,o=jans" }, { "internal": false, "level": 100, "programmingLanguage": "python", "description": "Sample Application Session script", "locationType": "ldap", "dn": "inum=DAA9-B789,ou=scripts,o=jans", "inum": "DAA9-B789", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2016, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.session import ApplicationSessionType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.persist import PersistenceEntryManager\nfrom io.jans.as.model.config import StaticConfiguration\nfrom io.jans.as.model.ldap import TokenEntity\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.util import StringHelper, ArrayHelper\nfrom io.jans.as.model.config import Constants\nfrom java.util import Arrays, ArrayList\nfrom io.jans.as.service.external.session import SessionEventType\n\nimport java\n\nclass ApplicationSession(ApplicationSessionType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Application session. Initialization\"\n\n self.entryManager = CdiUtil.bean(PersistenceEntryManager)\n self.staticConfiguration = CdiUtil.bean(StaticConfiguration)\n\n print \"Application session. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Application session. Destroy\"\n print \"Application session. Destroyed successfully\"\n return True \n\n def getApiVersion(self):\n return 11\n\n # Called each time specific session event occurs\n # event is io.jans.as.service.external.session.SessionEvent\n def onEvent(self, event):\n if event.getType() == SessionEventType.AUTHENTICATED:\n print \"Session is authenticated, session: \" + event.getSessionId().getId()\n return\n\n # Application calls it at start session request to allow notify 3rd part systems\n # httpRequest is jakarta.servlet.http.HttpServletRequest\n # sessionId is io.jans.as.model.common.SessionId\n # configurationAttributes is java.util.Map\n def startSession(self, httpRequest, sessionId, configurationAttributes):\n print \"Application session. Starting external session\"\n\n user_name = sessionId.getSessionAttributes().get(Constants.AUTHENTICATED_USER)\n\n first_session = self.isFirstSession(user_name)\n if not first_session:\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Please, end active session first!\")\n return False\n\n print \"Application session. External session started successfully\"\n return True\n\n # Application calls it at end session request to allow notify 3rd part systems\n # httpRequest is jakarta.servlet.http.HttpServletRequest\n # sessionId is io.jans.as.model.common.SessionId\n # configurationAttributes is java.util.Map\n def endSession(self, httpRequest, sessionId, configurationAttributes):\n print \"Application session. Starting external session end\"\n\n print \"Application session. External session ended successfully\"\n return True\n\n # Application calls it during /session/active endpoint call to modify response if needed\n # jsonArray is org.json.JSONArray\n # context is io.jans.as.server.model.common.ExecutionContext\n def modifyActiveSessionsResponse(self, jsonArray, context):\n return False\n\n def isFirstSession(self, user_name):\n tokenLdap = TokenEntity()\n tokenLdap.setDn(self.staticConfiguration.getBaseDn().getClients())\n tokenLdap.setUserId(user_name)\n\n tokenLdapList = self.entryManager.findEntries(tokenLdap, 1)\n print \"Application session. isFirstSession. Get result: '%s'\" % tokenLdapList\n\n if (tokenLdapList != None) and (tokenLdapList.size() > 0):\n print \"Application session. isFirstSession: False\"\n return False\n\n print \"Application session. isFirstSession: True\"\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "application_session", "name": "application_session", "modified": false, "baseDn": "inum=DAA9-B789,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "Consent Gathering script", "locationType": "ldap", "dn": "inum=DAA9-BA60,ou=scripts,o=jans", "inum": "DAA9-BA60", "script": "# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n# Copyright (c) 2017, Janssen\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.authz import ConsentGatheringType\nfrom io.jans.util import StringHelper\n\nimport java\nimport random\n\nclass ConsentGathering(ConsentGatheringType):\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Consent-Gathering. Initializing ...\"\n print \"Consent-Gathering. Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Consent-Gathering. Destroying ...\"\n print \"Consent-Gathering. Destroyed successfully\"\n\n return True\n\n def getApiVersion(self):\n return 1\n\n # Main consent-gather method. Must return True (if gathering performed successfully) or False (if fail).\n # All user entered values can be access via Map context.getPageAttributes()\n def authorize(self, step, context): # context is reference of io.jans.as.service.external.context.ConsentGatheringContext\n print \"Consent-Gathering. Authorizing...\"\n\n if step == 1:\n allowButton = context.getRequestParameters().get(\"authorizeForm:allowButton\")\n if (allowButton != None) and (len(allowButton) > 0):\n print \"Consent-Gathering. Authorization success for step 1\"\n return True\n\n print \"Consent-Gathering. Authorization declined for step 1\"\n elif step == 2:\n allowButton = context.getRequestParameters().get(\"authorizeForm:allowButton\")\n if (allowButton != None) and (len(allowButton) > 0):\n print \"Consent-Gathering. Authorization success for step 2\"\n return True\n\n print \"Consent-Gathering. Authorization declined for step 2\"\n\n return False\n\n def getNextStep(self, step, context):\n return -1\n\n def prepareForStep(self, step, context):\n if not context.isAuthenticated():\n print \"User is not authenticated. Aborting authorization flow ...\"\n return False\n\n if step == 2:\n pageAttributes = context.getPageAttributes()\n \n # Generate random consent gathering request\n consentRequest = \"Requested transaction #%s approval for the amount of sum $ %s.00\" % ( random.randint(100000, 1000000), random.randint(1, 100) )\n pageAttributes.put(\"consent_request\", consentRequest)\n return True\n\n return True\n\n def getStepsCount(self, context):\n return 2\n\n def getPageForStep(self, step, context):\n if step == 1:\n return \"/authz/authorize.xhtml\"\n elif step == 2:\n return \"/authz/transaction.xhtml\"\n\n return \"\"\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "consent_gathering", "name": "consent_gathering", "modified": false, "baseDn": "inum=DAA9-BA60,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "GitHub Inbound Authentication script", "locationType": "ldap", "dn": "inum=E706-F8A8,ou=scripts,o=jans", "inum": "E706-F8A8", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.as.common.model.common import User\nfrom io.jans.as.model.jwt import Jwt\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.common.service.common import UserService\nfrom io.jans.as.server.service.net import HttpService\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.as.persistence.model.configuration import GluuConfiguration\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nfrom io.jans.jsf2.service import FacesService\nfrom java.util import Arrays, UUID\n\nimport json\nimport sys\nimport datetime\nimport urllib\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"GitHub. Initialization\"\n\n # read config from github_creds_file\n github_creds_file = configurationAttributes.get(\"github_creds_file\").getValue2()\n f = open(github_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n print creds\n except:\n print \"GitHub: Initialization. Failed to load creds from file:\", github_creds_file\n print \"Exception: \", sys.exc_info()[1]\n return False\n finally:\n f.close()\n\n self.op_server = str(creds[\"op_server\"])\n self.client_id = str(creds[\"client_id\"])\n self.client_secret = str(creds[\"client_secret\"])\n self.authorization_uri = str(creds[\"authorization_uri\"])\n self.token_uri = str(creds[\"token_uri\"])\n self.userinfo_uri = str(creds[\"userinfo_uri\"])\n self.redirect_uri = str(creds[\"redirect_uri\"])\n self.scope = str(creds[\"scope\"])\n self.title = str(creds[\"title\"])\n self.auto_redirect = creds[\"auto_redirect\"]\n\n print \"GitHub: Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"GitHub. Destroy\"\n print \"GitHub. Destroyed successfully\"\n return True\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"GitHub: authenticate called for step %s\" % str(step)\n identity = CdiUtil.bean(Identity)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n # Get Access Token\n tokenResponse = self.getToken(requestParameters)\n if tokenResponse is None:\n return False\n\n # Get User Info\n userInfo = self.getUserInfo(tokenResponse[\"access_token\"])\n foundUser = self.addUser(userInfo)\n if foundUser is None:\n return False\n\n identity.setWorkingParameter(\"gihub_username\", userInfo[\"login\"])\n identity.setWorkingParameter(\"gihub_access_token\", tokenResponse[\"access_token\"])\n\n print \"GitHub: Successfully authenticated\"\n\n loggedIn = authenticationService.authenticate(foundUser.getUserId())\n print \"GitHub: Authentication: %s\" % str(loggedIn)\n return loggedIn\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n print \"GitHub: prepareForStep called for step %s\" % str(step)\n if step == 1:\n # redirect to external OIDC server\n\n redirect_url_elements = [self.authorization_uri,\n \"?response_type=code id_token\",\n \"&client_id=\", self.client_id,\n \"&scope=\", self.scope,\n \"&redirect_uri=\", self.redirect_uri]\n redirect_url = \"\".join(redirect_url_elements)\n\n identity = CdiUtil.bean(Identity)\n\n if self.auto_redirect:\n facesService = CdiUtil.bean(FacesService)\n facesService.redirectToExternalURL(redirect_url)\n else:\n identity.setWorkingParameter(\"oidc_redirect_uri\", redirect_url)\n identity.setWorkingParameter(\"oidc_title\", self.title)\n\n return True\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n print \"GitHub: getExtraParametersForStep called for step %s\" % str(step)\n return Arrays.asList(\"gihub_username\", \"gihub_access_token\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n print \"GitHub: getCountAuthenticationSteps called\"\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n print \"GitHub: getPageForStep called for step %s\" % str(step)\n if(step == 1):\n return \"/auth/github/github.xhtml\"\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n print \"GitHub: getNextStep called for step %s\" % str(step)\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"GitHub: Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def generalLogin(self, identity, authenticationService):\n print \"GitHub: general login\"\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n return logged_in\n\n def getLocalPrimaryKey(self):\n entryManager = CdiUtil.bean(PersistenceEntryManager)\n config = GluuConfiguration()\n config = entryManager.find(config.getClass(), \"ou=configuration,o=jans\")\n # Pick (one) attribute where user id is stored (e.g. uid/mail)\n # primaryKey is the primary key on the backend AD / LDAP Server\n # localPrimaryKey is the primary key on Janssen. This attr value has been mapped with the primary key attr of the backend AD / LDAP when configuring cache refresh\n uid_attr = config.getIdpAuthn().get(0).getConfig().findValue(\"localPrimaryKey\").asText()\n print \"GitHub: init. uid attribute is '%s'\" % uid_attr\n return uid_attr\n\n def getToken(self, requestParameters):\n print \"GitHub: Get Access Token\"\n oidcCode = ServerUtil.getFirstValue(requestParameters, \"code\")\n httpService = CdiUtil.bean(HttpService)\n httpclient = httpService.getHttpsClient()\n tokenRequestData = urllib.urlencode({\n \"code\" : oidcCode,\n \"grant_type\" : \"authorization_code\",\n \"redirect_uri\": self.redirect_uri,\n \"client_id\": self.client_id,\n \"client_secret\": self.client_secret\n })\n\n tokenRequestHeaders = { \"Content-type\" : \"application/x-www-form-urlencoded\", \"Accept\" : \"application/json\" }\n\n resultResponse = httpService.executePost(httpclient, self.token_uri, None, tokenRequestHeaders, tokenRequestData)\n httpResponse = resultResponse.getHttpResponse()\n httpResponseStatusCode = httpResponse.getStatusLine().getStatusCode()\n print \"OIDC: token response status code: %s\" % httpResponseStatusCode\n if str(httpResponseStatusCode) != \"200\":\n print \"OIDC: Failed to get token, status code %s\" % httpResponseStatusCode\n return None\n\n responseBytes = httpService.getResponseContent(httpResponse)\n responseString = httpService.convertEntityToString(responseBytes)\n tokenResponse = json.loads(responseString)\n\n return tokenResponse\n\n def addUser(self, user):\n try:\n print \"GitHub: Adding user\"\n userId = user[\"login\"]\n userService = CdiUtil.bean(UserService)\n foundUser = userService.getUserByAttribute(\"jansExtUid\", \"github:\"+userId)\n\n if foundUser is None:\n print \"GitHub: User not found, adding new\"\n foundUser = User()\n foundUser.setAttribute(\"jansExtUid\", \"github:\"+userId)\n foundUser.setAttribute(\"jansEmail\", user[\"email\"])\n foundUser.setAttribute(\"mail\", user[\"email\"])\n foundUser.setAttribute(\"displayName\", \"github:\"+userId)\n foundUser.setAttribute(\"givenName\", \"github:\"+userId)\n foundUser.setAttribute(self.getLocalPrimaryKey(), userId)\n foundUser = userService.addUser(foundUser, True)\n\n return foundUser\n except Exception as e:\n print e\n print \"GitHub: Add user Exception: \", sys.exc_info()[1]\n return None\n\n def getUserInfo(self, accessToken):\n try:\n print \"GitHub: Get Userinfo\"\n httpService = CdiUtil.bean(HttpService)\n httpclient = httpService.getHttpsClient()\n tokenRequestHeaders = { \"Authorization\" : \"Bearer %s\" % accessToken, \"Accept\" : \"application/json\" }\n\n resultResponse = httpService.executeGet(httpclient, self.userinfo_uri, tokenRequestHeaders)\n httpResponse = resultResponse.getHttpResponse()\n httpResponseStatusCode = httpResponse.getStatusLine().getStatusCode()\n print \"GitHub: userinfo response status code: %s\" % httpResponseStatusCode\n if str(httpResponseStatusCode) != \"200\":\n print \"GitHub: Failed to get userinfo, status code %s\" % httpResponseStatusCode\n return None\n\n responseBytes = httpService.getResponseContent(httpResponse)\n responseString = httpService.convertEntityToString(responseBytes)\n userinfoResponse = json.loads(responseString)\n\n print userinfoResponse\n\n return userinfoResponse\n except Exception as e:\n print e\n return None\n", "enabled": false, "revision": 0, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "github", "modified": false, "configurationProperties": [ { "hide": false, "value2": "true", "value1": "hide" }, { "hide": false, "value2": "/etc/jans/conf/github.json", "value1": "github_creds_file" }, { "hide": false, "value2": "GitHub Login", "value1": "description" } ], "baseDn": "inum=E706-F8A8,ou=scripts,o=jans" } ], "start": 0, "totalEntriesCount": 39 } 24-11 09:33:42.360 INFO com.intuit.karate.Logger Logger.java:104- [print] { "internal": false, "level": 1, "programmingLanguage": "java", "description": "Java Custom Sample Script", "locationType": "ldap", "dn": "inum=0300-BA90,ou=scripts,o=jans", "inum": "0300-BA90", "script": "/* Copyright (c) 2022, Gluu\n Author: Yuriy Z\n */\n\nimport io.jans.model.SimpleCustomProperty;\nimport io.jans.model.custom.script.model.CustomScript;\nimport io.jans.model.custom.script.type.discovery.DiscoveryType;\nimport io.jans.service.custom.script.CustomScriptManager;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.json.JSONObject;\n\nimport java.util.Map;\n\npublic class Discovery implements DiscoveryType {\n\n private static final Logger log = LoggerFactory.getLogger(Discovery.class);\n private static final Logger scriptLogger = LoggerFactory.getLogger(CustomScriptManager.class);\n\n @Override\n public boolean init(Map configurationAttributes) {\n log.info(\"Init of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public boolean init(CustomScript customScript, Map configurationAttributes) {\n log.info(\"Init of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public boolean destroy(Map configurationAttributes) {\n log.info(\"Destroy of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public int getApiVersion() {\n log.info(\"getApiVersion Discovery Java custom script: 11\");\n return 11;\n }\n\n @Override\n public boolean modifyResponse(Object responseAsJsonObject, Object context) {\n scriptLogger.info(\"write to script logger\");\n JSONObject response = (JSONObject) responseAsJsonObject;\n response.accumulate(\"key_from_java\", \"value_from_script_on_java\");\n return true;\n }\n}\n", "enabled": true, "revision": 11, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" } ], "scriptType": "discovery", "name": "discovery_java_params", "modified": false, "baseDn": "inum=0300-BA90,ou=scripts,o=jans" } 24-11 09:33:42.368 INFO com.intuit.karate.Logger Logger.java:104- [print] Script inum = 0300-BA90 24-11 09:33:42.386 INFO com.intuit.karate.Logger Logger.java:104- [print] Script Type = discovery 24-11 09:33:42.393 INFO com.intuit.karate.Logger Logger.java:104- [print] Patching script -discovery-0300-BA90 24-11 09:33:42.413 INFO com.intuit.karate.Logger Logger.java:104- [print] request_body =[ {"op":"replace", "path": "/enabled", "value":true } ] 24-11 09:33:42.729 INFO com.intuit.karate.Logger Logger.java:104- [print] { "internal": false, "level": 1, "programmingLanguage": "java", "description": "Java Custom Sample Script", "locationType": "ldap", "dn": "inum=0300-BA90,ou=scripts,o=jans", "inum": "0300-BA90", "script": "/* Copyright (c) 2022, Gluu\n Author: Yuriy Z\n */\n\nimport io.jans.model.SimpleCustomProperty;\nimport io.jans.model.custom.script.model.CustomScript;\nimport io.jans.model.custom.script.type.discovery.DiscoveryType;\nimport io.jans.service.custom.script.CustomScriptManager;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.json.JSONObject;\n\nimport java.util.Map;\n\npublic class Discovery implements DiscoveryType {\n\n private static final Logger log = LoggerFactory.getLogger(Discovery.class);\n private static final Logger scriptLogger = LoggerFactory.getLogger(CustomScriptManager.class);\n\n @Override\n public boolean init(Map configurationAttributes) {\n log.info(\"Init of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public boolean init(CustomScript customScript, Map configurationAttributes) {\n log.info(\"Init of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public boolean destroy(Map configurationAttributes) {\n log.info(\"Destroy of Discovery Java custom script\");\n return true;\n }\n\n @Override\n public int getApiVersion() {\n log.info(\"getApiVersion Discovery Java custom script: 11\");\n return 11;\n }\n\n @Override\n public boolean modifyResponse(Object responseAsJsonObject, Object context) {\n scriptLogger.info(\"write to script logger\");\n JSONObject response = (JSONObject) responseAsJsonObject;\n response.accumulate(\"key_from_java\", \"value_from_script_on_java\");\n return true;\n }\n}\n", "enabled": true, "revision": 11, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value1": "location_path" } ], "scriptType": "discovery", "name": "discovery_java_params", "modified": false, "baseDn": "inum=0300-BA90,ou=scripts,o=jans" } 24-11 09:33:42.785 INFO com.intuit.karate.Runner Runner.java:264- <> feature 7 of 47: src/test/resources/feature/config/scripts/custom/generic/custom.feature --------------------------------------------------------- feature: src/test/resources/feature/config/scripts/custom/generic/custom.feature report: target/surefire-reports/src.test.resources.feature.config.scripts.custom.generic.custom.json scenarios: 6 | passed: 6 | failed: 0 | time: 2.4522 --------------------------------------------------------- 24-11 09:33:42.793 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:42.794 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:42.794 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:42.794 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:42.794 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:42.795 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:42.795 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:42.795 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:42.795 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:42.795 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:42.798 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:42.798 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:42.798 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:42.798 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:42.798 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:42.799 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:42.799 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:42.799 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:42.799 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:42.799 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:42.838 INFO com.intuit.karate.Logger Logger.java:104- [print] ONLY TOKEN BASED AUTHORIZATION IS SUPPORTED! 24-11 09:33:42.856 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:42.856 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:42.856 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:42.856 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:42.857 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:42.858 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:42.858 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:42.858 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:42.858 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:42.858 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:42.861 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:42.861 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:42.861 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:42.862 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:42.862 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:42.862 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:42.863 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:42.863 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:42.863 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:42.863 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:43.141 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 13, "entries": [ { "internal": false, "level": 50, "programmingLanguage": "python", "description": "Twilio SMS authentication module", "locationType": "ldap", "dn": "inum=09A0-93D6,ou=scripts,o=jans", "inum": "09A0-93D6", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Gasmyr Mougang\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nimport com.twilio.Twilio as Twilio\nimport com.twilio.rest.api.v2010.account.Message as Message\nimport com.twilio.type.PhoneNumber as PhoneNumber\nimport org.codehaus.jettison.json.JSONArray as JSONArray\n\n\nimport java\nimport random\nimport jarray\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.mobile_number = None\n self.identity = CdiUtil.bean(Identity)\n\n def init(self, customScript, configurationAttributes):\n print \"==============================================\"\n print \"===TWILIO SMS INITIALIZATION==================\"\n print \"==============================================\"\n self.ACCOUNT_SID = None\n self.AUTH_TOKEN = None\n self.FROM_NUMBER = None\n\n # Get Custom Properties\n try:\n self.ACCOUNT_SID = configurationAttributes.get(\"twilio_sid\").getValue2()\n except:\n print 'TwilioSMS, Missing required configuration attribute \"twilio_sid\"'\n\n try:\n self.AUTH_TOKEN = configurationAttributes.get(\"twilio_token\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"twilio_token\"'\n try:\n self.FROM_NUMBER = configurationAttributes.get(\"from_number\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"from_number\"'\n\n if None in (self.ACCOUNT_SID, self.AUTH_TOKEN, self.FROM_NUMBER):\n print \"twilio_sid, twilio_token, from_number is empty ... returning False\"\n return False\n\n print \"===TWILIO SMS INITIALIZATION DONE PROPERLY=====\" \n return True\n\n def destroy(self, configurationAttributes):\n print \"Twilio SMS. Destroy\"\n print \"Twilio SMS. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"==============================================\"\n print \"====TWILIO SMS AUTHENCATION===================\"\n print \"==============================================\"\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n sessionIdService = CdiUtil.bean(SessionIdService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n form_name = ServerUtil.getFirstValue(requestParameters, \"TwilioSmsloginForm\")\n\n print \"TwilioSMS. form_response_passcode: %s\" % str(form_passcode)\n\n if step == 1:\n print \"==============================================\"\n print \"=TWILIO SMS STEP 1 | Password Authentication==\"\n print \"==============================================\"\n credentials = self.identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print 'TwilioSMS, Error retrieving user %s from LDAP' % (user_name)\n return False\n\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n self.mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"mobile\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if self.mobile_number == None:\n print \"TwilioSMS, Error finding mobile number for user '%s'\" % user_name \n \n except:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print 'TwilioSMS, Error finding mobile number for \"%s\". Exception: %s` % (user_name, sys.exc_info()[1])`'\n return False\n\n # Generate Random six digit code and store it in array\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n sessionId.getSessionAttributes().put(\"code\", code)\n\n try:\n Twilio.init(self.ACCOUNT_SID, self.AUTH_TOKEN);\n message = Message.creator(PhoneNumber(self.mobile_number), PhoneNumber(self.FROM_NUMBER), str(code)).create();\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print 'TwilioSMs, Message Sid: %s' % (message.getSid())\n print 'TwilioSMs, User phone: %s' % (self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n sessionId.getSessionAttributes().put(\"mobile_number\", self.mobile_number)\n sessionId.getSessionAttributes().put(\"mobile\", self.mobile_number)\n sessionIdService.updateSessionId(sessionId)\n self.identity.setWorkingParameter(\"mobile_number\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\",self.mobile_number)\n self.identity.setWorkingParameter(\"mobile\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile\",self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"Number: %s\" % (self.identity.getWorkingParameter(\"mobile_number\"))\n print \"Mobile: %s\" % (self.identity.getWorkingParameter(\"mobile\"))\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"========================================\"\n print \"===TWILIO SMS FIRST STEP DONE PROPERLY==\"\n print \"========================================\"\n return True\n except Exception, ex:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n print \"TwilioSMS. Error sending message to Twilio\"\n print \"TwilioSMS. Unexpected error:\", ex\n\n return False\n elif step == 2:\n # Retrieve the session attribute\n print \"==============================================\"\n print \"=TWILIO SMS STEP 2 | Password Authentication==\"\n print \"==============================================\"\n code = session_attributes.get(\"code\")\n print '=======> Session code is \"%s\"' % str(code)\n sessionIdService = CdiUtil.bean(SessionIdService)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n code = sessionId.getSessionAttributes().get(\"code\")\n print '=======> Database code is \"%s\"' % str(code)\n self.identity.setSessionId(sessionId)\n print \"==============================================\"\n print \"TwilioSMS. Code: %s\" % str(code)\n print \"==============================================\"\n if code is None:\n print \"TwilioSMS. Failed to find previously sent code\"\n return False\n\n if form_passcode is None:\n print \"TwilioSMS. Passcode is empty\"\n return False\n\n if len(form_passcode) != 6:\n print \"TwilioSMS. Passcode from response is not 6 digits: %s\" % form_passcode\n return False\n\n if form_passcode == code:\n print \"TiwlioSMS, SUCCESS! User entered the same code!\"\n print \"========================================\"\n print \"===TWILIO SMS SECOND STEP DONE PROPERLY\"\n print \"========================================\"\n return True\n\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n print \"TwilioSMS. FAIL! User entered the wrong code! %s != %s\" % (form_passcode, code)\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Incorrect Twilio code, please try again.\")\n print \"================================================\"\n print \"===TWILIO SMS SECOND STEP FAILED: INCORRECT CODE\"\n print \"================================================\"\n return False\n\n print \"TwilioSMS. ERROR: step param not found or != (1|2)\"\n\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"TwilioSMS. Prepare for Step 1\"\n return True\n elif step == 2:\n print \"TwilioSMS. Prepare for Step 2\"\n return True\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "twilio_sms", "modified": false, "configurationProperties": [ { "hide": false, "value1": "twilio_sid", "description": "Twilio account SID" }, { "hide": false, "value1": "twilio_token", "description": "Twilio API token" }, { "hide": false, "value1": "from_number", "description": "Twilio phone number with SMS capabilities" } ], "baseDn": "inum=09A0-93D6,ou=scripts,o=jans" }, { "internal": false, "level": 45, "programmingLanguage": "python", "description": "SMPP SMS authentication module", "locationType": "ldap", "dn": "inum=09A0-93D7,ou=scripts,o=jans", "inum": "09A0-93D7", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n# Copyright (c) 2019, Tele2\n\n# Author: Jose Gonzalez\n# Author: Gasmyr Mougang\n# Author: Stefan Andersson\n\nfrom java.util import Arrays, Date\nfrom java.io import IOException\nfrom java.lang import Enum\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import ArrayHelper\nfrom io.jans.util import StringHelper\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nfrom org.jsmpp import InvalidResponseException, PDUException\nfrom org.jsmpp.bean import Alphabet, BindType, ESMClass, GeneralDataCoding, MessageClass, NumberingPlanIndicator, RegisteredDelivery, SMSCDeliveryReceipt, TypeOfNumber\nfrom org.jsmpp.extra import NegativeResponseException, ResponseTimeoutException\nfrom org.jsmpp.session import BindParameter, SMPPSession\nfrom org.jsmpp.util import AbsoluteTimeFormatter, TimeFormatter\nimport random\n\n\nclass SmppAttributeError(Exception):\n pass\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.identity = CdiUtil.bean(Identity)\n\n def get_and_parse_smpp_config(self, config, attribute, _type = None, convert = False, optional = False, default_desc = None):\n try:\n value = config.get(attribute).getValue2()\n except:\n if default_desc:\n default_desc = \" using default '{}'\".format(default_desc)\n else:\n default_desc = \"\"\n\n if optional:\n raise SmppAttributeError(\"SMPP missing optional configuration attribute '{}'{}\".format(attribute, default_desc))\n else:\n raise SmppAttributeError(\"SMPP missing required configuration attribute '{}'\".format(attribute))\n\n if _type and issubclass(_type, Enum):\n try:\n return getattr(_type, value)\n except AttributeError:\n raise SmppAttributeError(\"SMPP could not find attribute '{}' in {}\".format(attribute, _type))\n\n if convert:\n try:\n value = int(value)\n except AttributeError:\n try:\n value = int(value, 16)\n except AttributeError:\n raise SmppAttributeError(\"SMPP could not parse value '{}' of attribute '{}'\".format(value, attribute))\n\n return value\n\n def init(self, customScript, configurationAttributes):\n print(\"SMPP Initialization\")\n\n self.TIME_FORMATTER = AbsoluteTimeFormatter()\n\n self.SMPP_SERVER = None\n self.SMPP_PORT = None\n\n self.SYSTEM_ID = None\n self.PASSWORD = None\n\n # Setup some good defaults for TON, NPI and source (from) address\n # TON (Type of Number), NPI (Number Plan Indicator)\n self.SRC_ADDR_TON = TypeOfNumber.ALPHANUMERIC # Alphanumeric\n self.SRC_ADDR_NPI = NumberingPlanIndicator.ISDN # ISDN (E163/E164)\n self.SRC_ADDR = \"Janssen OTP\"\n\n # Don't touch these unless you know what your doing, we don't handle number reformatting for\n # any other type than international.\n self.DST_ADDR_TON = TypeOfNumber.INTERNATIONAL # International\n self.DST_ADDR_NPI = NumberingPlanIndicator.ISDN # ISDN (E163/E164)\n\n # Priority flag and data_coding bits\n self.PRIORITY_FLAG = 3 # Very Urgent (ANSI-136), Emergency (IS-95)\n self.DATA_CODING_ALPHABET = Alphabet.ALPHA_DEFAULT # SMS default alphabet\n self.DATA_CODING_MESSAGE_CLASS = MessageClass.CLASS1 # EM (Mobile Equipment (mobile memory), normal message\n\n # Required server settings\n try:\n self.SMPP_SERVER = self.get_and_parse_smpp_config(configurationAttributes, \"smpp_server\")\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SMPP_PORT = self.get_and_parse_smpp_config(configurationAttributes, \"smpp_port\", convert = True)\n except SmppAttributeError as e:\n print(e)\n\n if None in (self.SMPP_SERVER, self.SMPP_PORT):\n print(\"SMPP smpp_server and smpp_port is empty, will not enable SMPP service\")\n return False\n\n # Optional system_id and password for bind auth\n try:\n self.SYSTEM_ID = self.get_and_parse_smpp_config(configurationAttributes, \"system_id\", optional = True)\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.PASSWORD = self.get_and_parse_smpp_config(configurationAttributes, \"password\", optional = True)\n except SmppAttributeError as e:\n print(e)\n\n if None in (self.SYSTEM_ID, self.PASSWORD):\n print(\"SMPP Authentication disabled\")\n\n # From number and to number settings\n try:\n self.SRC_ADDR_TON = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr_ton\",\n _type = TypeOfNumber,\n optional = True,\n default_desc = self.SRC_ADDR_TON\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SRC_ADDR_NPI = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr_npi\",\n _type = NumberingPlanIndicator,\n optional = True,\n default_desc = self.SRC_ADDR_NPI\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SRC_ADDR = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr\",\n optional = True,\n default_desc = self.SRC_ADDR\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DST_ADDR_TON = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"dest_addr_ton\",\n _type = TypeOfNumber,\n optional = True,\n default_desc = self.DST_ADDR_TON\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DST_ADDR_NPI = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"dest_addr_npi\",\n _type = NumberingPlanIndicator,\n optional = True,\n default_desc = self.DST_ADDR_NPI\n )\n except SmppAttributeError as e:\n print(e)\n\n # Priority flag and data coding, don't touch these unless you know what your doing...\n try:\n self.PRIORITY_FLAG = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"priority_flag\",\n convert = True,\n optional = True,\n default_desc = \"3 (Very Urgent, Emergency)\"\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DATA_CODING_ALPHABET = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"data_coding_alphabet\",\n _type = Alphabet,\n optional = True,\n default_desc = self.DATA_CODING_ALPHABET\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DATA_CODING_MESSAGE_CLASS = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"data_coding_alphabet\",\n _type = MessageClass,\n optional = True,\n default_desc = self.DATA_CODING_MESSAGE_CLASS\n )\n except SmppAttributeError as e:\n print(e)\n\n print(\"SMPP Initialized successfully\")\n return True\n\n def destroy(self, configurationAttributes):\n print(\"SMPP Destroy\")\n print(\"SMPP Destroyed successfully\")\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n\n print(\"SMPP form_response_passcode: {}\".format(str(form_passcode)))\n\n if step == 1:\n print(\"SMPP Step 1 Password Authentication\")\n credentials = self.identity.getCredentials()\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print(\"SMPP Error retrieving user {} from LDAP\".format(user_name))\n return False\n\n mobile_number = None\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if not mobile_number:\n mobile_number = foundUser.getAttribute(\"mobile\")\n if not mobile_number:\n mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if not mobile_number:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print(\"SMPP Error finding mobile number for user '{}'\".format(user_name))\n return False\n except Exception as e:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print(\"SMPP Error finding mobile number for {}: {}\".format(user_name, e))\n return False\n\n # Generate Random six digit code\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n\n self.identity.setWorkingParameter(\"mobile_number\", mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\", mobile_number)\n if not self.sendMessage(mobile_number, str(code)):\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n return False\n\n return True\n elif step == 2:\n # Retrieve the session attribute\n print(\"SMPP Step 2 SMS/OTP Authentication\")\n code = session_attributes.get(\"code\")\n print(\"SMPP Code: {}\".format(str(code)))\n\n if code is None:\n print(\"SMPP Failed to find previously sent code\")\n return False\n\n if form_passcode is None:\n print(\"SMPP Passcode is empty\")\n return False\n\n if len(form_passcode) != 6:\n print(\"SMPP Passcode from response is not 6 digits: {}\".format(form_passcode))\n return False\n\n if form_passcode == code:\n print(\"SMPP SUCCESS! User entered the same code!\")\n return True\n\n print(\"SMPP failed, user entered the wrong code! {} != {}\".format(form_passcode, code))\n facesMessages.add(facesMessage.SEVERITY_ERROR, \"Incorrect SMS code, please try again.\")\n return False\n\n print(\"SMPP ERROR: step param not found or != (1|2)\")\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print(\"SMPP Prepare for Step 1\")\n return True\n elif step == 2:\n print(\"SMPP Prepare for Step 2\")\n return True\n\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def sendMessage(self, number, code):\n status = False\n session = SMPPSession()\n session.setTransactionTimer(10000)\n\n # We only handle international destination number reformatting.\n # All others may vary by configuration decisions taken on SMPP\n # server side which we have no clue about.\n if self.DST_ADDR_TON == TypeOfNumber.INTERNATIONAL and number.startswith(\"+\"):\n number = number[1:]\n\n try:\n print(\"SMPP Connecting\")\n reference_id = session.connectAndBind(\n self.SMPP_SERVER,\n self.SMPP_PORT,\n BindParameter(\n BindType.BIND_TX,\n self.SYSTEM_ID,\n self.PASSWORD,\n None,\n self.SRC_ADDR_TON,\n self.SRC_ADDR_NPI,\n None\n )\n )\n print(\"SMPP Connected to server with system id {}\".format(reference_id))\n\n try:\n message_id = session.submitShortMessage(\n \"CMT\",\n self.SRC_ADDR_TON,\n self.SRC_ADDR_NPI,\n self.SRC_ADDR,\n self.DST_ADDR_TON,\n self.DST_ADDR_NPI,\n number,\n ESMClass(),\n 0,\n self.PRIORITY_FLAG,\n self.TIME_FORMATTER.format(Date()),\n None,\n RegisteredDelivery(SMSCDeliveryReceipt.DEFAULT),\n 0,\n GeneralDataCoding(\n self.DATA_CODING_ALPHABET,\n self.DATA_CODING_MESSAGE_CLASS,\n False\n ),\n 0,\n code\n )\n print(\"SMPP Message '{}' sent to #{} with message id {}\".format(code, number, message_id))\n status = True\n except PDUException as e:\n print(\"SMPP Invalid PDU parameter: {}\".format(e))\n except ResponseTimeoutException as e:\n print(\"SMPP Response timeout: {}\".format(e))\n except InvalidResponseException as e:\n print(\"SMPP Receive invalid response: {}\".format(e))\n except NegativeResponseException as e:\n print(\"SMPP Receive negative response: {}\".format(e))\n except IOException as e:\n print(\"SMPP IO error occured: {}\".format(e))\n finally:\n session.unbindAndClose()\n except IOException as e:\n print(\"SMPP Failed connect and bind to host: {}\".format(e))\n\n return status\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "smpp", "modified": false, "configurationProperties": [ { "hide": false, "value1": "smpp_server", "description": "IP or FQDN of SMPP server" }, { "hide": false, "value1": "smpp_port", "description": "TCP port of the SMPP server" }, { "hide": false, "value1": "system_id", "description": "Use if SMPP server requires authentication" }, { "hide": false, "value1": "password", "description": "Use if SMPP server requires authentication" }, { "hide": false, "value1": "source_addr_ton", "description": "Type of number, eg ALPHANUMERIC, INTERNATIONAL" }, { "hide": false, "value1": "source_addr", "description": "From number/name" } ], "baseDn": "inum=09A0-93D7,ou=scripts,o=jans" }, { "internal": false, "level": 30, "programmingLanguage": "python", "description": "Cert authentication module", "locationType": "ldap", "dn": "inum=2124-0CF1,ou=scripts,o=jans", "inum": "2124-0CF1", "script": "#\n# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom jakarta.faces.context import FacesContext\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.as.common.service.common import EncryptionService\nfrom java.util import Arrays\nfrom io.jans.as.common.cert.fingerprint import FingerprintHelper\nfrom io.jans.as.common.cert.validation import GenericCertificateVerifier\nfrom io.jans.as.common.cert.validation import PathCertificateVerifier\nfrom io.jans.as.common.cert.validation import OCSPCertificateVerifier\nfrom io.jans.as.common.cert.validation import CRLCertificateVerifier\nfrom io.jans.as.common.cert.validation.model import ValidationStatus\nfrom io.jans.as.server.util import CertUtil\nfrom io.jans.as.model.util import CertUtils\nfrom io.jans.as.server.service.net import HttpService\nfrom org.apache.http.params import CoreConnectionPNames\n\nimport sys\nimport base64\nimport urllib\n\nimport java\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Cert. Initialization\"\n\n if not (configurationAttributes.containsKey(\"chain_cert_file_path\")):\n print \"Cert. Initialization. Property chain_cert_file_path is mandatory\"\n return False\n\n if not (configurationAttributes.containsKey(\"map_user_cert\")):\n print \"Cert. Initialization. Property map_user_cert is mandatory\"\n return False\n\n chain_cert_file_path = configurationAttributes.get(\"chain_cert_file_path\").getValue2()\n\n self.chain_certs = CertUtil.loadX509CertificateFromFile(chain_cert_file_path)\n if self.chain_certs == None:\n print \"Cert. Initialization. Failed to load chain certificates from '%s'\" % chain_cert_file_path\n return False\n\n print \"Cert. Initialization. Loaded '%d' chain certificates\" % self.chain_certs.size()\n \n crl_max_response_size = 5 * 1024 * 1024 # 10Mb\n if configurationAttributes.containsKey(\"crl_max_response_size\"):\n crl_max_response_size = StringHelper.toInteger(configurationAttributes.get(\"crl_max_response_size\").getValue2(), crl_max_response_size)\n print \"Cert. Initialization. CRL max response size is '%d'\" % crl_max_response_size\n\n # Define array to order methods correctly\n self.validator_types = [ 'generic', 'path', 'ocsp', 'crl']\n self.validators = { 'generic' : [GenericCertificateVerifier(), False],\n 'path' : [PathCertificateVerifier(False), False],\n 'ocsp' : [OCSPCertificateVerifier(), False],\n 'crl' : [CRLCertificateVerifier(crl_max_response_size), False] }\n\n for type in self.validator_types:\n validator_param_name = \"use_%s_validator\" % type\n if configurationAttributes.containsKey(validator_param_name):\n validator_status = StringHelper.toBoolean(configurationAttributes.get(validator_param_name).getValue2(), False)\n self.validators[type][1] = validator_status\n\n print \"Cert. Initialization. Validation method '%s' status: '%s'\" % (type, self.validators[type][1])\n\n self.map_user_cert = StringHelper.toBoolean(configurationAttributes.get(\"map_user_cert\").getValue2(), False)\n print \"Cert. Initialization. map_user_cert: '%s'\" % self.map_user_cert\n\n self.enabled_recaptcha = self.initRecaptcha(configurationAttributes)\n print \"Cert. Initialization. enabled_recaptcha: '%s'\" % self.enabled_recaptcha\n\n print \"Cert. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Cert. Destroy\"\n\n for type in self.validator_types:\n self.validators[type][0].destroy()\n\n print \"Cert. Destroyed successfully\"\n\n return True\n\n def getApiVersion(self):\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n print \"Cert. Authenticate for step 1\"\n login_button = ServerUtil.getFirstValue(requestParameters, \"loginForm:loginButton\")\n if StringHelper.isEmpty(login_button):\n print \"Cert. Authenticate for step 1. Form were submitted incorrectly\"\n return False\n if self.enabled_recaptcha:\n print \"Cert. Authenticate for step 1. Validating recaptcha response\"\n recaptcha_response = ServerUtil.getFirstValue(requestParameters, \"g-recaptcha-response\")\n\n recaptcha_result = self.validateRecaptcha(recaptcha_response)\n print \"Cert. Authenticate for step 1. recaptcha_result: '%s'\" % recaptcha_result\n \n return recaptcha_result\n\n return True\n elif step == 2:\n print \"Cert. Authenticate for step 2\"\n\n # Validate if user selected certificate\n cert_x509 = self.getSessionAttribute(\"cert_x509\")\n if cert_x509 == None:\n print \"Cert. Authenticate for step 2. User not selected any certs\"\n identity.setWorkingParameter(\"cert_selected\", False)\n \n # Return True to inform user how to reset workflow\n return True\n else:\n identity.setWorkingParameter(\"cert_selected\", True)\n x509Certificate = self.certFromString(cert_x509)\n\n subjectX500Principal = x509Certificate.getSubjectX500Principal()\n print \"Cert. Authenticate for step 2. User selected certificate with DN '%s'\" % subjectX500Principal\n \n # Validate certificates which user selected\n valid = self.validateCertificate(x509Certificate)\n if not valid:\n print \"Cert. Authenticate for step 2. Certificate DN '%s' is not valid\" % subjectX500Principal\n identity.setWorkingParameter(\"cert_valid\", False)\n \n # Return True to inform user how to reset workflow\n return True\n\n identity.setWorkingParameter(\"cert_valid\", True)\n \n # Calculate certificate fingerprint\n x509CertificateFingerprint = self.calculateCertificateFingerprint(x509Certificate)\n identity.setWorkingParameter(\"cert_x509_fingerprint\", x509CertificateFingerprint)\n print \"Cert. Authenticate for step 2. Fingerprint is '%s' of certificate with DN '%s'\" % (x509CertificateFingerprint, subjectX500Principal)\n \n # Attempt to find user by certificate fingerprint\n cert_user_external_uid = \"cert:%s\" % x509CertificateFingerprint\n print \"Cert. Authenticate for step 2. Attempting to find user by jansExtUid attribute value %s\" % cert_user_external_uid\n\n find_user_by_external_uid = userService.getUserByAttribute(\"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n print \"Cert. Authenticate for step 2. Failed to find user\"\n \n if self.map_user_cert:\n print \"Cert. Authenticate for step 2. Storing cert_user_external_uid for step 3\"\n identity.setWorkingParameter(\"cert_user_external_uid\", cert_user_external_uid)\n return True\n else:\n print \"Cert. Authenticate for step 2. Mapping cert to user account is not allowed\"\n identity.setWorkingParameter(\"cert_count_login_steps\", 2)\n return False\n\n foundUserName = find_user_by_external_uid.getUserId()\n print \"Cert. Authenticate for step 2. foundUserName: \" + foundUserName\n\n logged_in = False\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(foundUserName)\n \n print \"Cert. Authenticate for step 2. Setting count steps to 2\"\n identity.setWorkingParameter(\"cert_count_login_steps\", 2)\n\n return logged_in\n elif step == 3:\n print \"Cert. Authenticate for step 3\"\n\n cert_user_external_uid = self.getSessionAttribute(\"cert_user_external_uid\")\n if cert_user_external_uid == None:\n print \"Cert. Authenticate for step 3. cert_user_external_uid is empty\"\n return False\n\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return False\n\n # Double check just to make sure. We did checking in previous step\n # Check if there is user which has cert_user_external_uid\n # Avoid mapping user cert to more than one IDP account\n find_user_by_external_uid = userService.getUserByAttribute(\"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n # Add cert_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n print \"Cert. Authenticate for step 3. Failed to update current user\"\n return False\n\n return True\n \n return True\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n print \"Cert. Prepare for step %d\" % step\n identity = CdiUtil.bean(Identity)\n \n if step == 1:\n if self.enabled_recaptcha:\n identity.setWorkingParameter(\"recaptcha_site_key\", self.recaptcha_creds['site_key'])\n elif step == 2:\n # Store certificate in session\n facesContext = CdiUtil.bean(FacesContext)\n externalContext = facesContext.getExternalContext()\n request = externalContext.getRequest()\n\n # Try to get certificate from header X-ClientCert\n clientCertificate = externalContext.getRequestHeaderMap().get(\"X-ClientCert\")\n if clientCertificate != None:\n x509Certificate = self.certFromPemString(clientCertificate)\n identity.setWorkingParameter(\"cert_x509\", self.certToString(x509Certificate))\n print \"Cert. Prepare for step 2. Storing user certificate obtained from 'X-ClientCert' header\"\n return True\n\n # Try to get certificate from attribute jakarta.servlet.request.X509Certificate\n x509Certificates = request.getAttribute('jakarta.servlet.request.X509Certificate')\n if (x509Certificates != None) and (len(x509Certificates) > 0):\n identity.setWorkingParameter(\"cert_x509\", self.certToString(x509Certificates[0]))\n print \"Cert. Prepare for step 2. Storing user certificate obtained from 'jakarta.servlet.request.X509Certificate' attribute\"\n return True\n\n if step < 4:\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"cert_selected\", \"cert_valid\", \"cert_x509\", \"cert_x509_fingerprint\", \"cert_count_login_steps\", \"cert_user_external_uid\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n cert_count_login_steps = self.getSessionAttribute(\"cert_count_login_steps\")\n if cert_count_login_steps != None:\n return cert_count_login_steps\n else:\n return 3\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n return \"/auth/cert/login.xhtml\"\n if step == 2:\n return \"/auth/cert/cert-login.xhtml\"\n elif step == 3:\n cert_selected = self.getSessionAttribute(\"cert_selected\")\n if True != cert_selected:\n return \"/auth/cert/cert-not-selected.xhtml\"\n\n cert_valid = self.getSessionAttribute(\"cert_valid\")\n if True != cert_valid:\n return \"/auth/cert/cert-invalid.xhtml\"\n \n return \"/login.xhtml\"\n\n return \"\"\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def processBasicAuthentication(self, credentials):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if (find_user_by_uid == None):\n print \"Cert. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def getSessionAttribute(self, attribute_name):\n identity = CdiUtil.bean(Identity)\n\n # Try to get attribute value from Seam event context\n if identity.isSetWorkingParameter(attribute_name):\n return identity.getWorkingParameter(attribute_name)\n \n # Try to get attribute from persistent session\n session_id = identity.getSessionId()\n if session_id == None:\n return None\n\n session_attributes = session_id.getSessionAttributes()\n if session_attributes == None:\n return None\n\n if session_attributes.containsKey(attribute_name):\n return session_attributes.get(attribute_name)\n\n return None\n\n def calculateCertificateFingerprint(self, x509Certificate):\n print \"Cert. Calculate fingerprint for certificate DN '%s'\" % x509Certificate.getSubjectX500Principal()\n \n publicKey = x509Certificate.getPublicKey()\n \n # Use oxAuth implementation\n fingerprint = FingerprintHelper.getPublicKeySshFingerprint(publicKey)\n \n return fingerprint \n\n def validateCertificate(self, x509Certificate):\n subjectX500Principal = x509Certificate.getSubjectX500Principal()\n\n print \"Cert. Validating certificate with DN '%s'\" % subjectX500Principal\n \n validation_date = java.util.Date()\n\n for type in self.validator_types:\n if self.validators[type][1]:\n result = self.validators[type][0].validate(x509Certificate, self.chain_certs, validation_date)\n print \"Cert. Validate certificate: '%s'. Validation method '%s' result: '%s'\" % (subjectX500Principal, type, result)\n \n if (result.getValidity() != ValidationStatus.CertificateValidity.VALID):\n print \"Cert. Certificate: '%s' is invalid\" % subjectX500Principal\n return False\n \n return True\n\n def certToString(self, x509Certificate):\n if x509Certificate == None:\n return None\n return base64.b64encode(x509Certificate.getEncoded())\n\n def certFromString(self, x509CertificateEncoded):\n x509CertificateDecoded = base64.b64decode(x509CertificateEncoded)\n return CertUtils.x509CertificateFromBytes(x509CertificateDecoded)\n\n def certFromPemString(self, pemCertificate):\n x509CertificateEncoded = pemCertificate.replace(\"-----BEGIN CERTIFICATE-----\", \"\").replace(\"-----END CERTIFICATE-----\", \"\").strip()\n return self.certFromString(x509CertificateEncoded)\n\n def initRecaptcha(self, configurationAttributes):\n print \"Cert. Initialize recaptcha\"\n if not configurationAttributes.containsKey(\"credentials_file\"):\n return False\n\n cert_creds_file = configurationAttributes.get(\"credentials_file\").getValue2()\n\n # Load credentials from file\n f = open(cert_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n except:\n print \"Cert. Initialize recaptcha. Failed to load credentials from file: %s\" % cert_creds_file\n return False\n finally:\n f.close()\n \n try:\n recaptcha_creds = creds[\"recaptcha\"]\n except:\n print \"Cert. Initialize recaptcha. Invalid credentials file '%s' format:\" % cert_creds_file\n return False\n \n self.recaptcha_creds = None\n if recaptcha_creds[\"enabled\"]:\n print \"Cert. Initialize recaptcha. Recaptcha is enabled\"\n\n encryptionService = CdiUtil.bean(EncryptionService)\n\n site_key = recaptcha_creds[\"site_key\"]\n secret_key = recaptcha_creds[\"secret_key\"]\n\n try:\n site_key = encryptionService.decrypt(site_key)\n except:\n # Ignore exception. Value is not encrypted\n print \"Cert. Initialize recaptcha. Assuming that 'site_key' in not encrypted\"\n\n try:\n secret_key = encryptionService.decrypt(secret_key)\n except:\n # Ignore exception. Value is not encrypted\n print \"Cert. Initialize recaptcha. Assuming that 'secret_key' in not encrypted\"\n\n \n self.recaptcha_creds = { 'site_key' : site_key, \"secret_key\" : secret_key }\n print \"Cert. Initialize recaptcha. Recaptcha is configured correctly\"\n\n return True\n else:\n print \"Cert. Initialize recaptcha. Recaptcha is disabled\"\n\n return False\n\n def validateRecaptcha(self, recaptcha_response):\n print \"Cert. Validate recaptcha response\"\n\n facesContext = CdiUtil.bean(FacesContext)\n request = facesContext.getExternalContext().getRequest()\n\n remoteip = ServerUtil.getIpAddress(request)\n print \"Cert. Validate recaptcha response. remoteip: '%s'\" % remoteip\n\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n http_client_params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15 * 1000)\n \n recaptcha_validation_url = \"https://www.google.com/recaptcha/api/siteverify\"\n recaptcha_validation_request = urllib.urlencode({ \"secret\" : self.recaptcha_creds['secret_key'], \"response\" : recaptcha_response, \"remoteip\" : remoteip })\n recaptcha_validation_headers = { \"Content-type\" : \"application/x-www-form-urlencoded\", \"Accept\" : \"application/json\" }\n\n try:\n http_service_response = httpService.executePost(http_client, recaptcha_validation_url, None, recaptcha_validation_headers, recaptcha_validation_request)\n http_response = http_service_response.getHttpResponse()\n except:\n print \"Cert. Validate recaptcha response. Exception: \", sys.exc_info()[1]\n return False\n\n try:\n if not httpService.isResponseStastusCodeOk(http_response):\n print \"Cert. Validate recaptcha response. Get invalid response from validation server: \", str(http_response.getStatusLine().getStatusCode())\n httpService.consume(http_response)\n return False\n \n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes)\n httpService.consume(http_response)\n finally:\n http_service_response.closeConnection()\n\n if response_string == None:\n print \"Cert. Validate recaptcha response. Get empty response from validation server\"\n return False\n \n response = json.loads(response_string)\n \n return response[\"success\"]\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "cert", "modified": false, "configurationProperties": [ { "hide": false, "value2": "/etc/certs/chain_cert.pem", "value1": "chain_cert_file_path" }, { "hide": false, "value2": "/etc/certs/cert_creds.json", "value1": "credentials_file" }, { "hide": false, "value2": "true", "value1": "map_user_cert" }, { "hide": false, "value2": "true", "value1": "use_generic_validator" }, { "hide": false, "value2": "true", "value1": "use_path_validator" }, { "hide": false, "value2": "false", "value1": "use_ocsp_validator" }, { "hide": false, "value2": "false", "value1": "use_crl_validator" }, { "hide": false, "value2": "10485760", "value1": "crl_max_response_size" } ], "baseDn": "inum=2124-0CF1,ou=scripts,o=jans" }, { "internal": false, "level": 40, "programmingLanguage": "python", "description": "OTP Validation of passwords using Yubicloud authentication module", "locationType": "ldap", "dn": "inum=24FD-B96E,ou=scripts,o=jans", "inum": "24FD-B96E", "script": "# Janssen Project software is available under the Apache License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan, Arunmozhi\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper\n\nimport java\n\nimport urllib2\nimport urllib\nimport uuid\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Yubicloud. Initialization\"\n\n self.api_server = configurationAttributes.get(\"yubicloud_uri\").getValue2()\n self.api_key = configurationAttributes.get(\"yubicloud_api_key\").getValue2()\n self.client_id = configurationAttributes.get(\"yubicloud_id\").getValue2()\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Yubicloud. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Yubicloud. Authenticate for step 1\"\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n username = credentials.getUsername()\n otp = credentials.getPassword()\n\n # Validate otp length\n if len(otp) < 32 or len(otp) > 48:\n print \"Yubicloud. Invalid OTP length\"\n return False\n\n user_service = CdiUtil.bean(UserService)\n user = user_service.getUser(username)\n\n public_key = user.getAttribute('yubikeyId')\n\n # Match the user with the yubikey\n if public_key not in otp:\n print \"Yubicloud. Public Key not matching OTP\"\n return False\n\n data = \"\"\n try:\n nonce = str(uuid.uuid4()).replace(\"-\", \"\")\n params = urllib.urlencode({\"id\": self.client_id, \"otp\": otp, \"nonce\": nonce})\n url = \"https://\" + self.api_server + \"/wsapi/2.0/verify/?\" + params\n f = urllib2.urlopen(url)\n data = f.read()\n except Exception as e:\n print \"Yubicloud. Exception \", e\n\n if 'status=OK' in data:\n user_service.authenticate(username)\n print \"Yubicloud. Authentication Successful\"\n return True\n\n print \"Yubicloud. End of Step 1. Returning False.\"\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Yubicloud. Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "yubicloud", "modified": false, "configurationProperties": [ { "hide": false, "value2": "api.yubico.com", "value1": "yubicloud_uri" }, { "hide": false, "value1": "yubicloud_api_key" }, { "hide": false, "value1": "yubicloud_id" } ], "baseDn": "inum=24FD-B96E,ou=scripts,o=jans" }, { "internal": false, "level": 20, "programmingLanguage": "python", "description": "Basic (with user locking) authentication module", "locationType": "ldap", "dn": "inum=4BBE-C6A8,ou=scripts,o=jans", "inum": "4BBE-C6A8", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n# Author: Gasmyr Mougang\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.service import CacheService\nfrom io.jans.util import StringHelper\nfrom io.jans.orm.exception import AuthenticationException\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\nfrom java.time import LocalDateTime, Duration\nfrom java.time.format import DateTimeFormatter\n\nimport java\nimport datetime\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Basic (lock account). Initialization\"\n\n self.invalidLoginCountAttribute = \"jansCountInvalidLogin\"\n if configurationAttributes.containsKey(\"invalid_login_count_attribute\"):\n self.invalidLoginCountAttribute = configurationAttributes.get(\"invalid_login_count_attribute\").getValue2()\n else:\n print \"Basic (lock account). Initialization. Using default attribute\"\n\n self.maximumInvalidLoginAttemps = 3\n if configurationAttributes.containsKey(\"maximum_invalid_login_attemps\"):\n self.maximumInvalidLoginAttemps = StringHelper.toInteger(configurationAttributes.get(\"maximum_invalid_login_attemps\").getValue2())\n else:\n print \"Basic (lock account). Initialization. Using default number attempts\"\n\n self.lockExpirationTime = 180\n if configurationAttributes.containsKey(\"lock_expiration_time\"):\n self.lockExpirationTime = StringHelper.toInteger(configurationAttributes.get(\"lock_expiration_time\").getValue2())\n else:\n print \"Basic (lock account). Initialization. Using default lock expiration time\"\n\n\n print \"Basic (lock account). Initialized successfully. invalid_login_count_attribute: '%s', maximum_invalid_login_attemps: '%s', lock_expiration_time: '%s'\" % (self.invalidLoginCountAttribute, self.maximumInvalidLoginAttemps, self.lockExpirationTime)\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Basic (lock account). Destroy\"\n print \"Basic (lock account). Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n print \"Basic (lock account). Authenticate for step 1\"\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n cacheService = CdiUtil.bean(CacheService)\n userService = CdiUtil.bean(UserService)\n\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n try:\n logged_in = authenticationService.authenticate(user_name, user_password)\n except AuthenticationException:\n print \"Basic (lock account). Authenticate. Failed to authenticate user '%s'\" % user_name\n\n if logged_in:\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(0))\n else:\n countInvalidLoginArributeValue = self.getUserAttributeValue(user_name, self.invalidLoginCountAttribute)\n userSatus = self.getUserAttributeValue(user_name, \"jansStatus\")\n print \"Current user '%s' status is '%s'\" % ( user_name, userSatus )\n\n countInvalidLogin = StringHelper.toInteger(countInvalidLoginArributeValue, 0)\n\n if countInvalidLogin < self.maximumInvalidLoginAttemps:\n countInvalidLogin = countInvalidLogin + 1\n remainingAttempts = self.maximumInvalidLoginAttemps - countInvalidLogin\n\n print \"Remaining login count attempts '%s' for user '%s'\" % ( remainingAttempts, user_name )\n\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(countInvalidLogin))\n if remainingAttempts > 0 and userSatus == \"active\":\n facesMessages.add(FacesMessage.SEVERITY_INFO, StringHelper.toString(remainingAttempts)+\" more attempt(s) before account is LOCKED!\")\n\n if (countInvalidLogin >= self.maximumInvalidLoginAttemps) and ((userSatus == None) or (userSatus == \"active\")):\n print \"Basic (lock account). Locking '%s' for '%s' seconds\" % ( user_name, self.lockExpirationTime)\n self.lockUser(user_name)\n return False\n\n if (countInvalidLogin >= self.maximumInvalidLoginAttemps) and userSatus == \"inactive\":\n print \"Basic (lock account). User '%s' is locked. Checking if we can unlock him\" % user_name\n \n unlock_and_authenticate = False\n\n object_from_store = cacheService.get(None, \"lock_user_\" + user_name)\n if object_from_store == None:\n # Object in cache was expired. We need to unlock user\n print \"Basic (lock account). User locking details for user '%s' not exists\" % user_name\n unlock_and_authenticate = True\n else:\n # Analyze object from cache\n user_lock_details = json.loads(object_from_store)\n\n user_lock_details_locked = user_lock_details['locked']\n user_lock_details_created = user_lock_details['created']\n user_lock_details_created_date = LocalDateTime.parse(user_lock_details_created, DateTimeFormatter.ISO_LOCAL_DATE_TIME)\n user_lock_details_created_diff = Duration.between(user_lock_details_created_date, LocalDateTime.now()).getSeconds()\n print \"Basic (lock account). Get user '%s' locking details. locked: '%s', Created: '%s', Difference in seconds: '%s'\" % ( user_name, user_lock_details_locked, user_lock_details_created, user_lock_details_created_diff )\n\n if user_lock_details_locked and user_lock_details_created_diff >= self.lockExpirationTime:\n print \"Basic (lock account). Unlocking user '%s' after lock expiration\" % user_name\n unlock_and_authenticate = True\n\n if unlock_and_authenticate:\n self.unLockUser(user_name)\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(0))\n logged_in = authenticationService.authenticate(user_name, user_password)\n if not logged_in:\n # Update number of attempts \n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(1))\n if self.maximumInvalidLoginAttemps == 1:\n # Lock user if maximum count login attempts is 1 \n self.lockUser(user_name)\n return False\n\n\n return logged_in\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"Basic (lock account). Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def getUserAttributeValue(self, user_name, attribute_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n\n find_user_by_uid = userService.getUser(user_name, attribute_name)\n if find_user_by_uid == None:\n return None\n\n custom_attribute_value = userService.getCustomAttribute(find_user_by_uid, attribute_name)\n if custom_attribute_value == None:\n return None\n \n attribute_value = custom_attribute_value.getValue()\n\n print \"Basic (lock account). Get user attribute. User's '%s' attribute '%s' value is '%s'\" % (user_name, attribute_name, attribute_value)\n\n return attribute_value\n\n def setUserAttributeValue(self, user_name, attribute_name, attribute_value):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n\n find_user_by_uid = userService.getUser(user_name)\n if find_user_by_uid == None:\n return None\n \n userService.setCustomAttribute(find_user_by_uid, attribute_name, attribute_value)\n updated_user = userService.updateUser(find_user_by_uid)\n\n print \"Basic (lock account). Set user attribute. User's '%s' attribute '%s' value is '%s'\" % (user_name, attribute_name, attribute_value)\n\n return updated_user\n\n def lockUser(self, user_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n cacheService= CdiUtil.bean(CacheService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n find_user_by_uid = userService.getUser(user_name)\n if (find_user_by_uid == None):\n return None\n\n status_attribute_value = userService.getCustomAttribute(find_user_by_uid, \"gluuStatus\")\n if status_attribute_value != None:\n user_status = status_attribute_value.getValue()\n if StringHelper.equals(user_status, \"inactive\"):\n print \"Basic (lock account). Lock user. User '%s' locked already\" % user_name\n return\n \n userService.setCustomAttribute(find_user_by_uid, \"gluuStatus\", \"inactive\")\n updated_user = userService.updateUser(find_user_by_uid)\n\n object_to_store = json.dumps({'locked': True, 'created': LocalDateTime.now().toString()}, separators=(',',':'))\n\n cacheService.put(StringHelper.toString(self.lockExpirationTime), \"lock_user_\"+user_name, object_to_store);\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Your account is locked. Please try again after \" + StringHelper.toString(self.lockExpirationTime) + \" secs\")\n\n print \"Basic (lock account). Lock user. User '%s' locked\" % user_name\n\n def unLockUser(self, user_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n cacheService= CdiUtil.bean(CacheService)\n\n find_user_by_uid = userService.getUser(user_name)\n if (find_user_by_uid == None):\n return None\n\n object_to_store = json.dumps({'locked': False, 'created': LocalDateTime.now().toString()}, separators=(',',':'))\n cacheService.put(StringHelper.toString(self.lockExpirationTime), \"lock_user_\"+user_name, object_to_store);\n\n userService.setCustomAttribute(find_user_by_uid, \"jansStatus\", \"active\")\n userService.setCustomAttribute(find_user_by_uid, self.invalidLoginCountAttribute, None)\n updated_user = userService.updateUser(find_user_by_uid)\n\n\n print \"Basic (lock account). Lock user. User '%s' unlocked\" % user_name\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "basic_lock", "modified": false, "configurationProperties": [ { "hide": false, "value2": "oxCountInvalidLogin", "value1": "invalid_login_count_attribute" }, { "hide": false, "value2": "3", "value1": "maximum_invalid_login_attemps" }, { "hide": false, "value2": "120", "value1": "lock_expiration_time" } ], "baseDn": "inum=4BBE-C6A8,ou=scripts,o=jans" }, { "internal": false, "level": 40, "programmingLanguage": "python", "description": "HOTP/TOPT authentication module", "locationType": "ldap", "dn": "inum=5018-D4BF,ou=scripts,o=jans", "inum": "5018-D4BF", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\n# Requires the following custom properties and values:\n# otp_type: totp/hotp\n# issuer: Janssen Inc\n# otp_conf_file: /etc/certs/otp_configuration.json\n#\n# These are non mandatory custom properties and values:\n# label: Janssen OTP\n# qr_options: { width: 400, height: 400 }\n# registration_uri: https://ce-dev.jans.org/identity/register\n\nimport jarray\nimport json\nimport sys\nfrom com.google.common.io import BaseEncoding\nfrom com.lochbridge.oath.otp import HOTP\nfrom com.lochbridge.oath.otp import HOTPValidator\nfrom com.lochbridge.oath.otp import HmacShaAlgorithm\nfrom com.lochbridge.oath.otp import TOTP\nfrom com.lochbridge.oath.otp.keyprovisioning import OTPAuthURIBuilder\nfrom com.lochbridge.oath.otp.keyprovisioning import OTPKey\nfrom com.lochbridge.oath.otp.keyprovisioning.OTPKey import OTPType\nfrom java.security import SecureRandom\nfrom java.util import Arrays\nfrom java.util.concurrent import TimeUnit\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"OTP. Initialization\"\n\n if not configurationAttributes.containsKey(\"otp_type\"):\n print \"OTP. Initialization. Property otp_type is mandatory\"\n return False\n self.otpType = configurationAttributes.get(\"otp_type\").getValue2()\n\n if not self.otpType in [\"hotp\", \"totp\"]:\n print \"OTP. Initialization. Property value otp_type is invalid\"\n return False\n\n if not configurationAttributes.containsKey(\"issuer\"):\n print \"OTP. Initialization. Property issuer is mandatory\"\n return False\n self.otpIssuer = configurationAttributes.get(\"issuer\").getValue2()\n\n self.customLabel = None\n if configurationAttributes.containsKey(\"label\"):\n self.customLabel = configurationAttributes.get(\"label\").getValue2()\n\n self.customQrOptions = {}\n if configurationAttributes.containsKey(\"qr_options\"):\n self.customQrOptions = configurationAttributes.get(\"qr_options\").getValue2()\n\n self.registrationUri = None\n if configurationAttributes.containsKey(\"registration_uri\"):\n self.registrationUri = configurationAttributes.get(\"registration_uri\").getValue2()\n\n validOtpConfiguration = self.loadOtpConfiguration(configurationAttributes)\n if not validOtpConfiguration:\n return False\n\n print \"OTP. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"OTP. Destroy\"\n print \"OTP. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n print \"getNextStep Invoked\"\n # If user not pass current step change step to previous\n identity = CdiUtil.bean(Identity)\n retry_current_step = identity.getWorkingParameter(\"retry_current_step\")\n if retry_current_step:\n print \"OTP. Get next step. Retrying current step %s\" % step\n # Remove old QR code\n #identity.setWorkingParameter(\"super_gluu_request\", \"timeout\")\n resultStep = step\n return resultStep\n return -1\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n self.setRequestScopedParameters(identity)\n\n if step == 1:\n print \"OTP. Authenticate for step 1\"\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n otp_auth_method = \"authenticate\"\n # Uncomment this block if you need to allow user second OTP registration\n #enrollment_mode = ServerUtil.getFirstValue(requestParameters, \"loginForm:registerButton\")\n #if StringHelper.isNotEmpty(enrollment_mode):\n # otp_auth_method = \"enroll\"\n\n if otp_auth_method == \"authenticate\":\n user_enrollments = self.findEnrollments(authenticated_user.getUserId())\n if len(user_enrollments) == 0:\n otp_auth_method = \"enroll\"\n print \"OTP. Authenticate for step 1. There is no OTP enrollment for user '%s'. Changing otp_auth_method to '%s'\" % (authenticated_user.getUserId(), otp_auth_method)\n\n if otp_auth_method == \"enroll\":\n print \"OTP. Authenticate for step 1. Setting count steps: '%s'\" % 3\n identity.setWorkingParameter(\"otp_count_login_steps\", 3)\n\n print \"OTP. Authenticate for step 1. otp_auth_method: '%s'\" % otp_auth_method\n identity.setWorkingParameter(\"otp_auth_method\", otp_auth_method)\n\n return True\n elif step == 2:\n print \"OTP. Authenticate for step 2\"\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Authenticate for step 2. Failed to determine user name\"\n return False\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n # Restore state from session\n identity.setWorkingParameter(\"retry_current_step\", False)\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if otp_auth_method == 'enroll':\n auth_result = ServerUtil.getFirstValue(requestParameters, \"auth_result\")\n if not StringHelper.isEmpty(auth_result):\n # defect fix #1225 - Retry the step, show QR code again\n if auth_result == 'timeout':\n\t\t\t\t\t\tprint \"OTP. QR-code timeout. Authenticate for step %s. Reinitializing current step\" % step\n\t\t\t\t\t\tidentity.setWorkingParameter(\"retry_current_step\", True)\n\t\t\t\t\t\treturn True\n\n print \"OTP. Authenticate for step 2. User not enrolled OTP\"\n return False\n\n print \"OTP. Authenticate for step 2. Skipping this step during enrollment\"\n return True\n\n otp_auth_result = self.processOtpAuthentication(requestParameters, user.getUserId(), identity, otp_auth_method)\n print \"OTP. Authenticate for step 2. OTP authentication result: '%s'\" % otp_auth_result\n\n return otp_auth_result\n elif step == 3:\n print \"OTP. Authenticate for step 3\"\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Authenticate for step 2. Failed to determine user name\"\n return False\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n # Restore state from session\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if otp_auth_method != 'enroll':\n return False\n\n otp_auth_result = self.processOtpAuthentication(requestParameters, user.getUserId(), identity, otp_auth_method)\n print \"OTP. Authenticate for step 3. OTP authentication result: '%s'\" % otp_auth_result\n\n return otp_auth_result\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n self.setRequestScopedParameters(identity)\n\n if step == 1:\n print \"OTP. Prepare for step 1\"\n\n return True\n elif step == 2:\n print \"OTP. Prepare for step 2\"\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Prepare for step 2. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Prepare for step 2. Failed to load user enty\"\n return False\n\n if self.otpType == \"hotp\":\n otp_secret_key = self.generateSecretHotpKey()\n otp_enrollment_request = self.generateHotpSecretKeyUri(otp_secret_key, self.otpIssuer, user.getAttribute(\"displayName\"))\n elif self.otpType == \"totp\":\n otp_secret_key = self.generateSecretTotpKey()\n otp_enrollment_request = self.generateTotpSecretKeyUri(otp_secret_key, self.otpIssuer, user.getAttribute(\"displayName\"))\n else:\n print \"OTP. Prepare for step 2. Unknown OTP type: '%s'\" % self.otpType\n return False\n\n print \"OTP. Prepare for step 2. Prepared enrollment request for user: '%s'\" % user.getUserId()\n identity.setWorkingParameter(\"otp_secret_key\", self.toBase64Url(otp_secret_key))\n identity.setWorkingParameter(\"otp_enrollment_request\", otp_enrollment_request)\n\n return True\n elif step == 3:\n print \"OTP. Prepare for step 3\"\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Prepare for step 3. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n return True\n\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"otp_auth_method\", \"otp_count_login_steps\", \"otp_secret_key\", \"otp_enrollment_request\",\"retry_current_step\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n identity = CdiUtil.bean(Identity)\n\n if identity.isSetWorkingParameter(\"otp_count_login_steps\"):\n return StringHelper.toInteger(\"%s\" % identity.getWorkingParameter(\"otp_count_login_steps\"))\n else:\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n identity = CdiUtil.bean(Identity)\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Gep page for step 2. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n return \"/auth/otp/enroll.xhtml\"\n else:\n return \"/auth/otp/otplogin.xhtml\"\n elif step == 3:\n return \"/auth/otp/otplogin.xhtml\"\n\n return \"\"\n\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def setRequestScopedParameters(self, identity):\n if self.registrationUri != None:\n identity.setWorkingParameter(\"external_registration_uri\", self.registrationUri)\n\n if self.customLabel != None:\n identity.setWorkingParameter(\"qr_label\", self.customLabel)\n\n identity.setWorkingParameter(\"qr_options\", self.customQrOptions)\n\n def loadOtpConfiguration(self, configurationAttributes):\n print \"OTP. Load OTP configuration\"\n if not configurationAttributes.containsKey(\"otp_conf_file\"):\n return False\n\n otp_conf_file = configurationAttributes.get(\"otp_conf_file\").getValue2()\n\n # Load configuration from file\n f = open(otp_conf_file, 'r')\n try:\n otpConfiguration = json.loads(f.read())\n except:\n print \"OTP. Load OTP configuration. Failed to load configuration from file:\", otp_conf_file\n return False\n finally:\n f.close()\n\n # Check configuration file settings\n try:\n self.hotpConfiguration = otpConfiguration[\"hotp\"]\n self.totpConfiguration = otpConfiguration[\"totp\"]\n \n hmacShaAlgorithm = self.totpConfiguration[\"hmacShaAlgorithm\"]\n hmacShaAlgorithmType = None\n\n if StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha1\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_1\n elif StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha256\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_256\n elif StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha512\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_512\n else:\n print \"OTP. Load OTP configuration. Invalid TOTP HMAC SHA algorithm: '%s'\" % hmacShaAlgorithm\n \n self.totpConfiguration[\"hmacShaAlgorithmType\"] = hmacShaAlgorithmType\n except:\n print \"OTP. Load OTP configuration. Invalid configuration file '%s' format. Exception: '%s'\" % (otp_conf_file, sys.exc_info()[1])\n return False\n \n\n return True\n\n def processBasicAuthentication(self, credentials):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if find_user_by_uid == None:\n print \"OTP. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def findEnrollments(self, user_name, skipPrefix = True):\n result = []\n\n userService = CdiUtil.bean(UserService)\n user = userService.getUser(user_name, \"jansExtUid\")\n if user == None:\n print \"OTP. Find enrollments. Failed to find user\"\n return result\n \n user_custom_ext_attribute = userService.getCustomAttribute(user, \"jansExtUid\")\n if user_custom_ext_attribute == None:\n return result\n\n otp_prefix = \"%s:\" % self.otpType\n \n otp_prefix_length = len(otp_prefix) \n for user_external_uid in user_custom_ext_attribute.getValues():\n index = user_external_uid.find(otp_prefix)\n if index != -1:\n if skipPrefix:\n enrollment_uid = user_external_uid[otp_prefix_length:]\n else:\n enrollment_uid = user_external_uid\n\n result.append(enrollment_uid)\n \n return result\n\n def validateSessionId(self, identity):\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"OTP. Validate session id. Failed to determine session_id\"\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if not otp_auth_method in ['enroll', 'authenticate']:\n print \"OTP. Validate session id. Failed to authenticate user. otp_auth_method: '%s'\" % otp_auth_method\n return False\n\n return True\n\n def processOtpAuthentication(self, requestParameters, user_name, identity, otp_auth_method):\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n userService = CdiUtil.bean(UserService)\n\n otpCode = ServerUtil.getFirstValue(requestParameters, \"loginForm:otpCode\")\n if StringHelper.isEmpty(otpCode):\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to authenticate. OTP code is empty\")\n print \"OTP. Process OTP authentication. otpCode is empty\"\n\n return False\n \n if otp_auth_method == \"enroll\":\n # Get key from session\n otp_secret_key_encoded = identity.getWorkingParameter(\"otp_secret_key\")\n if otp_secret_key_encoded == None:\n print \"OTP. Process OTP authentication. OTP secret key is invalid\"\n return False\n \n otp_secret_key = self.fromBase64Url(otp_secret_key_encoded)\n\n if self.otpType == \"hotp\":\n validation_result = self.validateHotpKey(otp_secret_key, 1, otpCode)\n \n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process HOTP authentication during enrollment. otpCode is valid\"\n # Store HOTP Secret Key and moving factor in user entry\n otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, validation_result[\"movingFactor\"] )\n\n # Add otp_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n\n print \"OTP. Process HOTP authentication during enrollment. Failed to update user entry\"\n elif self.otpType == \"totp\":\n validation_result = self.validateTotpKey(otp_secret_key, otpCode,user_name)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process TOTP authentication during enrollment. otpCode is valid\"\n # Store TOTP Secret Key and moving factor in user entry\n otp_user_external_uid = \"totp:%s\" % otp_secret_key_encoded\n\n # Add otp_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n\n print \"OTP. Process TOTP authentication during enrollment. Failed to update user entry\"\n elif otp_auth_method == \"authenticate\":\n user_enrollments = self.findEnrollments(user_name)\n\n if len(user_enrollments) == 0:\n print \"OTP. Process OTP authentication. There is no OTP enrollment for user '%s'\" % user_name\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"There is no valid OTP user enrollments\")\n return False\n\n if self.otpType == \"hotp\":\n for user_enrollment in user_enrollments:\n user_enrollment_data = user_enrollment.split(\";\")\n otp_secret_key_encoded = user_enrollment_data[0]\n\n # Get current moving factor from user entry\n moving_factor = StringHelper.toInteger(user_enrollment_data[1])\n otp_secret_key = self.fromBase64Url(otp_secret_key_encoded)\n\n # Validate TOTP\n validation_result = self.validateHotpKey(otp_secret_key, moving_factor, otpCode)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process HOTP authentication during authentication. otpCode is valid\"\n otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, moving_factor )\n new_otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, validation_result[\"movingFactor\"] )\n \n # Update moving factor in user entry\n find_user_by_external_uid = userService.replaceUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, new_otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n \n print \"OTP. Process HOTP authentication during authentication. Failed to update user entry\"\n elif self.otpType == \"totp\":\n for user_enrollment in user_enrollments:\n otp_secret_key = self.fromBase64Url(user_enrollment)\n\n # Validate TOTP\n validation_result = self.validateTotpKey(otp_secret_key, otpCode, user_name)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process TOTP authentication during authentication. otpCode is valid\"\n return True\n\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to authenticate. OTP code is invalid\")\n print \"OTP. Process OTP authentication. OTP code is invalid\"\n\n return False\n\n # Shared HOTP/TOTP methods\n def generateSecretKey(self, keyLength):\n bytes = jarray.zeros(keyLength, \"b\")\n secureRandom = SecureRandom()\n secureRandom.nextBytes(bytes)\n \n return bytes\n \n # HOTP methods\n def generateSecretHotpKey(self):\n keyLength = self.hotpConfiguration[\"keyLength\"]\n \n return self.generateSecretKey(keyLength)\n\n def generateHotpKey(self, secretKey, movingFactor):\n digits = self.hotpConfiguration[\"digits\"]\n\n hotp = HOTP.key(secretKey).digits(digits).movingFactor(movingFactor).build()\n \n return hotp.value()\n\n def validateHotpKey(self, secretKey, movingFactor, totpKey):\n lookAheadWindow = self.hotpConfiguration[\"lookAheadWindow\"]\n digits = self.hotpConfiguration[\"digits\"]\n\n htopValidationResult = HOTPValidator.lookAheadWindow(lookAheadWindow).validate(secretKey, movingFactor, digits, totpKey)\n if htopValidationResult.isValid():\n return { \"result\": True, \"movingFactor\": htopValidationResult.getNewMovingFactor() }\n\n return { \"result\": False, \"movingFactor\": None }\n\n def generateHotpSecretKeyUri(self, secretKey, issuer, userDisplayName):\n digits = self.hotpConfiguration[\"digits\"]\n\n secretKeyBase32 = self.toBase32(secretKey)\n otpKey = OTPKey(secretKeyBase32, OTPType.HOTP)\n label = issuer + \" %s\" % userDisplayName\n\n otpAuthURI = OTPAuthURIBuilder.fromKey(otpKey).label(label).issuer(issuer).digits(digits).build()\n\n return otpAuthURI.toUriString()\n\n # TOTP methods\n def generateSecretTotpKey(self):\n keyLength = self.totpConfiguration[\"keyLength\"]\n \n return self.generateSecretKey(keyLength)\n\n def generateTotpKey(self, secretKey):\n digits = self.totpConfiguration[\"digits\"]\n timeStep = self.totpConfiguration[\"timeStep\"]\n hmacShaAlgorithmType = self.totpConfiguration[\"hmacShaAlgorithmType\"]\n\n totp = TOTP.key(secretKey).digits(digits).timeStep(TimeUnit.SECONDS.toMillis(timeStep)).hmacSha(hmacShaAlgorithmType).build()\n \n return totp.value()\n\n def validateTotpKey(self, secretKey, totpKey, user_name):\n localTotpKey = self.generateTotpKey(secretKey)\n cachedOTP = self.getCachedOTP(user_name)\n\n if StringHelper.equals(localTotpKey, totpKey) and not StringHelper.equals(localTotpKey, cachedOTP):\n userService = CdiUtil.bean(UserService)\n if cachedOTP is None:\n userService.addUserAttribute(user_name, \"jansOTPCache\",localTotpKey)\n else :\n userService.replaceUserAttribute(user_name, \"jansOTPCache\", cachedOTP, localTotpKey)\n print \"OTP. Caching OTP: '%s'\" % localTotpKey\n return { \"result\": True }\n return { \"result\": False }\n\t\n def getCachedOTP(self, user_name):\n userService = CdiUtil.bean(UserService)\n user = userService.getUser(user_name, \"jansOTPCache\")\n if user is None:\n print \"OTP. Get Cached OTP. Failed to find OTP\"\n return None\n customAttribute = userService.getCustomAttribute(user, \"jansOTPCache\")\n \n if customAttribute is None:\n print \"OTP. Custom attribute is null\"\n return None\n user_cached_OTP = customAttribute.getValue()\n if user_cached_OTP is None:\n print \"OTP. no OTP is present in LDAP\"\n return None\n \n print \"OTP.Cached OTP: '%s'\" % user_cached_OTP\n return user_cached_OTP\n \n def generateTotpSecretKeyUri(self, secretKey, issuer, userDisplayName):\n digits = self.totpConfiguration[\"digits\"]\n timeStep = self.totpConfiguration[\"timeStep\"]\n\n secretKeyBase32 = self.toBase32(secretKey)\n otpKey = OTPKey(secretKeyBase32, OTPType.TOTP)\n label = issuer + \" %s\" % userDisplayName\n\n otpAuthURI = OTPAuthURIBuilder.fromKey(otpKey).label(label).issuer(issuer).digits(digits).timeStep(TimeUnit.SECONDS.toMillis(timeStep)).build()\n\n return otpAuthURI.toUriString()\n\n # Utility methods\n def toBase32(self, bytes):\n return BaseEncoding.base32().omitPadding().encode(bytes)\n\n def toBase64Url(self, bytes):\n return BaseEncoding.base64Url().encode(bytes)\n\n def fromBase64Url(self, chars):\n return BaseEncoding.base64Url().decode(chars)\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "otp", "modified": false, "configurationProperties": [ { "hide": false, "value2": "totp", "value1": "otp_type" }, { "hide": false, "value2": "/etc/certs/otp_configuration.json", "value1": "otp_conf_file" }, { "hide": false, "value2": "Gluu Inc", "value1": "issuer" }, { "hide": false, "value2": "Gluu OTP", "value1": "label" }, { "hide": false, "value2": "{ size: 400, mSize: 0.05 }", "value1": "qr_options" }, { "hide": false, "value2": "https://jenkins-build.jans.io/identity/register", "value1": "registration_uri" } ], "baseDn": "inum=5018-D4BF,ou=scripts,o=jans" }, { "internal": false, "level": 50, "programmingLanguage": "python", "description": "DUO authentication module", "locationType": "ldap", "dn": "inum=5018-F9CF,ou=scripts,o=jans", "inum": "5018-F9CF", "script": "from io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService, SessionIdService\nfrom io.jans.as.server.service.common import UserService\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom io.jans.as.server.service.net import HttpService\nimport os\nimport java\nimport sys\nfrom com.duosecurity import Client\nfrom com.duosecurity.exception import DuoException\nfrom com.duosecurity.model import Token\nfrom io.jans.jsf2.service import FacesService\nfrom jakarta.faces.context import FacesContext\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.as.server.util import ServerUtil\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Duo-Universal. Initialization\"\n \n if (not configurationAttributes.containsKey(\"client_id\")):\n\t print \"Duo Universal. Initialization. Property client_id is not specified\"\n\t return False\n else: \n \tself.client_id = configurationAttributes.get(\"client_id\").getValue2() \n \t\n if (not configurationAttributes.containsKey(\"client_secret\")):\n\t print \"Duo Universal. Initialization. Property client_secret is not specified\"\n\t return False\n else: \n \tself.client_secret = configurationAttributes.get(\"client_secret\").getValue2() \n \t\n if (not configurationAttributes.containsKey(\"api_hostname\")):\n\t print \"Duo Universal. Initialization. Property api_hostname is not specified\"\n\t return False\n else: \n \tself.api_hostname = configurationAttributes.get(\"api_hostname\").getValue2() \n \n print \"Duo-Universal. Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Duo-Universal. Destroy\"\n print \"Duo-Universal. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"Duo-Universal. Authenticate for step %s\" % step\n \n identity = CdiUtil.bean(Identity)\n if (step == 1):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n # Check if user authenticated already in another custom script\n user = authenticationService.getAuthenticatedUser()\n \n if user == None:\n print \"user is none\"\n credentials = identity.getCredentials()\n \n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n \n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n \t\t\t\t\n if (not logged_in):\n print \"return false\"\n return False\n identity.setWorkingParameter('username',user_name)\n return True\n \n elif (step == 2):\n \n identity = CdiUtil.bean(Identity)\n \n state = ServerUtil.getFirstValue(requestParameters, \"state\")\n \t\t\t# Get state to verify consistency and originality\n if identity.getWorkingParameter('state_duo') == state :\n \t\n \t# Get authorization token to trade for 2FA\n \tduoCode = ServerUtil.getFirstValue(requestParameters, \"duo_code\")\n\t \ttry:\n\t token = self.duo_client.exchangeAuthorizationCodeFor2FAResult(duoCode, identity.getWorkingParameter('username'))\n print \"token status %s \" % token.getAuth_result().getStatus()\n\t \texcept:\n\t # Handle authentication failure.\n\t print \"authentication failure\", sys.exc_info()[1]\n\t return False\n\t \n\t # User successfully passed Duo authentication.\n\t \n\t if \"allow\" == token.getAuth_result().getStatus():\n\t return True\n\t \n\t return False\n \n else:\n print \"Neither step 1 or 2\" \n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \tprint \"Duo-Universal. Prepare for step %s\" % step\n \n if (step == 1):\n return True\n elif (step == 2):\n \tidentity = CdiUtil.bean(Identity)\n user_name = identity.getWorkingParameter('username')\n \tfacesContext = CdiUtil.bean(FacesContext)\n \trequest = facesContext.getExternalContext().getRequest()\n \thttpService = CdiUtil.bean(HttpService)\n \turl = httpService.constructServerUrl(request) + \"/postlogin.htm\"\n \t\n \ttry:\n\t \tself.duo_client = Client(self.client_id,self.client_secret,self.api_hostname,url)\n\t \tself.duo_client.healthCheck()\n\t \texcept:\n print \"Duo-Universal. Duo config error. Verify the values in Duo-Universal.conf are correct \", sys.exc_info()[1]\n \n state = self.duo_client.generateState()\n identity.setWorkingParameter(\"state_duo\",state)\n prompt_uri = self.duo_client.createAuthUrl(user_name, state)\n \n facesService = CdiUtil.bean(FacesService)\n facesService.redirectToExternalURL(prompt_uri )\n\n return True\n \n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"state_duo\", \"username\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n print \"Duo-Universal. getPageForStep - %s \" % step\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n ", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "duo", "modified": false, "configurationProperties": [ { "hide": false, "value2": "/etc/certs/duo_creds.json", "value1": "duo_creds_file" }, { "hide": false, "value2": "api-random.duosecurity.com", "value1": "duo_host" } ], "baseDn": "inum=5018-F9CF,ou=scripts,o=jans" }, { "internal": false, "level": 70, "programmingLanguage": "python", "description": "Fido2 authentication module", "locationType": "ldap", "dn": "inum=8BAF-80D7,ou=scripts,o=jans", "inum": "8BAF-80D7", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.fido2.client import Fido2ClientFactory\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\nfrom java.util import Arrays\nfrom java.util.concurrent.locks import ReentrantLock\nfrom jakarta.ws.rs import ClientErrorException\nfrom jakarta.ws.rs.core import Response\n\nimport java\nimport sys\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Fido2. Initialization\"\n\n if not configurationAttributes.containsKey(\"fido2_server_uri\"):\n print \"fido2_server_uri. Initialization. Property fido2_server_uri is not specified\"\n return False\n\n self.fido2_server_uri = configurationAttributes.get(\"fido2_server_uri\").getValue2()\n\n self.fido2_domain = None\n if configurationAttributes.containsKey(\"fido2_domain\"):\n self.fido2_domain = configurationAttributes.get(\"fido2_domain\").getValue2()\n\n self.metaDataLoaderLock = ReentrantLock()\n self.metaDataConfiguration = None\n\n print \"Fido2. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Fido2. Destroy\"\n print \"Fido2. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n\n if step == 1:\n print \"Fido2. Authenticate for step 1\"\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\",ServerUtil.getFirstValue(requestParameters, \"loginForm:platformAuthenticator\"))\n\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n return True\n elif step == 2:\n print \"Fido2. Authenticate for step 2\"\n\n token_response = ServerUtil.getFirstValue(requestParameters, \"tokenResponse\")\n if token_response == None:\n print \"Fido2. Authenticate for step 2. tokenResponse is empty\"\n return False\n\n auth_method = ServerUtil.getFirstValue(requestParameters, \"authMethod\")\n if auth_method == None:\n print \"Fido2. Authenticate for step 2. authMethod is empty\"\n return False\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Fido2. Prepare for step 2. Failed to determine user name\"\n return False\n\n if auth_method == 'authenticate':\n print \"Fido2. Prepare for step 2. Call Fido2 in order to finish authentication flow\"\n assertionService = Fido2ClientFactory.instance().createAssertionService(self.metaDataConfiguration)\n assertionStatus = assertionService.verify(token_response)\n authenticationStatusEntity = assertionStatus.readEntity(java.lang.String)\n\n if assertionStatus.getStatus() != Response.Status.OK.getStatusCode():\n print \"Fido2. Authenticate for step 2. Get invalid authentication status from Fido2 server\"\n return False\n\n return True\n elif auth_method == 'enroll':\n print \"Fido2. Prepare for step 2. Call Fido2 in order to finish registration flow\"\n attestationService = Fido2ClientFactory.instance().createAttestationService(self.metaDataConfiguration)\n attestationStatus = attestationService.verify(token_response)\n\n if attestationStatus.getStatus() != Response.Status.OK.getStatusCode():\n print \"Fido2. Authenticate for step 2. Get invalid registration status from Fido2 server\"\n return False\n\n return True\n else:\n print \"Fido2. Prepare for step 2. Authentication method is invalid\"\n return False\n\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n\n if step == 1:\n return True\n elif step == 2:\n print \"Fido2. Prepare for step 2\"\n\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Fido2. Prepare for step 2. Failed to determine session_id\"\n return False\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Fido2. Prepare for step 2. Failed to determine user name\"\n return False\n\n userName = user.getUserId()\n\n metaDataConfiguration = self.getMetaDataConfiguration()\n\n assertionResponse = None\n attestationResponse = None\n\n # Check if user have registered devices\n count = CdiUtil.bean(UserService).countFido2RegisteredDevices(userName, self.fido2_domain)\n if count > 0:\n print \"Fido2. Prepare for step 2. Call Fido2 endpoint in order to start assertion flow\"\n\n try:\n assertionService = Fido2ClientFactory.instance().createAssertionService(metaDataConfiguration)\n assertionRequest = json.dumps({'username': userName}, separators=(',', ':'))\n assertionResponse = assertionService.authenticate(assertionRequest).readEntity(java.lang.String)\n # if device has only platform authenticator and assertion is expecting a security key\n if \"internal\" in assertionResponse:\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\", \"true\")\n else:\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\", \"false\")\n\n except ClientErrorException, ex:\n print \"Fido2. Prepare for step 2. Failed to start assertion flow. Exception:\", sys.exc_info()[1]\n return False\n else:\n print \"Fido2. Prepare for step 2. Call Fido2 endpoint in order to start attestation flow\"\n\n try:\n attestationService = Fido2ClientFactory.instance().createAttestationService(metaDataConfiguration)\n platformAuthenticatorAvailable = identity.getWorkingParameter(\"platformAuthenticatorAvailable\") == \"true\"\n basic_json = {'username': userName, 'displayName': userName, 'attestation' : 'direct'}\n print \"% s\" % identity.getWorkingParameter(\"platformAuthenticatorAvailable\")\n if platformAuthenticatorAvailable is True:\n # the reason behind userVerification = discouraged --> https://chromium.googlesource.com/chromium/src/+/master/content/browser/webauth/uv_preferred.md\n platform_json = {\"authenticatorSelection\":{\"authenticatorAttachment\":\"platform\",\"requireResidentKey\" : \"false\", \"userVerification\" : \"discouraged\" } }\n basic_json.update(platform_json)\n\n # also need to add this --> excludeCredentials : [//registered ids]\n print \" basic_json %s\" % basic_json\n\n attestationRequest = json.dumps(basic_json)\n #, separators=(',', ':'))\n\n attestationResponse = attestationService.register(attestationRequest).readEntity(java.lang.String)\n except ClientErrorException, ex:\n print \"Fido2. Prepare for step 2. Failed to start attestation flow. Exception:\", sys.exc_info()[1]\n return False\n\n identity.setWorkingParameter(\"fido2_assertion_request\", ServerUtil.asJson(assertionResponse))\n identity.setWorkingParameter(\"fido2_attestation_request\", ServerUtil.asJson(attestationResponse))\n print \"Fido2. Prepare for step 2. Successfully start flow with next requests.\\nfido2_assertion_request: '%s'\\nfido2_attestation_request: '%s'\" % ( assertionResponse, attestationResponse )\n\n return True\n elif step == 3:\n print \"Fido2. Prepare for step 3\"\n\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList( \"platformAuthenticatorAvailable\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n return \"/auth/fido2/step1.xhtml\"\n elif step == 2:\n identity = CdiUtil.bean(Identity)\n if identity.getWorkingParameter(\"platformAuthenticatorAvailable\") == \"true\":\n return \"/auth/fido2/platform.xhtml\"\n else:\n return \"/auth/fido2/secKeys.xhtml\"\n return \"\"\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def getMetaDataConfiguration(self):\n if self.metaDataConfiguration != None:\n return self.metaDataConfiguration\n\n self.metaDataLoaderLock.lock()\n # Make sure that another thread not loaded configuration already\n if self.metaDataConfiguration != None:\n return self.metaDataConfiguration\n\n try:\n print \"Fido2. Initialization. Downloading Fido2 metadata\"\n self.fido2_server_metadata_uri = self.fido2_server_uri + \"/.well-known/fido2-configuration\"\n\n metaDataConfigurationService = Fido2ClientFactory.instance().createMetaDataConfigurationService(self.fido2_server_metadata_uri)\n\n max_attempts = 10\n for attempt in range(1, max_attempts + 1):\n try:\n self.metaDataConfiguration = metaDataConfigurationService.getMetadataConfiguration().readEntity(java.lang.String)\n return self.metaDataConfiguration\n except ClientErrorException, ex:\n # Detect if last try or we still get Service Unavailable HTTP error\n if (attempt == max_attempts) or (ex.getResponse().getResponseStatus() != Response.Status.SERVICE_UNAVAILABLE):\n raise ex\n\n java.lang.Thread.sleep(3000)\n print \"Attempting to load metadata: %d\" % attempt\n finally:\n self.metaDataLoaderLock.unlock()\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "fido2", "modified": false, "configurationProperties": [ { "hide": false, "value2": "https://jenkins-build.jans.io", "value1": "fido2_server_uri" } ], "baseDn": "inum=8BAF-80D7,ou=scripts,o=jans" }, { "internal": false, "level": 60, "programmingLanguage": "python", "description": "Super Gluu authentication module", "locationType": "ldap", "dn": "inum=92F0-BF9E,ou=scripts,o=jans", "inum": "92F0-BF9E", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom com.google.android.gcm.server import Sender, Message\nfrom com.notnoop.apns import APNS\nfrom java.util import Arrays\nfrom org.apache.http.params import CoreConnectionPNames\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.model.config import ConfigurationFactory\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.service.fido.u2f import DeviceRegistrationService\nfrom io.jans.as.server.service.net import HttpService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.as.common.service.common import EncryptionService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.service import MailService\nfrom io.jans.as.server.service.push.sns import PushPlatform\nfrom io.jans.as.server.service.push.sns import PushSnsService\nfrom io.jans.notify.client import NotifyClientFactory \nfrom java.util import Arrays, HashMap, IdentityHashMap, Date\nfrom java.time import ZonedDateTime\nfrom java.time.format import DateTimeFormatter\n\nimport datetime\nimport urllib\n\nimport sys\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Super-Gluu. Initialization\"\n\n if not configurationAttributes.containsKey(\"authentication_mode\"):\n print \"Super-Gluu. Initialization. Property authentication_mode is mandatory\"\n return False\n\n self.applicationId = None\n if configurationAttributes.containsKey(\"application_id\"):\n self.applicationId = configurationAttributes.get(\"application_id\").getValue2()\n\n self.registrationUri = None\n if configurationAttributes.containsKey(\"registration_uri\"):\n self.registrationUri = configurationAttributes.get(\"registration_uri\").getValue2()\n\n authentication_mode = configurationAttributes.get(\"authentication_mode\").getValue2()\n if StringHelper.isEmpty(authentication_mode):\n print \"Super-Gluu. Initialization. Failed to determine authentication_mode. authentication_mode configuration parameter is empty\"\n return False\n \n self.oneStep = StringHelper.equalsIgnoreCase(authentication_mode, \"one_step\")\n self.twoStep = StringHelper.equalsIgnoreCase(authentication_mode, \"two_step\")\n\n if not (self.oneStep or self.twoStep):\n print \"Super-Gluu. Initialization. Valid authentication_mode values are one_step and two_step\"\n return False\n \n self.enabledPushNotifications = self.initPushNotificationService(configurationAttributes)\n\n self.androidUrl = None\n if configurationAttributes.containsKey(\"supergluu_android_download_url\"):\n self.androidUrl = configurationAttributes.get(\"supergluu_android_download_url\").getValue2()\n\n self.IOSUrl = None\n if configurationAttributes.containsKey(\"supergluu_ios_download_url\"):\n self.IOSUrl = configurationAttributes.get(\"supergluu_ios_download_url\").getValue2()\n\n self.customLabel = None\n if configurationAttributes.containsKey(\"label\"):\n self.customLabel = configurationAttributes.get(\"label\").getValue2()\n\n self.customQrOptions = {}\n if configurationAttributes.containsKey(\"qr_options\"):\n self.customQrOptions = configurationAttributes.get(\"qr_options\").getValue2()\n\n self.use_super_gluu_group = False\n if configurationAttributes.containsKey(\"super_gluu_group\"):\n self.super_gluu_group = configurationAttributes.get(\"super_gluu_group\").getValue2()\n self.use_super_gluu_group = True\n print \"Super-Gluu. Initialization. Using super_gluu only if user belong to group: %s\" % self.super_gluu_group\n\n self.use_audit_group = False\n if configurationAttributes.containsKey(\"audit_group\"):\n self.audit_group = configurationAttributes.get(\"audit_group\").getValue2()\n\n if (not configurationAttributes.containsKey(\"audit_group_email\")):\n print \"Super-Gluu. Initialization. Property audit_group_email is not specified\"\n return False\n\n self.audit_email = configurationAttributes.get(\"audit_group_email\").getValue2()\n self.use_audit_group = True\n\n print \"Super-Gluu. Initialization. Using audit group: %s\" % self.audit_group\n \n if self.use_super_gluu_group or self.use_audit_group:\n if not configurationAttributes.containsKey(\"audit_attribute\"):\n print \"Super-Gluu. Initialization. Property audit_attribute is not specified\"\n return False\n else:\n self.audit_attribute = configurationAttributes.get(\"audit_attribute\").getValue2()\n\n print \"Super-Gluu. Initialized successfully. oneStep: '%s', twoStep: '%s', pushNotifications: '%s', customLabel: '%s'\" % (self.oneStep, self.twoStep, self.enabledPushNotifications, self.customLabel)\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Super-Gluu. Destroy\"\n\n self.pushAndroidService = None\n self.pushAppleService = None\n\n print \"Super-Gluu. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n client_redirect_uri = self.getApplicationUri(session_attributes)\n if client_redirect_uri == None:\n print \"Super-Gluu. Authenticate. redirect_uri is not set\"\n return False\n\n self.setRequestScopedParameters(identity, step)\n\n # Validate form result code and initialize QR code regeneration if needed (retry_current_step = True)\n identity.setWorkingParameter(\"retry_current_step\", False)\n form_auth_result = ServerUtil.getFirstValue(requestParameters, \"auth_result\")\n if StringHelper.isNotEmpty(form_auth_result):\n print \"Super-Gluu. Authenticate for step %s. Get auth_result: '%s'\" % (step, form_auth_result)\n if form_auth_result in ['error']:\n return False\n\n if form_auth_result in ['timeout']:\n if ((step == 1) and self.oneStep) or ((step == 2) and self.twoStep): \n print \"Super-Gluu. Authenticate for step %s. Reinitializing current step\" % step\n identity.setWorkingParameter(\"retry_current_step\", True)\n return False\n\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n if step == 1:\n print \"Super-Gluu. Authenticate for step 1\"\n\n user_name = credentials.getUsername()\n if self.oneStep:\n session_device_status = self.getSessionDeviceStatus(session_attributes, user_name)\n if session_device_status == None:\n return False\n\n u2f_device_id = session_device_status['device_id']\n\n validation_result = self.validateSessionDeviceStatus(client_redirect_uri, session_device_status)\n if validation_result:\n print \"Super-Gluu. Authenticate for step 1. User successfully authenticated with u2f_device '%s'\" % u2f_device_id\n else:\n return False\n \n if not session_device_status['one_step']:\n print \"Super-Gluu. Authenticate for step 1. u2f_device '%s' is not one step device\" % u2f_device_id\n return False\n \n # There are two steps only in enrollment mode\n if session_device_status['enroll']:\n return validation_result\n\n identity.setWorkingParameter(\"super_gluu_count_login_steps\", 1)\n\n user_inum = session_device_status['user_inum']\n\n u2f_device = deviceRegistrationService.findUserDeviceRegistration(user_inum, u2f_device_id, \"jansId\")\n if u2f_device == None:\n print \"Super-Gluu. Authenticate for step 1. Failed to load u2f_device '%s'\" % u2f_device_id\n return False\n\n logged_in = authenticationService.authenticate(user_name)\n if not logged_in:\n print \"Super-Gluu. Authenticate for step 1. Failed to authenticate user '%s'\" % user_name\n return False\n\n print \"Super-Gluu. Authenticate for step 1. User '%s' successfully authenticated with u2f_device '%s'\" % (user_name, u2f_device_id)\n \n return True\n elif self.twoStep:\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n if (self.use_super_gluu_group):\n print \"Super-Gluu. Authenticate for step 1. Checking if user belong to super_gluu group\"\n is_member_super_gluu_group = self.isUserMemberOfGroup(authenticated_user, self.audit_attribute, self.super_gluu_group)\n if (is_member_super_gluu_group):\n print \"Super-Gluu. Authenticate for step 1. User '%s' member of super_gluu group\" % authenticated_user.getUserId()\n super_gluu_count_login_steps = 2\n else:\n if self.use_audit_group:\n self.processAuditGroup(authenticated_user, self.audit_attribute, self.audit_group)\n super_gluu_count_login_steps = 1\n \n identity.setWorkingParameter(\"super_gluu_count_login_steps\", super_gluu_count_login_steps)\n \n if super_gluu_count_login_steps == 1:\n return True\n \n auth_method = 'authenticate'\n enrollment_mode = ServerUtil.getFirstValue(requestParameters, \"loginForm:registerButton\")\n if StringHelper.isNotEmpty(enrollment_mode):\n auth_method = 'enroll'\n \n if auth_method == 'authenticate':\n user_inum = userService.getUserInum(authenticated_user)\n u2f_devices_list = deviceRegistrationService.findUserDeviceRegistrations(user_inum, client_redirect_uri, \"jansId\")\n if u2f_devices_list.size() == 0:\n auth_method = 'enroll'\n print \"Super-Gluu. Authenticate for step 1. There is no U2F '%s' user devices associated with application '%s'. Changing auth_method to '%s'\" % (user_name, client_redirect_uri, auth_method)\n \n print \"Super-Gluu. Authenticate for step 1. auth_method: '%s'\" % auth_method\n \n identity.setWorkingParameter(\"super_gluu_auth_method\", auth_method)\n\n return True\n\n return False\n elif step == 2:\n print \"Super-Gluu. Authenticate for step 2\"\n\n user = authenticationService.getAuthenticatedUser()\n if (user == None):\n print \"Super-Gluu. Authenticate for step 2. Failed to determine user name\"\n return False\n user_name = user.getUserId()\n\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n session_device_status = self.getSessionDeviceStatus(session_attributes, user_name)\n if session_device_status == None:\n return False\n\n u2f_device_id = session_device_status['device_id']\n\n # There are two steps only in enrollment mode\n if self.oneStep and session_device_status['enroll']:\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n user_inum = userService.getUserInum(authenticated_user)\n \n attach_result = deviceRegistrationService.attachUserDeviceRegistration(user_inum, u2f_device_id)\n\n print \"Super-Gluu. Authenticate for step 2. Result after attaching u2f_device '%s' to user '%s': '%s'\" % (u2f_device_id, user_name, attach_result) \n\n return attach_result\n elif self.twoStep:\n if user_name == None:\n print \"Super-Gluu. Authenticate for step 2. Failed to determine user name\"\n return False\n\n validation_result = self.validateSessionDeviceStatus(client_redirect_uri, session_device_status, user_name)\n if validation_result:\n print \"Super-Gluu. Authenticate for step 2. User '%s' successfully authenticated with u2f_device '%s'\" % (user_name, u2f_device_id)\n else:\n return False\n \n super_gluu_request = json.loads(session_device_status['super_gluu_request'])\n auth_method = super_gluu_request['method']\n if auth_method in ['enroll', 'authenticate']:\n if validation_result and self.use_audit_group:\n user = authenticationService.getAuthenticatedUser()\n self.processAuditGroup(user, self.audit_attribute, self.audit_group)\n\n return validation_result\n\n print \"Super-Gluu. Authenticate for step 2. U2F auth_method is invalid\"\n\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n client_redirect_uri = self.getApplicationUri(session_attributes)\n if client_redirect_uri == None:\n print \"Super-Gluu. Prepare for step. redirect_uri is not set\"\n return False\n\n self.setRequestScopedParameters(identity, step)\n\n if step == 1:\n print \"Super-Gluu. Prepare for step 1\"\n if self.oneStep:\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine session_id\"\n return False\n\n issuer = CdiUtil.bean(ConfigurationFactory).getConfiguration().getIssuer()\n super_gluu_request_dictionary = {'app': client_redirect_uri,\n 'issuer': issuer,\n 'state': session.getId(),\n 'created': DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now().withNano(0))}\n\n self.addGeolocationData(session_attributes, super_gluu_request_dictionary)\n\n super_gluu_request = json.dumps(super_gluu_request_dictionary, separators=(',',':'))\n print \"Super-Gluu. Prepare for step 1. Prepared super_gluu_request:\", super_gluu_request\n \n identity.setWorkingParameter(\"super_gluu_request\", super_gluu_request)\n elif self.twoStep:\n identity.setWorkingParameter(\"display_register_action\", True)\n\n return True\n elif step == 2:\n print \"Super-Gluu. Prepare for step 2\"\n if self.oneStep:\n return True\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine user name\"\n return False\n\n if session_attributes.containsKey(\"super_gluu_request\"):\n super_gluu_request = session_attributes.get(\"super_gluu_request\")\n if not StringHelper.equalsIgnoreCase(super_gluu_request, \"timeout\"):\n print \"Super-Gluu. Prepare for step 2. Request was generated already\"\n return True\n \n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine session_id\"\n return False\n\n auth_method = session_attributes.get(\"super_gluu_auth_method\")\n if StringHelper.isEmpty(auth_method):\n print \"Super-Gluu. Prepare for step 2. Failed to determine auth_method\"\n return False\n\n print \"Super-Gluu. Prepare for step 2. auth_method: '%s'\" % auth_method\n \n issuer = CdiUtil.bean(ConfigurationFactory).getAppConfiguration().getIssuer()\n super_gluu_request_dictionary = {'username': user.getUserId(),\n 'app': client_redirect_uri,\n 'issuer': issuer,\n 'method': auth_method,\n 'state': session.getId(),\n 'created': DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now().withNano(0))}\n\n self.addGeolocationData(session_attributes, super_gluu_request_dictionary)\n\n super_gluu_request = json.dumps(super_gluu_request_dictionary, separators=(',',':'))\n print \"Super-Gluu. Prepare for step 2. Prepared super_gluu_request:\", super_gluu_request\n\n identity.setWorkingParameter(\"super_gluu_request\", super_gluu_request)\n identity.setWorkingParameter(\"super_gluu_auth_method\", auth_method)\n\n if auth_method in ['authenticate']:\n self.sendPushNotification(client_redirect_uri, user, super_gluu_request)\n\n return True\n else:\n return False\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n # If user not pass current step change step to previous\n identity = CdiUtil.bean(Identity)\n retry_current_step = identity.getWorkingParameter(\"retry_current_step\")\n if retry_current_step:\n print \"Super-Gluu. Get next step. Retrying current step\"\n\n # Remove old QR code\n identity.setWorkingParameter(\"super_gluu_request\", \"timeout\")\n\n resultStep = step\n return resultStep\n\n return -1\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 1:\n if self.oneStep: \n return Arrays.asList(\"super_gluu_request\")\n elif self.twoStep:\n return Arrays.asList(\"display_register_action\")\n elif step == 2:\n return Arrays.asList(\"super_gluu_auth_method\", \"super_gluu_request\")\n \n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n identity = CdiUtil.bean(Identity)\n if identity.isSetWorkingParameter(\"super_gluu_count_login_steps\"):\n return identity.getWorkingParameter(\"super_gluu_count_login_steps\")\n else:\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n if self.oneStep: \n return \"/auth/super-gluu/login.xhtml\"\n elif step == 2:\n if self.oneStep:\n return \"/login.xhtml\"\n else:\n identity = CdiUtil.bean(Identity)\n authmethod = identity.getWorkingParameter(\"super_gluu_auth_method\")\n print \"Super-Gluu. authmethod '%s'\" % authmethod\n if authmethod == \"enroll\":\n return \"/auth/super-gluu/login.xhtml\"\n else:\n return \"/auth/super-gluu/login.xhtml\"\n\n return \"\"\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def processBasicAuthentication(self, credentials):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if find_user_by_uid == None:\n print \"Super-Gluu. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def validateSessionDeviceStatus(self, client_redirect_uri, session_device_status, user_name = None):\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n\n u2f_device_id = session_device_status['device_id']\n\n u2f_device = None\n if session_device_status['enroll'] and session_device_status['one_step']:\n u2f_device = deviceRegistrationService.findOneStepUserDeviceRegistration(u2f_device_id)\n if u2f_device == None:\n print \"Super-Gluu. Validate session device status. There is no one step u2f_device '%s'\" % u2f_device_id\n return False\n else:\n # Validate if user has specified device_id enrollment\n user_inum = userService.getUserInum(user_name)\n\n if session_device_status['one_step']:\n user_inum = session_device_status['user_inum']\n \n u2f_device = deviceRegistrationService.findUserDeviceRegistration(user_inum, u2f_device_id)\n if u2f_device == None:\n print \"Super-Gluu. Validate session device status. There is no u2f_device '%s' associated with user '%s'\" % (u2f_device_id, user_inum)\n return False\n\n if not StringHelper.equalsIgnoreCase(client_redirect_uri, u2f_device.application):\n print \"Super-Gluu. Validate session device status. u2f_device '%s' associated with other application '%s'\" % (u2f_device_id, u2f_device.application)\n return False\n \n return True\n\n def getSessionDeviceStatus(self, session_attributes, user_name):\n print \"Super-Gluu. Get session device status\"\n\n if not session_attributes.containsKey(\"super_gluu_request\"):\n print \"Super-Gluu. Get session device status. There is no Super-Gluu request in session attributes\"\n return None\n\n # Check session state extended\n if not session_attributes.containsKey(\"session_custom_state\"):\n print \"Super-Gluu. Get session device status. There is no session_custom_state in session attributes\"\n return None\n\n session_custom_state = session_attributes.get(\"session_custom_state\")\n if not StringHelper.equalsIgnoreCase(\"approved\", session_custom_state):\n print \"Super-Gluu. Get session device status. User '%s' not approve or not pass U2F authentication. session_custom_state: '%s'\" % (user_name, session_custom_state)\n return None\n\n # Try to find device_id in session attribute\n if not session_attributes.containsKey(\"oxpush2_u2f_device_id\"):\n print \"Super-Gluu. Get session device status. There is no u2f_device associated with this request\"\n return None\n\n # Try to find user_inum in session attribute\n if not session_attributes.containsKey(\"oxpush2_u2f_device_user_inum\"):\n print \"Super-Gluu. Get session device status. There is no user_inum associated with this request\"\n return None\n \n enroll = False\n if session_attributes.containsKey(\"oxpush2_u2f_device_enroll\"):\n enroll = StringHelper.equalsIgnoreCase(\"true\", session_attributes.get(\"oxpush2_u2f_device_enroll\"))\n\n one_step = False\n if session_attributes.containsKey(\"oxpush2_u2f_device_one_step\"):\n one_step = StringHelper.equalsIgnoreCase(\"true\", session_attributes.get(\"oxpush2_u2f_device_one_step\"))\n \n super_gluu_request = session_attributes.get(\"super_gluu_request\")\n u2f_device_id = session_attributes.get(\"oxpush2_u2f_device_id\")\n user_inum = session_attributes.get(\"oxpush2_u2f_device_user_inum\")\n\n session_device_status = {\"super_gluu_request\": super_gluu_request, \"device_id\": u2f_device_id, \"user_inum\" : user_inum, \"enroll\" : enroll, \"one_step\" : one_step}\n print \"Super-Gluu. Get session device status. session_device_status: '%s'\" % (session_device_status)\n \n return session_device_status\n\n def initPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize Native/SNS/Gluu notification services\"\n\n self.pushSnsMode = False\n self.pushGluuMode = False\n if configurationAttributes.containsKey(\"notification_service_mode\"):\n notificationServiceMode = configurationAttributes.get(\"notification_service_mode\").getValue2()\n if StringHelper.equalsIgnoreCase(notificationServiceMode, \"sns\"):\n return self.initSnsPushNotificationService(configurationAttributes)\n elif StringHelper.equalsIgnoreCase(notificationServiceMode, \"gluu\"):\n return self.initGluuPushNotificationService(configurationAttributes)\n\n return self.initNativePushNotificationService(configurationAttributes)\n\n def initNativePushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize native notification services\"\n \n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n android_creds = creds[\"android\"][\"gcm\"]\n ios_creds = creds[\"ios\"][\"apns\"]\n except:\n print \"Super-Gluu. Initialize native notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if android_creds[\"enabled\"]:\n self.pushAndroidService = Sender(android_creds[\"api_key\"]) \n print \"Super-Gluu. Initialize native notification services. Created Android notification service\"\n \n if ios_creds[\"enabled\"]:\n p12_file_path = ios_creds[\"p12_file_path\"]\n p12_password = ios_creds[\"p12_password\"]\n\n try:\n encryptionService = CdiUtil.bean(EncryptionService)\n p12_password = encryptionService.decrypt(p12_password)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize native notification services. Assuming that 'p12_password' password in not encrypted\"\n\n apnsServiceBuilder = APNS.newService().withCert(p12_file_path, p12_password)\n if ios_creds[\"production\"]:\n self.pushAppleService = apnsServiceBuilder.withProductionDestination().build()\n else:\n self.pushAppleService = apnsServiceBuilder.withSandboxDestination().build()\n\n self.pushAppleServiceProduction = ios_creds[\"production\"]\n\n print \"Super-Gluu. Initialize native notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def initSnsPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize SNS notification services\"\n self.pushSnsMode = True\n\n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n sns_creds = creds[\"sns\"]\n android_creds = creds[\"android\"][\"sns\"]\n ios_creds = creds[\"ios\"][\"sns\"]\n except:\n print \"Super-Gluu. Initialize SNS notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if not (android_creds[\"enabled\"] or ios_creds[\"enabled\"]):\n print \"Super-Gluu. Initialize SNS notification services. SNS disabled for all platforms\"\n return False\n\n sns_access_key = sns_creds[\"access_key\"]\n sns_secret_access_key = sns_creds[\"secret_access_key\"]\n sns_region = sns_creds[\"region\"]\n\n encryptionService = CdiUtil.bean(EncryptionService)\n\n try:\n sns_secret_access_key = encryptionService.decrypt(sns_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize SNS notification services. Assuming that 'sns_secret_access_key' in not encrypted\"\n \n pushSnsService = CdiUtil.bean(PushSnsService)\n pushClient = pushSnsService.createSnsClient(sns_access_key, sns_secret_access_key, sns_region)\n\n if android_creds[\"enabled\"]:\n self.pushAndroidService = pushClient\n self.pushAndroidPlatformArn = android_creds[\"platform_arn\"]\n print \"Super-Gluu. Initialize SNS notification services. Created Android notification service\"\n\n if ios_creds[\"enabled\"]:\n self.pushAppleService = pushClient \n self.pushApplePlatformArn = ios_creds[\"platform_arn\"]\n self.pushAppleServiceProduction = ios_creds[\"production\"]\n print \"Super-Gluu. Initialize SNS notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def initGluuPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize Gluu notification services\"\n\n self.pushGluuMode = True\n\n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n gluu_conf = creds[\"gluu\"]\n android_creds = creds[\"android\"][\"gluu\"]\n ios_creds = creds[\"ios\"][\"gluu\"]\n except:\n print \"Super-Gluu. Initialize Gluu notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if not (android_creds[\"enabled\"] or ios_creds[\"enabled\"]):\n print \"Super-Gluu. Initialize Gluu notification services. Gluu disabled for all platforms\"\n return False\n\n gluu_server_uri = gluu_conf[\"server_uri\"]\n notifyClientFactory = NotifyClientFactory.instance()\n metadataConfiguration = None\n try:\n metadataConfiguration = notifyClientFactory.createMetaDataConfigurationService(gluu_server_uri).getMetadataConfiguration()\n except:\n print \"Super-Gluu. Initialize Gluu notification services. Failed to load metadata. Exception: \", sys.exc_info()[1]\n return False\n\n gluuClient = notifyClientFactory.createNotifyService(metadataConfiguration)\n encryptionService = CdiUtil.bean(EncryptionService)\n\n if android_creds[\"enabled\"]:\n gluu_access_key = android_creds[\"access_key\"]\n gluu_secret_access_key = android_creds[\"secret_access_key\"]\n \n try:\n gluu_secret_access_key = encryptionService.decrypt(gluu_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize Gluu notification services. Assuming that 'gluu_secret_access_key' in not encrypted\"\n \n self.pushAndroidService = gluuClient \n self.pushAndroidServiceAuth = notifyClientFactory.getAuthorization(gluu_access_key, gluu_secret_access_key);\n print \"Super-Gluu. Initialize Gluu notification services. Created Android notification service\"\n\n if ios_creds[\"enabled\"]:\n gluu_access_key = ios_creds[\"access_key\"]\n gluu_secret_access_key = ios_creds[\"secret_access_key\"]\n \n try:\n gluu_secret_access_key = encryptionService.decrypt(gluu_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize Gluu notification services. Assuming that 'gluu_secret_access_key' in not encrypted\"\n \n self.pushAppleService = gluuClient \n self.pushAppleServiceAuth = notifyClientFactory.getAuthorization(gluu_access_key, gluu_secret_access_key);\n print \"Super-Gluu. Initialize Gluu notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def loadPushNotificationCreds(self, configurationAttributes):\n print \"Super-Gluu. Initialize notification services\"\n if not configurationAttributes.containsKey(\"credentials_file\"):\n return None\n\n super_gluu_creds_file = configurationAttributes.get(\"credentials_file\").getValue2()\n\n # Load credentials from file\n f = open(super_gluu_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n except:\n print \"Super-Gluu. Initialize notification services. Failed to load credentials from file:\", super_gluu_creds_file\n return None\n finally:\n f.close()\n\n return creds\n\n def sendPushNotification(self, client_redirect_uri, user, super_gluu_request):\n try:\n self.sendPushNotificationImpl(client_redirect_uri, user, super_gluu_request)\n except:\n print \"Super-Gluu. Send push notification. Failed to send push notification: \", sys.exc_info()[1]\n\n def sendPushNotificationImpl(self, client_redirect_uri, user, super_gluu_request):\n if not self.enabledPushNotifications:\n return\n\n user_name = user.getUserId()\n print \"Super-Gluu. Send push notification. Loading user '%s' devices\" % user_name\n\n send_notification = False\n send_notification_result = True\n\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n\n user_inum = userService.getUserInum(user_name)\n\n send_android = 0\n send_ios = 0\n u2f_devices_list = deviceRegistrationService.findUserDeviceRegistrations(user_inum, client_redirect_uri, \"jansId\", \"jansDeviceData\", \"jansDeviceNotificationConf\")\n if u2f_devices_list.size() > 0:\n for u2f_device in u2f_devices_list:\n device_data = u2f_device.getDeviceData()\n\n # Device data which Super-Gluu gets during enrollment\n if device_data == None:\n continue\n\n platform = device_data.getPlatform()\n push_token = device_data.getPushToken()\n debug = False\n\n if StringHelper.equalsIgnoreCase(platform, \"ios\") and StringHelper.isNotEmpty(push_token):\n # Sending notification to iOS user's device\n if self.pushAppleService == None:\n print \"Super-Gluu. Send push notification. Apple native push notification service is not enabled\"\n else:\n send_notification = True\n \n title = \"Super Gluu\"\n message = \"Confirm your sign in request to: %s\" % client_redirect_uri\n\n if self.pushSnsMode or self.pushGluuMode:\n pushSnsService = CdiUtil.bean(PushSnsService)\n targetEndpointArn = self.getTargetEndpointArn(deviceRegistrationService, pushSnsService, PushPlatform.APNS, user, u2f_device)\n if targetEndpointArn == None:\n \treturn\n\n send_notification = True\n \n sns_push_request_dictionary = { \"aps\": \n { \"badge\": 0,\n \"alert\" : {\"body\": message, \"title\" : title},\n \"category\": \"ACTIONABLE\",\n \"content-available\": \"1\",\n \"sound\": 'default'\n },\n \"request\" : super_gluu_request\n }\n push_message = json.dumps(sns_push_request_dictionary, separators=(',',':'))\n \n if self.pushSnsMode:\n apple_push_platform = PushPlatform.APNS\n if not self.pushAppleServiceProduction:\n apple_push_platform = PushPlatform.APNS_SANDBOX\n \n send_notification_result = pushSnsService.sendPushMessage(self.pushAppleService, apple_push_platform, targetEndpointArn, push_message, None)\n if debug:\n print \"Super-Gluu. Send iOS SNS push notification. token: '%s', message: '%s', send_notification_result: '%s', apple_push_platform: '%s'\" % (push_token, push_message, send_notification_result, apple_push_platform)\n elif self.pushGluuMode:\n send_notification_result = self.pushAppleService.sendNotification(self.pushAppleServiceAuth, targetEndpointArn, push_message)\n if debug:\n print \"Super-Gluu. Send iOS Gluu push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n else:\n additional_fields = { \"request\" : super_gluu_request }\n \n msgBuilder = APNS.newPayload().alertBody(message).alertTitle(title).sound(\"default\")\n msgBuilder.category('ACTIONABLE').badge(0)\n msgBuilder.forNewsstand()\n msgBuilder.customFields(additional_fields)\n push_message = msgBuilder.build()\n \n send_notification_result = self.pushAppleService.push(push_token, push_message)\n if debug:\n print \"Super-Gluu. Send iOS Native push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n send_ios = send_ios + 1\n\n if StringHelper.equalsIgnoreCase(platform, \"android\") and StringHelper.isNotEmpty(push_token):\n # Sending notification to Android user's device\n if self.pushAndroidService == None:\n print \"Super-Gluu. Send native push notification. Android native push notification service is not enabled\"\n else:\n send_notification = True\n\n title = \"Super-Gluu\"\n if self.pushSnsMode or self.pushGluuMode:\n pushSnsService = CdiUtil.bean(PushSnsService)\n targetEndpointArn = self.getTargetEndpointArn(deviceRegistrationService, pushSnsService, PushPlatform.GCM, user, u2f_device)\n if targetEndpointArn == None:\n \treturn\n\n send_notification = True\n \n sns_push_request_dictionary = { \"collapse_key\": \"single\",\n \"content_available\": True,\n \"time_to_live\": 60,\n \"data\": \n { \"message\" : super_gluu_request,\n \"title\" : title }\n }\n push_message = json.dumps(sns_push_request_dictionary, separators=(',',':'))\n \n if self.pushSnsMode:\n send_notification_result = pushSnsService.sendPushMessage(self.pushAndroidService, PushPlatform.GCM, targetEndpointArn, push_message, None)\n if debug:\n print \"Super-Gluu. Send Android SNS push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n elif self.pushGluuMode:\n send_notification_result = self.pushAndroidService.sendNotification(self.pushAndroidServiceAuth, targetEndpointArn, push_message)\n if debug:\n print \"Super-Gluu. Send Android Gluu push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n else:\n msgBuilder = Message.Builder().addData(\"message\", super_gluu_request).addData(\"title\", title).collapseKey(\"single\").contentAvailable(True)\n push_message = msgBuilder.build()\n \n send_notification_result = self.pushAndroidService.send(push_message, push_token, 3)\n if debug:\n print \"Super-Gluu. Send Android Native push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n send_android = send_android + 1\n\n print \"Super-Gluu. Send push notification. send_android: '%s', send_ios: '%s'\" % (send_android, send_ios)\n\n def getTargetEndpointArn(self, deviceRegistrationService, pushSnsService, platform, user, u2fDevice):\n targetEndpointArn = None\n \n # Return endpoint ARN if it created already\n notificationConf = u2fDevice.getDeviceNotificationConf()\n if StringHelper.isNotEmpty(notificationConf):\n notificationConfJson = json.loads(notificationConf)\n targetEndpointArn = notificationConfJson['sns_endpoint_arn']\n if StringHelper.isNotEmpty(targetEndpointArn):\n print \"Super-Gluu. Get target endpoint ARN. There is already created target endpoint ARN\"\n return targetEndpointArn\n\n # Create endpoint ARN \n pushClient = None\n pushClientAuth = None\n platformApplicationArn = None\n if platform == PushPlatform.GCM:\n pushClient = self.pushAndroidService\n if self.pushSnsMode:\n platformApplicationArn = self.pushAndroidPlatformArn\n if self.pushGluuMode:\n pushClientAuth = self.pushAndroidServiceAuth\n elif platform == PushPlatform.APNS:\n pushClient = self.pushAppleService\n if self.pushSnsMode:\n platformApplicationArn = self.pushApplePlatformArn\n if self.pushGluuMode:\n pushClientAuth = self.pushAppleServiceAuth\n else:\n return None\n\n deviceData = u2fDevice.getDeviceData()\n pushToken = deviceData.getPushToken()\n \n print \"Super-Gluu. Get target endpoint ARN. Attempting to create target endpoint ARN for user: '%s'\" % user.getUserId()\n if self.pushSnsMode:\n targetEndpointArn = pushSnsService.createPlatformArn(pushClient, platformApplicationArn, pushToken, user)\n else:\n customUserData = pushSnsService.getCustomUserData(user)\n registerDeviceResponse = pushClient.registerDevice(pushClientAuth, pushToken, customUserData);\n if registerDeviceResponse != None and registerDeviceResponse.getStatusCode() == 200:\n targetEndpointArn = registerDeviceResponse.getEndpointArn()\n \n if StringHelper.isEmpty(targetEndpointArn):\n\t print \"Super-Gluu. Failed to get endpoint ARN for user: '%s'\" % user.getUserId()\n \treturn None\n\n print \"Super-Gluu. Get target endpoint ARN. Create target endpoint ARN '%s' for user: '%s'\" % (targetEndpointArn, user.getUserId())\n \n # Store created endpoint ARN in device entry\n userInum = user.getAttribute(\"inum\")\n u2fDeviceUpdate = deviceRegistrationService.findUserDeviceRegistration(userInum, u2fDevice.getId())\n u2fDeviceUpdate.setDeviceNotificationConf('{\"sns_endpoint_arn\" : \"%s\"}' % targetEndpointArn)\n deviceRegistrationService.updateDeviceRegistration(userInum, u2fDeviceUpdate)\n\n return targetEndpointArn\n\n def getApplicationUri(self, session_attributes):\n if self.applicationId != None:\n return self.applicationId\n \n if not session_attributes.containsKey(\"redirect_uri\"):\n return None\n\n return session_attributes.get(\"redirect_uri\")\n\n def setRequestScopedParameters(self, identity, step):\n downloadMap = HashMap()\n if self.registrationUri != None:\n identity.setWorkingParameter(\"external_registration_uri\", self.registrationUri)\n\n if self.androidUrl!= None and step == 1:\n downloadMap.put(\"android\", self.androidUrl)\n\n if self.IOSUrl != None and step == 1:\n downloadMap.put(\"ios\", self.IOSUrl)\n \n if self.customLabel != None:\n identity.setWorkingParameter(\"super_gluu_label\", self.customLabel)\n \n identity.setWorkingParameter(\"download_url\", downloadMap)\n identity.setWorkingParameter(\"super_gluu_qr_options\", self.customQrOptions)\n\n def addGeolocationData(self, session_attributes, super_gluu_request_dictionary):\n if session_attributes.containsKey(\"remote_ip\"):\n remote_ip = session_attributes.get(\"remote_ip\")\n if StringHelper.isNotEmpty(remote_ip):\n print \"Super-Gluu. Prepare for step 2. Adding req_ip and req_loc to super_gluu_request\"\n super_gluu_request_dictionary['req_ip'] = remote_ip\n\n remote_loc_dic = self.determineGeolocationData(remote_ip)\n if remote_loc_dic == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine remote location by remote IP '%s'\" % remote_ip\n return\n\n remote_loc = \"%s, %s, %s\" % ( remote_loc_dic['country'], remote_loc_dic['regionName'], remote_loc_dic['city'] )\n remote_loc_encoded = urllib.quote(remote_loc.encode('utf-8'))\n super_gluu_request_dictionary['req_loc'] = remote_loc_encoded\n\n def determineGeolocationData(self, remote_ip):\n print \"Super-Gluu. Determine remote location. remote_ip: '%s'\" % remote_ip\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n http_client_params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15 * 1000)\n \n geolocation_service_url = \"http://ip-api.com/json/%s?fields=49177\" % remote_ip\n geolocation_service_headers = { \"Accept\" : \"application/json\" }\n\n try:\n http_service_response = httpService.executeGet(http_client, geolocation_service_url, geolocation_service_headers)\n http_response = http_service_response.getHttpResponse()\n except:\n print \"Super-Gluu. Determine remote location. Exception: \", sys.exc_info()[1]\n return None\n\n try:\n if not httpService.isResponseStastusCodeOk(http_response):\n print \"Super-Gluu. Determine remote location. Get invalid response from validation server: \", str(http_response.getStatusLine().getStatusCode())\n httpService.consume(http_response)\n return None\n \n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes)\n httpService.consume(http_response)\n finally:\n http_service_response.closeConnection()\n\n if response_string == None:\n print \"Super-Gluu. Determine remote location. Get empty response from location server\"\n return None\n \n response = json.loads(response_string)\n \n if not StringHelper.equalsIgnoreCase(response['status'], \"success\"):\n print \"Super-Gluu. Determine remote location. Get response with status: '%s'\" % response['status']\n return None\n\n return response\n\n def isUserMemberOfGroup(self, user, attribute, group):\n is_member = False\n member_of_list = user.getAttributeValues(attribute)\n if (member_of_list != None):\n for member_of in member_of_list:\n if StringHelper.equalsIgnoreCase(group, member_of) or member_of.endswith(group):\n is_member = True\n break\n\n return is_member\n\n def processAuditGroup(self, user, attribute, group):\n is_member = self.isUserMemberOfGroup(user, attribute, group)\n if (is_member):\n print \"Super-Gluu. Authenticate for processAuditGroup. User '%s' member of audit group\" % user.getUserId()\n print \"Super-Gluu. Authenticate for processAuditGroup. Sending e-mail about user '%s' login to %s\" % (user.getUserId(), self.audit_email)\n \n # Send e-mail to administrator\n user_id = user.getUserId()\n mailService = CdiUtil.bean(MailService)\n subject = \"User log in: %s\" % user_id\n body = \"User log in: %s\" % user_id\n mailService.sendMail(self.audit_email, subject, body)\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "super_gluu", "modified": false, "configurationProperties": [ { "hide": false, "value2": "{ size: 500, mSize: 0.05 }", "value1": "qr_options" }, { "hide": false, "value2": "Super Gluu", "value1": "label" }, { "hide": false, "value2": "https://jenkins-build.jans.io/identity/register", "value1": "registration_uri" }, { "hide": false, "value2": "two_step", "value1": "authentication_mode" }, { "hide": false, "value2": "gluu", "value1": "notification_service_mode" }, { "hide": false, "value2": "/etc/certs/super_gluu_creds.json", "value1": "credentials_file" }, { "hide": false, "value2": "https://play.google.com/store/apps/details?id=gluu.org.super.gluu&hl=en_US", "value1": "supergluu_android_download_url" }, { "hide": false, "value2": "https://itunes.apple.com/us/app/super-gluu/id1093479646", "value1": "supergluu_ios_download_url" } ], "baseDn": "inum=92F0-BF9E,ou=scripts,o=jans" }, { "internal": false, "aliases": [ "basic_alias1", "basic_alias2" ], "level": 10, "programmingLanguage": "python", "description": "Sample authentication module", "locationType": "ldap", "dn": "inum=A51E-76DA,ou=scripts,o=jans", "inum": "A51E-76DA", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.util import StringHelper\n\nimport java\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Basic. Initialization\"\n print \"Basic. Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Basic. Destroy\"\n print \"Basic. Destroyed successfully\"\n return True\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if (step == 1):\n print \"Basic. Authenticate for step 1\"\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return False\n\n return True\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Basic. Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "basic", "modified": false, "baseDn": "inum=A51E-76DA,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "This script is a 2 in 1. It can be used to enable user to reset its password or to enable 2FA sending a token to user's email", "dn": "inum=B270-381E,ou=scripts,o=jans", "inum": "B270-381E", "script": "# coding: utf-8\n# Janssen Project software is available under the Apache License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Christian Eland\n\n\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\n# from org.gluu.oxauth.auth import Authenticator\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.as.common.service.common import ConfigurationService\nfrom io.jans.as.common.service.common import EncryptionService\nfrom io.jans.jsf2.message import FacesMessages\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.orm.exception import AuthenticationException\n\n#dealing with smtp server\nimport smtplib\n\n#dealing with emails\nfrom email.mime.multipart import MIMEMultipart\nfrom email.mime.text import MIMEText\n\n# This one is from core Java\nfrom java.util import Arrays\n\n# to generate string token\nimport random\nimport string\n\n# regex\nimport re\n\nimport urllib\n\nimport java\n\nclass EmailValidator():\n '''\n Class to check e-mail format\n '''\n regex = '^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$'\n\n def check(self, email):\n '''\n Check if email format is valid\n returns: boolean\n '''\n\n if(re.search(self.regex,email)):\n print \"Forgot Password - %s is a valid email format\" % email\n return True\n else:\n print \"Forgot Password - %s is an invalid email format\" % email\n return False\n\nclass Token:\n #class that deals with string token\n\n def generateToken(self):\n ''' method to generate token string\n returns: String\n '''\n letters = string.ascii_lowercase\n\n #token lenght\n lenght = 20\n\n #generate token\n token = ''.join(random.choice(letters) for i in range(lenght))\n print \"Forgot Password - Generating token\"\n\n return token\n\n\nclass EmailSender():\n #class that sends e-mail through smtp\n\n def getSmtpConfig(self):\n '''\n get SMTP config from Gluu Server\n return dict\n '''\n \n smtpconfig = CdiUtil.bean(ConfigurationService).getConfiguration().getSmtpConfiguration()\n \n if smtpconfig is None:\n print \"Forgot Password - SMTP CONFIG DOESN'T EXIST - Please configure\"\n\n else:\n print \"Forgot Password - SMTP CONFIG FOUND\"\n encryptionService = CdiUtil.bean(EncryptionService)\n smtp_config = {\n 'host' : smtpconfig.getHost(),\n 'port' : smtpconfig.getPort(),\n 'user' : smtpconfig.getUserName(),\n 'from' : smtpconfig.getFromEmailAddress(),\n 'pwd_decrypted' : encryptionService.decrypt(smtpconfig.getPassword()),\n 'req_ssl' : smtpconfig.isRequiresSsl(),\n 'requires_authentication' : smtpconfig.isRequiresAuthentication(),\n 'server_trust' : smtpconfig.isServerTrust()\n }\n\n return smtp_config\n\n \n\n def sendEmail(self,useremail,token):\n '''\n send token by e-mail to useremail\n '''\n\n # server connection \n smtpconfig = self.getSmtpConfig()\n \n try:\n s = smtplib.SMTP(smtpconfig['host'], port=smtpconfig['port'])\n \n\n if smtpconfig['requires_authentication']:\n \n if smtpconfig['req_ssl']:\n s.starttls()\n \n s.login(smtpconfig['user'], smtpconfig['pwd_decrypted'])\n\n \n #message setup\n msg = MIMEMultipart() #create message\n \n message = \"Here is your token: %s\" % token\n\n msg['From'] = smtpconfig['from'] #sender\n msg['To'] = useremail #recipient\n msg['Subject'] = \"Password Reset Request\" #subject\n\n #attach message body\n msg.attach(MIMEText(message, 'plain'))\n\n #send message via smtp server\n # send_message method is for python3 only s.send_message(msg)\n\n #send email (python2)\n s.sendmail(msg['From'],msg['To'],msg.as_string())\n \n #after sent, delete\n del msg\n\n except smtplib.SMTPAuthenticationError as err:\n print \"Forgot Password - SMTPAuthenticationError - %s - %s\" % (MY_ADDRESS,PASSWORD)\n print err\n\n except smtplib.smtplib.SMTPSenderRefused as err:\n print \"Forgot Password - SMTPSenderRefused - \" + err\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n\n print \"Forgot Password - Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Forgot Password - Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n # I'm not sure why is 11 and not 2\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n '''\n Authenticates user\n Step 1 will be defined according to SCRIPT_FUNCTION custom attribute\n returns: boolean\n '''\n\n #gets custom attribute\n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n\n print \"Forgot Password - %s - Authenticate for step %s\" % (sf, step)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n\n if step == 1:\n\n if sf == \"forgot_password\":\n\n \n authenticationService = CdiUtil.bean(AuthenticationService)\n\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n \n if not logged_in:\n\n \n email = ServerUtil.getFirstValue(requestParameters, \"ForgotPasswordForm:useremail\")\n validator = EmailValidator()\n if not validator.check(email):\n print \"Forgot Password - Email format invalid\"\n return False\n\n else:\n print \"Forgot Password -Email format valid\"\n \n print \"Forgot Password - Entered email is %s\" % email\n identity.setWorkingParameter(\"useremail\",email)\n \n # Just trying to get the user by the email\n user_service = CdiUtil.bean(UserService)\n user2 = user_service.getUserByAttribute(\"mail\", email)\n\n if user2 is not None:\n \n print user2\n print \"Forgot Password - User with e-mail %s found.\" % user2.getAttribute(\"mail\")\n \n # send email\n new_token = Token()\n token = new_token.generateToken() \n sender = EmailSender()\n print \"Email: \" + email\n print \"Token: \" + token\n sender.sendEmail(email,token)\n\n \n identity.setWorkingParameter(\"token\", token)\n print identity.getWorkingParameter(\"token\")\n \n \n \n else:\n print \"Forgot Password - User with e-mail %s not found\" % email\n\n return True\n\n\n else:\n # if user is already authenticated, returns true.\n\n user = authenticationService.getAuthenticatedUser()\n print \"Forgot Password - User %s is authenticated\" % user.getUserId()\n\n return True\n\n if sf == \"email_2FA\":\n\n try:\n # Just trying to get the user by the uid\n authenticationService = CdiUtil.bean(AuthenticationService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n \n print 'email_2FA user_name: ' + str(user_name)\n \n user_service = CdiUtil.bean(UserService)\n user2 = user_service.getUserByAttribute(\"uid\", user_name)\n\n if user2 is not None:\n print \"user:\"\n print user2\n print \"Forgot Password - User with e-mail %s found.\" % user2.getAttribute(\"mail\")\n email = user2.getAttribute(\"mail\")\n uid = user2.getAttribute(\"uid\")\n\n # send token\n # send email\n new_token = Token()\n token = new_token.generateToken() \n sender = EmailSender()\n print \"Email: \" + email\n print \"Token: \" + token\n sender.sendEmail(email,token)\n\n identity.setWorkingParameter(\"token\", token)\n\n return True\n\n except AuthenticationException as err:\n print err\n return False\n\n \n \n\n if step == 2:\n # step 2 user enters token\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n \n authenticationService = CdiUtil.bean(AuthenticationService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n # retrieves token typed by user\n input_token = ServerUtil.getFirstValue(requestParameters, \"ResetTokenForm:inputToken\")\n\n print \"Forgot Password - Token inputed by user is %s\" % input_token\n\n token = identity.getWorkingParameter(\"token\")\n print \"Forgot Password - Retrieved token\"\n email = identity.getWorkingParameter(\"useremail\")\n print \"Forgot Password - Retrieved email\" \n\n # compares token sent and token entered by user\n if input_token == token:\n print \"Forgot Password - token entered correctly\"\n identity.setWorkingParameter(\"token_valid\", True)\n \n return True\n\n else:\n print \"Forgot Password - wrong token\"\n return False\n\n \n if step == 3:\n # step 3 enters new password (only runs if custom attibute is forgot_password\n\n user_service = CdiUtil.bean(UserService)\n\n email = identity.getWorkingParameter(\"useremail\")\n user2 = user_service.getUserByAttribute(\"mail\", email)\n\n\n user_name = user2.getUserId()\n \n new_password = ServerUtil.getFirstValue(requestParameters, \"UpdatePasswordForm:newPassword\")\n \n print \"Forgot Password - New password submited\"\n \n # update user info with new password\n user2.setAttribute(\"userPassword\",new_password)\n print \"Forgot Password - user uid is %s\" % user_name\n print \"Forgot Password - Updating user with new password...\"\n user_service.updateUser(user2)\n print \"Forgot Password - User updated with new password\"\n # authenticates and login user\n print \"Forgot Password - Loading authentication service...\"\n authenticationService2 = CdiUtil.bean(AuthenticationService)\n\n print \"Forgot Password - Trying to authenticate user...\"\n login = authenticationService2.authenticate(user_name, new_password)\n \n return True\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \n print \"Forgot Password - Preparing for step %s\" % step\n \n return True\n\n\n # Return value is a java.util.List \n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"token\",\"useremail\",\"token_valid\")\n\n\n # This method determines how many steps the authentication flow may have\n # It doesn't have to be a constant value\n def getCountAuthenticationSteps(self, configurationAttributes):\n \n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n \n\n # if option is forgot_token\n if sf == \"forgot_password\":\n print \"Entered sf == forgot_password\"\n return 3\n \n # if ption is email_2FA\n if sf == \"email_2FA\":\n print \"Entered if sf=email_2FA\"\n return 2\n\n else:\n print \"Forgot Password - Custom Script Custom Property Incorrect, please check\"\n\n\n # The xhtml page to render upon each step of the flow\n # returns a string relative to oxAuth webapp root\n def getPageForStep(self, configurationAttributes, step):\n \n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n\n if step == 1:\n\n if sf == \"forgot_password\":\n return \"/auth/forgot_password/forgot.xhtml\"\n\n if sf == 'email_2FA':\n return \"\"\n\n if step == 2:\n return \"/auth/forgot_password/entertoken.xhtml\"\n\n if step == 3:\n if sf == \"forgot_password\":\n return \"/auth/forgot_password/newpassword.xhtml\"\n\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n # Method used on version 2 (11?)\n return -1\n \n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "SCRIPT_FUNCTION" } ], "scriptType": "person_authentication", "name": "Forgot_Password_2FA_Token", "modified": false, "configurationProperties": [ { "hide": false, "value2": "forgot_password", "value1": "SCRIPT_FUNCTION" } ], "baseDn": "inum=B270-381E,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "Agama Script", "locationType": "ldap", "dn": "inum=BADA-BADA,ou=scripts,o=jans", "inum": "BADA-BADA", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\nfrom io.jans.agama import NativeJansFlowBridge\nfrom io.jans.agama.engine.misc import FlowUtils\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.jsf2.service import FacesService\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nfrom jakarta.faces.application import FacesMessage\n\nimport java\nimport sys\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Agama. Initialization\" \n prop = \"cust_param_name\"\n self.cust_param_name = self.configProperty(configurationAttributes, prop)\n \n if self.cust_param_name == None:\n print \"Agama. Custom parameter name not referenced via property '%s'\" % prop\n return False\n \n print \"Agama. Request param '%s' will be used to pass flow inputs\" % self.cust_param_name\n print \"Agama. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Agama. Destroy\"\n print \"Agama. Destroyed successfully\"\n return True\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n\n if step == 1:\n print \"Agama. Authenticate for step 1\"\n \n try:\n bridge = CdiUtil.bean(NativeJansFlowBridge)\n result = bridge.close()\n \n if result == None or not result.isSuccess():\n print \"Agama. Flow DID NOT finished successfully\"\n return False\n else:\n print \"Agama. Flow finished successfully\"\n data = result.getData()\n userId = data.get(\"userId\") if data != None else None\n \n if userId == None:\n print \"Agama. No userId provided in flow result.\" \n self.setMessageError(FacesMessage.SEVERITY_ERROR, \"Unable to determine identity of user\")\n return False\n \n authenticated = CdiUtil.bean(AuthenticationService).authenticate(userId)\n \n if not authenticated:\n print \"Agama. Unable to authenticate %s\" % userId\n return False\n except:\n print \"Agama. Exception: \", sys.exc_info()[1]\n return False\n\n return True\n\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \n if not CdiUtil.bean(FlowUtils).serviceEnabled():\n print \"Agama. Please ENABLE Agama engine in auth-server configuration\"\n return False\n\n if step == 1:\n print \"Agama. Prepare for Step 1\"\n\n session = CdiUtil.bean(Identity).getSessionId()\n if session == None:\n print \"Agama. Failed to retrieve session_id\"\n return False\n \n param = session.getSessionAttributes().get(self.cust_param_name) \n if param == None:\n print \"Agama. Request param '%s' is missing or has no value\" % self.cust_param_name\n return False\n \n (qn, ins) = self.extractParams(param)\n if qn == None:\n print \"Agama. Param '%s' is missing the name of the flow to be launched\" % self.cust_param_name\n return False\n \n try:\n bridge = CdiUtil.bean(NativeJansFlowBridge)\n running = bridge.prepareFlow(session.getId(), qn, ins)\n \n if running == None:\n print \"Agama. Flow '%s' does not exist!\" % qn\n return False\n elif running:\n print \"Agama. A flow is already in course\"\n \n print \"Agama. Redirecting to start/resume agama flow '%s'...\" % qn\n \n CdiUtil.bean(FacesService).redirectToExternalURL(bridge.getTriggerUrl())\n except:\n print \"Agama. An error occurred when launching flow '%s'. Check jans-auth logs\" % qn\n print \"Agama. Exception: \", sys.exc_info()[1]\n return False\n #except java.lang.Throwable, ex:\n # ex.printStackTrace() \n # return False \n return True\n \n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n # page referenced here is only used when a flow is restarted\n return \"/\" + CdiUtil.bean(NativeJansFlowBridge).scriptPageUrl()\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n# Misc routines\n\n def configProperty(self, configProperties, name):\n prop = configProperties.get(name)\n return None if prop == None else prop.getValue2()\n\n def setMessageError(self, severity, msg):\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n facesMessages.clear()\n facesMessages.add(severity, msg)\n \n def extractParams(self, param):\n\n # param must be of the form QN-INPUT where QN is the qualified name of the flow to launch\n # INPUT is a JSON object that contains the arguments to use for the flow call.\n # The keys of this object should match the already defined flow inputs. Ideally, and \n # depending on the actual flow implementation, some keys may not even be required \n # QN and INPUTS are separated by a hyphen\n # INPUT must be properly URL-encoded when HTTP GET is used\n \n i = param.find(\"-\")\n if i == 0:\n return (None, None)\n elif i == -1:\n return (param, None)\n else:\n return (param[:i], param[i+1:])\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "agama", "modified": false, "configurationProperties": [ { "hide": false, "value2": "agama_flow", "value1": "cust_param_name" } ], "baseDn": "inum=BADA-BADA,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "GitHub Inbound Authentication script", "locationType": "ldap", "dn": "inum=E706-F8A8,ou=scripts,o=jans", "inum": "E706-F8A8", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.as.common.model.common import User\nfrom io.jans.as.model.jwt import Jwt\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.common.service.common import UserService\nfrom io.jans.as.server.service.net import HttpService\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.as.persistence.model.configuration import GluuConfiguration\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nfrom io.jans.jsf2.service import FacesService\nfrom java.util import Arrays, UUID\n\nimport json\nimport sys\nimport datetime\nimport urllib\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"GitHub. Initialization\"\n\n # read config from github_creds_file\n github_creds_file = configurationAttributes.get(\"github_creds_file\").getValue2()\n f = open(github_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n print creds\n except:\n print \"GitHub: Initialization. Failed to load creds from file:\", github_creds_file\n print \"Exception: \", sys.exc_info()[1]\n return False\n finally:\n f.close()\n\n self.op_server = str(creds[\"op_server\"])\n self.client_id = str(creds[\"client_id\"])\n self.client_secret = str(creds[\"client_secret\"])\n self.authorization_uri = str(creds[\"authorization_uri\"])\n self.token_uri = str(creds[\"token_uri\"])\n self.userinfo_uri = str(creds[\"userinfo_uri\"])\n self.redirect_uri = str(creds[\"redirect_uri\"])\n self.scope = str(creds[\"scope\"])\n self.title = str(creds[\"title\"])\n self.auto_redirect = creds[\"auto_redirect\"]\n\n print \"GitHub: Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"GitHub. Destroy\"\n print \"GitHub. Destroyed successfully\"\n return True\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"GitHub: authenticate called for step %s\" % str(step)\n identity = CdiUtil.bean(Identity)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n # Get Access Token\n tokenResponse = self.getToken(requestParameters)\n if tokenResponse is None:\n return False\n\n # Get User Info\n userInfo = self.getUserInfo(tokenResponse[\"access_token\"])\n foundUser = self.addUser(userInfo)\n if foundUser is None:\n return False\n\n identity.setWorkingParameter(\"gihub_username\", userInfo[\"login\"])\n identity.setWorkingParameter(\"gihub_access_token\", tokenResponse[\"access_token\"])\n\n print \"GitHub: Successfully authenticated\"\n\n loggedIn = authenticationService.authenticate(foundUser.getUserId())\n print \"GitHub: Authentication: %s\" % str(loggedIn)\n return loggedIn\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n print \"GitHub: prepareForStep called for step %s\" % str(step)\n if step == 1:\n # redirect to external OIDC server\n\n redirect_url_elements = [self.authorization_uri,\n \"?response_type=code id_token\",\n \"&client_id=\", self.client_id,\n \"&scope=\", self.scope,\n \"&redirect_uri=\", self.redirect_uri]\n redirect_url = \"\".join(redirect_url_elements)\n\n identity = CdiUtil.bean(Identity)\n\n if self.auto_redirect:\n facesService = CdiUtil.bean(FacesService)\n facesService.redirectToExternalURL(redirect_url)\n else:\n identity.setWorkingParameter(\"oidc_redirect_uri\", redirect_url)\n identity.setWorkingParameter(\"oidc_title\", self.title)\n\n return True\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n print \"GitHub: getExtraParametersForStep called for step %s\" % str(step)\n return Arrays.asList(\"gihub_username\", \"gihub_access_token\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n print \"GitHub: getCountAuthenticationSteps called\"\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n print \"GitHub: getPageForStep called for step %s\" % str(step)\n if(step == 1):\n return \"/auth/github/github.xhtml\"\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n print \"GitHub: getNextStep called for step %s\" % str(step)\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"GitHub: Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def generalLogin(self, identity, authenticationService):\n print \"GitHub: general login\"\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n return logged_in\n\n def getLocalPrimaryKey(self):\n entryManager = CdiUtil.bean(PersistenceEntryManager)\n config = GluuConfiguration()\n config = entryManager.find(config.getClass(), \"ou=configuration,o=jans\")\n # Pick (one) attribute where user id is stored (e.g. uid/mail)\n # primaryKey is the primary key on the backend AD / LDAP Server\n # localPrimaryKey is the primary key on Janssen. This attr value has been mapped with the primary key attr of the backend AD / LDAP when configuring cache refresh\n uid_attr = config.getIdpAuthn().get(0).getConfig().findValue(\"localPrimaryKey\").asText()\n print \"GitHub: init. uid attribute is '%s'\" % uid_attr\n return uid_attr\n\n def getToken(self, requestParameters):\n print \"GitHub: Get Access Token\"\n oidcCode = ServerUtil.getFirstValue(requestParameters, \"code\")\n httpService = CdiUtil.bean(HttpService)\n httpclient = httpService.getHttpsClient()\n tokenRequestData = urllib.urlencode({\n \"code\" : oidcCode,\n \"grant_type\" : \"authorization_code\",\n \"redirect_uri\": self.redirect_uri,\n \"client_id\": self.client_id,\n \"client_secret\": self.client_secret\n })\n\n tokenRequestHeaders = { \"Content-type\" : \"application/x-www-form-urlencoded\", \"Accept\" : \"application/json\" }\n\n resultResponse = httpService.executePost(httpclient, self.token_uri, None, tokenRequestHeaders, tokenRequestData)\n httpResponse = resultResponse.getHttpResponse()\n httpResponseStatusCode = httpResponse.getStatusLine().getStatusCode()\n print \"OIDC: token response status code: %s\" % httpResponseStatusCode\n if str(httpResponseStatusCode) != \"200\":\n print \"OIDC: Failed to get token, status code %s\" % httpResponseStatusCode\n return None\n\n responseBytes = httpService.getResponseContent(httpResponse)\n responseString = httpService.convertEntityToString(responseBytes)\n tokenResponse = json.loads(responseString)\n\n return tokenResponse\n\n def addUser(self, user):\n try:\n print \"GitHub: Adding user\"\n userId = user[\"login\"]\n userService = CdiUtil.bean(UserService)\n foundUser = userService.getUserByAttribute(\"jansExtUid\", \"github:\"+userId)\n\n if foundUser is None:\n print \"GitHub: User not found, adding new\"\n foundUser = User()\n foundUser.setAttribute(\"jansExtUid\", \"github:\"+userId)\n foundUser.setAttribute(\"jansEmail\", user[\"email\"])\n foundUser.setAttribute(\"mail\", user[\"email\"])\n foundUser.setAttribute(\"displayName\", \"github:\"+userId)\n foundUser.setAttribute(\"givenName\", \"github:\"+userId)\n foundUser.setAttribute(self.getLocalPrimaryKey(), userId)\n foundUser = userService.addUser(foundUser, True)\n\n return foundUser\n except Exception as e:\n print e\n print \"GitHub: Add user Exception: \", sys.exc_info()[1]\n return None\n\n def getUserInfo(self, accessToken):\n try:\n print \"GitHub: Get Userinfo\"\n httpService = CdiUtil.bean(HttpService)\n httpclient = httpService.getHttpsClient()\n tokenRequestHeaders = { \"Authorization\" : \"Bearer %s\" % accessToken, \"Accept\" : \"application/json\" }\n\n resultResponse = httpService.executeGet(httpclient, self.userinfo_uri, tokenRequestHeaders)\n httpResponse = resultResponse.getHttpResponse()\n httpResponseStatusCode = httpResponse.getStatusLine().getStatusCode()\n print \"GitHub: userinfo response status code: %s\" % httpResponseStatusCode\n if str(httpResponseStatusCode) != \"200\":\n print \"GitHub: Failed to get userinfo, status code %s\" % httpResponseStatusCode\n return None\n\n responseBytes = httpService.getResponseContent(httpResponse)\n responseString = httpService.convertEntityToString(responseBytes)\n userinfoResponse = json.loads(responseString)\n\n print userinfoResponse\n\n return userinfoResponse\n except Exception as e:\n print e\n return None\n", "enabled": false, "revision": 0, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "github", "modified": false, "configurationProperties": [ { "hide": false, "value2": "true", "value1": "hide" }, { "hide": false, "value2": "/etc/jans/conf/github.json", "value1": "github_creds_file" }, { "hide": false, "value2": "GitHub Login", "value1": "description" } ], "baseDn": "inum=E706-F8A8,ou=scripts,o=jans" } ], "start": 0, "totalEntriesCount": 13 } 24-11 09:33:43.169 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:43.170 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:43.170 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:43.170 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:43.170 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:43.171 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:43.171 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:43.171 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:43.171 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:43.171 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:43.177 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:43.177 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:43.177 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:43.177 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:43.184 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:43.185 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:43.185 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:43.185 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:43.185 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:43.185 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:43.448 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 3, "entries": [ { "internal": false, "level": 50, "programmingLanguage": "python", "description": "Twilio SMS authentication module", "locationType": "ldap", "dn": "inum=09A0-93D6,ou=scripts,o=jans", "inum": "09A0-93D6", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Gasmyr Mougang\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nimport com.twilio.Twilio as Twilio\nimport com.twilio.rest.api.v2010.account.Message as Message\nimport com.twilio.type.PhoneNumber as PhoneNumber\nimport org.codehaus.jettison.json.JSONArray as JSONArray\n\n\nimport java\nimport random\nimport jarray\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.mobile_number = None\n self.identity = CdiUtil.bean(Identity)\n\n def init(self, customScript, configurationAttributes):\n print \"==============================================\"\n print \"===TWILIO SMS INITIALIZATION==================\"\n print \"==============================================\"\n self.ACCOUNT_SID = None\n self.AUTH_TOKEN = None\n self.FROM_NUMBER = None\n\n # Get Custom Properties\n try:\n self.ACCOUNT_SID = configurationAttributes.get(\"twilio_sid\").getValue2()\n except:\n print 'TwilioSMS, Missing required configuration attribute \"twilio_sid\"'\n\n try:\n self.AUTH_TOKEN = configurationAttributes.get(\"twilio_token\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"twilio_token\"'\n try:\n self.FROM_NUMBER = configurationAttributes.get(\"from_number\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"from_number\"'\n\n if None in (self.ACCOUNT_SID, self.AUTH_TOKEN, self.FROM_NUMBER):\n print \"twilio_sid, twilio_token, from_number is empty ... returning False\"\n return False\n\n print \"===TWILIO SMS INITIALIZATION DONE PROPERLY=====\" \n return True\n\n def destroy(self, configurationAttributes):\n print \"Twilio SMS. Destroy\"\n print \"Twilio SMS. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"==============================================\"\n print \"====TWILIO SMS AUTHENCATION===================\"\n print \"==============================================\"\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n sessionIdService = CdiUtil.bean(SessionIdService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n form_name = ServerUtil.getFirstValue(requestParameters, \"TwilioSmsloginForm\")\n\n print \"TwilioSMS. form_response_passcode: %s\" % str(form_passcode)\n\n if step == 1:\n print \"==============================================\"\n print \"=TWILIO SMS STEP 1 | Password Authentication==\"\n print \"==============================================\"\n credentials = self.identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print 'TwilioSMS, Error retrieving user %s from LDAP' % (user_name)\n return False\n\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n self.mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"mobile\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if self.mobile_number == None:\n print \"TwilioSMS, Error finding mobile number for user '%s'\" % user_name \n \n except:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print 'TwilioSMS, Error finding mobile number for \"%s\". Exception: %s` % (user_name, sys.exc_info()[1])`'\n return False\n\n # Generate Random six digit code and store it in array\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n sessionId.getSessionAttributes().put(\"code\", code)\n\n try:\n Twilio.init(self.ACCOUNT_SID, self.AUTH_TOKEN);\n message = Message.creator(PhoneNumber(self.mobile_number), PhoneNumber(self.FROM_NUMBER), str(code)).create();\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print 'TwilioSMs, Message Sid: %s' % (message.getSid())\n print 'TwilioSMs, User phone: %s' % (self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n sessionId.getSessionAttributes().put(\"mobile_number\", self.mobile_number)\n sessionId.getSessionAttributes().put(\"mobile\", self.mobile_number)\n sessionIdService.updateSessionId(sessionId)\n self.identity.setWorkingParameter(\"mobile_number\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\",self.mobile_number)\n self.identity.setWorkingParameter(\"mobile\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile\",self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"Number: %s\" % (self.identity.getWorkingParameter(\"mobile_number\"))\n print \"Mobile: %s\" % (self.identity.getWorkingParameter(\"mobile\"))\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"========================================\"\n print \"===TWILIO SMS FIRST STEP DONE PROPERLY==\"\n print \"========================================\"\n return True\n except Exception, ex:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n print \"TwilioSMS. Error sending message to Twilio\"\n print \"TwilioSMS. Unexpected error:\", ex\n\n return False\n elif step == 2:\n # Retrieve the session attribute\n print \"==============================================\"\n print \"=TWILIO SMS STEP 2 | Password Authentication==\"\n print \"==============================================\"\n code = session_attributes.get(\"code\")\n print '=======> Session code is \"%s\"' % str(code)\n sessionIdService = CdiUtil.bean(SessionIdService)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n code = sessionId.getSessionAttributes().get(\"code\")\n print '=======> Database code is \"%s\"' % str(code)\n self.identity.setSessionId(sessionId)\n print \"==============================================\"\n print \"TwilioSMS. Code: %s\" % str(code)\n print \"==============================================\"\n if code is None:\n print \"TwilioSMS. Failed to find previously sent code\"\n return False\n\n if form_passcode is None:\n print \"TwilioSMS. Passcode is empty\"\n return False\n\n if len(form_passcode) != 6:\n print \"TwilioSMS. Passcode from response is not 6 digits: %s\" % form_passcode\n return False\n\n if form_passcode == code:\n print \"TiwlioSMS, SUCCESS! User entered the same code!\"\n print \"========================================\"\n print \"===TWILIO SMS SECOND STEP DONE PROPERLY\"\n print \"========================================\"\n return True\n\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n print \"TwilioSMS. FAIL! User entered the wrong code! %s != %s\" % (form_passcode, code)\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Incorrect Twilio code, please try again.\")\n print \"================================================\"\n print \"===TWILIO SMS SECOND STEP FAILED: INCORRECT CODE\"\n print \"================================================\"\n return False\n\n print \"TwilioSMS. ERROR: step param not found or != (1|2)\"\n\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"TwilioSMS. Prepare for Step 1\"\n return True\n elif step == 2:\n print \"TwilioSMS. Prepare for Step 2\"\n return True\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "twilio_sms", "modified": false, "configurationProperties": [ { "hide": false, "value1": "twilio_sid", "description": "Twilio account SID" }, { "hide": false, "value1": "twilio_token", "description": "Twilio API token" }, { "hide": false, "value1": "from_number", "description": "Twilio phone number with SMS capabilities" } ], "baseDn": "inum=09A0-93D6,ou=scripts,o=jans" }, { "internal": false, "level": 45, "programmingLanguage": "python", "description": "SMPP SMS authentication module", "locationType": "ldap", "dn": "inum=09A0-93D7,ou=scripts,o=jans", "inum": "09A0-93D7", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n# Copyright (c) 2019, Tele2\n\n# Author: Jose Gonzalez\n# Author: Gasmyr Mougang\n# Author: Stefan Andersson\n\nfrom java.util import Arrays, Date\nfrom java.io import IOException\nfrom java.lang import Enum\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import ArrayHelper\nfrom io.jans.util import StringHelper\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nfrom org.jsmpp import InvalidResponseException, PDUException\nfrom org.jsmpp.bean import Alphabet, BindType, ESMClass, GeneralDataCoding, MessageClass, NumberingPlanIndicator, RegisteredDelivery, SMSCDeliveryReceipt, TypeOfNumber\nfrom org.jsmpp.extra import NegativeResponseException, ResponseTimeoutException\nfrom org.jsmpp.session import BindParameter, SMPPSession\nfrom org.jsmpp.util import AbsoluteTimeFormatter, TimeFormatter\nimport random\n\n\nclass SmppAttributeError(Exception):\n pass\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.identity = CdiUtil.bean(Identity)\n\n def get_and_parse_smpp_config(self, config, attribute, _type = None, convert = False, optional = False, default_desc = None):\n try:\n value = config.get(attribute).getValue2()\n except:\n if default_desc:\n default_desc = \" using default '{}'\".format(default_desc)\n else:\n default_desc = \"\"\n\n if optional:\n raise SmppAttributeError(\"SMPP missing optional configuration attribute '{}'{}\".format(attribute, default_desc))\n else:\n raise SmppAttributeError(\"SMPP missing required configuration attribute '{}'\".format(attribute))\n\n if _type and issubclass(_type, Enum):\n try:\n return getattr(_type, value)\n except AttributeError:\n raise SmppAttributeError(\"SMPP could not find attribute '{}' in {}\".format(attribute, _type))\n\n if convert:\n try:\n value = int(value)\n except AttributeError:\n try:\n value = int(value, 16)\n except AttributeError:\n raise SmppAttributeError(\"SMPP could not parse value '{}' of attribute '{}'\".format(value, attribute))\n\n return value\n\n def init(self, customScript, configurationAttributes):\n print(\"SMPP Initialization\")\n\n self.TIME_FORMATTER = AbsoluteTimeFormatter()\n\n self.SMPP_SERVER = None\n self.SMPP_PORT = None\n\n self.SYSTEM_ID = None\n self.PASSWORD = None\n\n # Setup some good defaults for TON, NPI and source (from) address\n # TON (Type of Number), NPI (Number Plan Indicator)\n self.SRC_ADDR_TON = TypeOfNumber.ALPHANUMERIC # Alphanumeric\n self.SRC_ADDR_NPI = NumberingPlanIndicator.ISDN # ISDN (E163/E164)\n self.SRC_ADDR = \"Janssen OTP\"\n\n # Don't touch these unless you know what your doing, we don't handle number reformatting for\n # any other type than international.\n self.DST_ADDR_TON = TypeOfNumber.INTERNATIONAL # International\n self.DST_ADDR_NPI = NumberingPlanIndicator.ISDN # ISDN (E163/E164)\n\n # Priority flag and data_coding bits\n self.PRIORITY_FLAG = 3 # Very Urgent (ANSI-136), Emergency (IS-95)\n self.DATA_CODING_ALPHABET = Alphabet.ALPHA_DEFAULT # SMS default alphabet\n self.DATA_CODING_MESSAGE_CLASS = MessageClass.CLASS1 # EM (Mobile Equipment (mobile memory), normal message\n\n # Required server settings\n try:\n self.SMPP_SERVER = self.get_and_parse_smpp_config(configurationAttributes, \"smpp_server\")\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SMPP_PORT = self.get_and_parse_smpp_config(configurationAttributes, \"smpp_port\", convert = True)\n except SmppAttributeError as e:\n print(e)\n\n if None in (self.SMPP_SERVER, self.SMPP_PORT):\n print(\"SMPP smpp_server and smpp_port is empty, will not enable SMPP service\")\n return False\n\n # Optional system_id and password for bind auth\n try:\n self.SYSTEM_ID = self.get_and_parse_smpp_config(configurationAttributes, \"system_id\", optional = True)\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.PASSWORD = self.get_and_parse_smpp_config(configurationAttributes, \"password\", optional = True)\n except SmppAttributeError as e:\n print(e)\n\n if None in (self.SYSTEM_ID, self.PASSWORD):\n print(\"SMPP Authentication disabled\")\n\n # From number and to number settings\n try:\n self.SRC_ADDR_TON = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr_ton\",\n _type = TypeOfNumber,\n optional = True,\n default_desc = self.SRC_ADDR_TON\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SRC_ADDR_NPI = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr_npi\",\n _type = NumberingPlanIndicator,\n optional = True,\n default_desc = self.SRC_ADDR_NPI\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SRC_ADDR = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr\",\n optional = True,\n default_desc = self.SRC_ADDR\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DST_ADDR_TON = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"dest_addr_ton\",\n _type = TypeOfNumber,\n optional = True,\n default_desc = self.DST_ADDR_TON\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DST_ADDR_NPI = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"dest_addr_npi\",\n _type = NumberingPlanIndicator,\n optional = True,\n default_desc = self.DST_ADDR_NPI\n )\n except SmppAttributeError as e:\n print(e)\n\n # Priority flag and data coding, don't touch these unless you know what your doing...\n try:\n self.PRIORITY_FLAG = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"priority_flag\",\n convert = True,\n optional = True,\n default_desc = \"3 (Very Urgent, Emergency)\"\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DATA_CODING_ALPHABET = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"data_coding_alphabet\",\n _type = Alphabet,\n optional = True,\n default_desc = self.DATA_CODING_ALPHABET\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DATA_CODING_MESSAGE_CLASS = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"data_coding_alphabet\",\n _type = MessageClass,\n optional = True,\n default_desc = self.DATA_CODING_MESSAGE_CLASS\n )\n except SmppAttributeError as e:\n print(e)\n\n print(\"SMPP Initialized successfully\")\n return True\n\n def destroy(self, configurationAttributes):\n print(\"SMPP Destroy\")\n print(\"SMPP Destroyed successfully\")\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n\n print(\"SMPP form_response_passcode: {}\".format(str(form_passcode)))\n\n if step == 1:\n print(\"SMPP Step 1 Password Authentication\")\n credentials = self.identity.getCredentials()\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print(\"SMPP Error retrieving user {} from LDAP\".format(user_name))\n return False\n\n mobile_number = None\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if not mobile_number:\n mobile_number = foundUser.getAttribute(\"mobile\")\n if not mobile_number:\n mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if not mobile_number:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print(\"SMPP Error finding mobile number for user '{}'\".format(user_name))\n return False\n except Exception as e:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print(\"SMPP Error finding mobile number for {}: {}\".format(user_name, e))\n return False\n\n # Generate Random six digit code\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n\n self.identity.setWorkingParameter(\"mobile_number\", mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\", mobile_number)\n if not self.sendMessage(mobile_number, str(code)):\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n return False\n\n return True\n elif step == 2:\n # Retrieve the session attribute\n print(\"SMPP Step 2 SMS/OTP Authentication\")\n code = session_attributes.get(\"code\")\n print(\"SMPP Code: {}\".format(str(code)))\n\n if code is None:\n print(\"SMPP Failed to find previously sent code\")\n return False\n\n if form_passcode is None:\n print(\"SMPP Passcode is empty\")\n return False\n\n if len(form_passcode) != 6:\n print(\"SMPP Passcode from response is not 6 digits: {}\".format(form_passcode))\n return False\n\n if form_passcode == code:\n print(\"SMPP SUCCESS! User entered the same code!\")\n return True\n\n print(\"SMPP failed, user entered the wrong code! {} != {}\".format(form_passcode, code))\n facesMessages.add(facesMessage.SEVERITY_ERROR, \"Incorrect SMS code, please try again.\")\n return False\n\n print(\"SMPP ERROR: step param not found or != (1|2)\")\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print(\"SMPP Prepare for Step 1\")\n return True\n elif step == 2:\n print(\"SMPP Prepare for Step 2\")\n return True\n\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def sendMessage(self, number, code):\n status = False\n session = SMPPSession()\n session.setTransactionTimer(10000)\n\n # We only handle international destination number reformatting.\n # All others may vary by configuration decisions taken on SMPP\n # server side which we have no clue about.\n if self.DST_ADDR_TON == TypeOfNumber.INTERNATIONAL and number.startswith(\"+\"):\n number = number[1:]\n\n try:\n print(\"SMPP Connecting\")\n reference_id = session.connectAndBind(\n self.SMPP_SERVER,\n self.SMPP_PORT,\n BindParameter(\n BindType.BIND_TX,\n self.SYSTEM_ID,\n self.PASSWORD,\n None,\n self.SRC_ADDR_TON,\n self.SRC_ADDR_NPI,\n None\n )\n )\n print(\"SMPP Connected to server with system id {}\".format(reference_id))\n\n try:\n message_id = session.submitShortMessage(\n \"CMT\",\n self.SRC_ADDR_TON,\n self.SRC_ADDR_NPI,\n self.SRC_ADDR,\n self.DST_ADDR_TON,\n self.DST_ADDR_NPI,\n number,\n ESMClass(),\n 0,\n self.PRIORITY_FLAG,\n self.TIME_FORMATTER.format(Date()),\n None,\n RegisteredDelivery(SMSCDeliveryReceipt.DEFAULT),\n 0,\n GeneralDataCoding(\n self.DATA_CODING_ALPHABET,\n self.DATA_CODING_MESSAGE_CLASS,\n False\n ),\n 0,\n code\n )\n print(\"SMPP Message '{}' sent to #{} with message id {}\".format(code, number, message_id))\n status = True\n except PDUException as e:\n print(\"SMPP Invalid PDU parameter: {}\".format(e))\n except ResponseTimeoutException as e:\n print(\"SMPP Response timeout: {}\".format(e))\n except InvalidResponseException as e:\n print(\"SMPP Receive invalid response: {}\".format(e))\n except NegativeResponseException as e:\n print(\"SMPP Receive negative response: {}\".format(e))\n except IOException as e:\n print(\"SMPP IO error occured: {}\".format(e))\n finally:\n session.unbindAndClose()\n except IOException as e:\n print(\"SMPP Failed connect and bind to host: {}\".format(e))\n\n return status\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "smpp", "modified": false, "configurationProperties": [ { "hide": false, "value1": "smpp_server", "description": "IP or FQDN of SMPP server" }, { "hide": false, "value1": "smpp_port", "description": "TCP port of the SMPP server" }, { "hide": false, "value1": "system_id", "description": "Use if SMPP server requires authentication" }, { "hide": false, "value1": "password", "description": "Use if SMPP server requires authentication" }, { "hide": false, "value1": "source_addr_ton", "description": "Type of number, eg ALPHANUMERIC, INTERNATIONAL" }, { "hide": false, "value1": "source_addr", "description": "From number/name" } ], "baseDn": "inum=09A0-93D7,ou=scripts,o=jans" }, { "internal": false, "level": 30, "programmingLanguage": "python", "description": "Cert authentication module", "locationType": "ldap", "dn": "inum=2124-0CF1,ou=scripts,o=jans", "inum": "2124-0CF1", "script": "#\n# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom jakarta.faces.context import FacesContext\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.as.common.service.common import EncryptionService\nfrom java.util import Arrays\nfrom io.jans.as.common.cert.fingerprint import FingerprintHelper\nfrom io.jans.as.common.cert.validation import GenericCertificateVerifier\nfrom io.jans.as.common.cert.validation import PathCertificateVerifier\nfrom io.jans.as.common.cert.validation import OCSPCertificateVerifier\nfrom io.jans.as.common.cert.validation import CRLCertificateVerifier\nfrom io.jans.as.common.cert.validation.model import ValidationStatus\nfrom io.jans.as.server.util import CertUtil\nfrom io.jans.as.model.util import CertUtils\nfrom io.jans.as.server.service.net import HttpService\nfrom org.apache.http.params import CoreConnectionPNames\n\nimport sys\nimport base64\nimport urllib\n\nimport java\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Cert. Initialization\"\n\n if not (configurationAttributes.containsKey(\"chain_cert_file_path\")):\n print \"Cert. Initialization. Property chain_cert_file_path is mandatory\"\n return False\n\n if not (configurationAttributes.containsKey(\"map_user_cert\")):\n print \"Cert. Initialization. Property map_user_cert is mandatory\"\n return False\n\n chain_cert_file_path = configurationAttributes.get(\"chain_cert_file_path\").getValue2()\n\n self.chain_certs = CertUtil.loadX509CertificateFromFile(chain_cert_file_path)\n if self.chain_certs == None:\n print \"Cert. Initialization. Failed to load chain certificates from '%s'\" % chain_cert_file_path\n return False\n\n print \"Cert. Initialization. Loaded '%d' chain certificates\" % self.chain_certs.size()\n \n crl_max_response_size = 5 * 1024 * 1024 # 10Mb\n if configurationAttributes.containsKey(\"crl_max_response_size\"):\n crl_max_response_size = StringHelper.toInteger(configurationAttributes.get(\"crl_max_response_size\").getValue2(), crl_max_response_size)\n print \"Cert. Initialization. CRL max response size is '%d'\" % crl_max_response_size\n\n # Define array to order methods correctly\n self.validator_types = [ 'generic', 'path', 'ocsp', 'crl']\n self.validators = { 'generic' : [GenericCertificateVerifier(), False],\n 'path' : [PathCertificateVerifier(False), False],\n 'ocsp' : [OCSPCertificateVerifier(), False],\n 'crl' : [CRLCertificateVerifier(crl_max_response_size), False] }\n\n for type in self.validator_types:\n validator_param_name = \"use_%s_validator\" % type\n if configurationAttributes.containsKey(validator_param_name):\n validator_status = StringHelper.toBoolean(configurationAttributes.get(validator_param_name).getValue2(), False)\n self.validators[type][1] = validator_status\n\n print \"Cert. Initialization. Validation method '%s' status: '%s'\" % (type, self.validators[type][1])\n\n self.map_user_cert = StringHelper.toBoolean(configurationAttributes.get(\"map_user_cert\").getValue2(), False)\n print \"Cert. Initialization. map_user_cert: '%s'\" % self.map_user_cert\n\n self.enabled_recaptcha = self.initRecaptcha(configurationAttributes)\n print \"Cert. Initialization. enabled_recaptcha: '%s'\" % self.enabled_recaptcha\n\n print \"Cert. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Cert. Destroy\"\n\n for type in self.validator_types:\n self.validators[type][0].destroy()\n\n print \"Cert. Destroyed successfully\"\n\n return True\n\n def getApiVersion(self):\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n print \"Cert. Authenticate for step 1\"\n login_button = ServerUtil.getFirstValue(requestParameters, \"loginForm:loginButton\")\n if StringHelper.isEmpty(login_button):\n print \"Cert. Authenticate for step 1. Form were submitted incorrectly\"\n return False\n if self.enabled_recaptcha:\n print \"Cert. Authenticate for step 1. Validating recaptcha response\"\n recaptcha_response = ServerUtil.getFirstValue(requestParameters, \"g-recaptcha-response\")\n\n recaptcha_result = self.validateRecaptcha(recaptcha_response)\n print \"Cert. Authenticate for step 1. recaptcha_result: '%s'\" % recaptcha_result\n \n return recaptcha_result\n\n return True\n elif step == 2:\n print \"Cert. Authenticate for step 2\"\n\n # Validate if user selected certificate\n cert_x509 = self.getSessionAttribute(\"cert_x509\")\n if cert_x509 == None:\n print \"Cert. Authenticate for step 2. User not selected any certs\"\n identity.setWorkingParameter(\"cert_selected\", False)\n \n # Return True to inform user how to reset workflow\n return True\n else:\n identity.setWorkingParameter(\"cert_selected\", True)\n x509Certificate = self.certFromString(cert_x509)\n\n subjectX500Principal = x509Certificate.getSubjectX500Principal()\n print \"Cert. Authenticate for step 2. User selected certificate with DN '%s'\" % subjectX500Principal\n \n # Validate certificates which user selected\n valid = self.validateCertificate(x509Certificate)\n if not valid:\n print \"Cert. Authenticate for step 2. Certificate DN '%s' is not valid\" % subjectX500Principal\n identity.setWorkingParameter(\"cert_valid\", False)\n \n # Return True to inform user how to reset workflow\n return True\n\n identity.setWorkingParameter(\"cert_valid\", True)\n \n # Calculate certificate fingerprint\n x509CertificateFingerprint = self.calculateCertificateFingerprint(x509Certificate)\n identity.setWorkingParameter(\"cert_x509_fingerprint\", x509CertificateFingerprint)\n print \"Cert. Authenticate for step 2. Fingerprint is '%s' of certificate with DN '%s'\" % (x509CertificateFingerprint, subjectX500Principal)\n \n # Attempt to find user by certificate fingerprint\n cert_user_external_uid = \"cert:%s\" % x509CertificateFingerprint\n print \"Cert. Authenticate for step 2. Attempting to find user by jansExtUid attribute value %s\" % cert_user_external_uid\n\n find_user_by_external_uid = userService.getUserByAttribute(\"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n print \"Cert. Authenticate for step 2. Failed to find user\"\n \n if self.map_user_cert:\n print \"Cert. Authenticate for step 2. Storing cert_user_external_uid for step 3\"\n identity.setWorkingParameter(\"cert_user_external_uid\", cert_user_external_uid)\n return True\n else:\n print \"Cert. Authenticate for step 2. Mapping cert to user account is not allowed\"\n identity.setWorkingParameter(\"cert_count_login_steps\", 2)\n return False\n\n foundUserName = find_user_by_external_uid.getUserId()\n print \"Cert. Authenticate for step 2. foundUserName: \" + foundUserName\n\n logged_in = False\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(foundUserName)\n \n print \"Cert. Authenticate for step 2. Setting count steps to 2\"\n identity.setWorkingParameter(\"cert_count_login_steps\", 2)\n\n return logged_in\n elif step == 3:\n print \"Cert. Authenticate for step 3\"\n\n cert_user_external_uid = self.getSessionAttribute(\"cert_user_external_uid\")\n if cert_user_external_uid == None:\n print \"Cert. Authenticate for step 3. cert_user_external_uid is empty\"\n return False\n\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return False\n\n # Double check just to make sure. We did checking in previous step\n # Check if there is user which has cert_user_external_uid\n # Avoid mapping user cert to more than one IDP account\n find_user_by_external_uid = userService.getUserByAttribute(\"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n # Add cert_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n print \"Cert. Authenticate for step 3. Failed to update current user\"\n return False\n\n return True\n \n return True\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n print \"Cert. Prepare for step %d\" % step\n identity = CdiUtil.bean(Identity)\n \n if step == 1:\n if self.enabled_recaptcha:\n identity.setWorkingParameter(\"recaptcha_site_key\", self.recaptcha_creds['site_key'])\n elif step == 2:\n # Store certificate in session\n facesContext = CdiUtil.bean(FacesContext)\n externalContext = facesContext.getExternalContext()\n request = externalContext.getRequest()\n\n # Try to get certificate from header X-ClientCert\n clientCertificate = externalContext.getRequestHeaderMap().get(\"X-ClientCert\")\n if clientCertificate != None:\n x509Certificate = self.certFromPemString(clientCertificate)\n identity.setWorkingParameter(\"cert_x509\", self.certToString(x509Certificate))\n print \"Cert. Prepare for step 2. Storing user certificate obtained from 'X-ClientCert' header\"\n return True\n\n # Try to get certificate from attribute jakarta.servlet.request.X509Certificate\n x509Certificates = request.getAttribute('jakarta.servlet.request.X509Certificate')\n if (x509Certificates != None) and (len(x509Certificates) > 0):\n identity.setWorkingParameter(\"cert_x509\", self.certToString(x509Certificates[0]))\n print \"Cert. Prepare for step 2. Storing user certificate obtained from 'jakarta.servlet.request.X509Certificate' attribute\"\n return True\n\n if step < 4:\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"cert_selected\", \"cert_valid\", \"cert_x509\", \"cert_x509_fingerprint\", \"cert_count_login_steps\", \"cert_user_external_uid\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n cert_count_login_steps = self.getSessionAttribute(\"cert_count_login_steps\")\n if cert_count_login_steps != None:\n return cert_count_login_steps\n else:\n return 3\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n return \"/auth/cert/login.xhtml\"\n if step == 2:\n return \"/auth/cert/cert-login.xhtml\"\n elif step == 3:\n cert_selected = self.getSessionAttribute(\"cert_selected\")\n if True != cert_selected:\n return \"/auth/cert/cert-not-selected.xhtml\"\n\n cert_valid = self.getSessionAttribute(\"cert_valid\")\n if True != cert_valid:\n return \"/auth/cert/cert-invalid.xhtml\"\n \n return \"/login.xhtml\"\n\n return \"\"\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def processBasicAuthentication(self, credentials):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if (find_user_by_uid == None):\n print \"Cert. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def getSessionAttribute(self, attribute_name):\n identity = CdiUtil.bean(Identity)\n\n # Try to get attribute value from Seam event context\n if identity.isSetWorkingParameter(attribute_name):\n return identity.getWorkingParameter(attribute_name)\n \n # Try to get attribute from persistent session\n session_id = identity.getSessionId()\n if session_id == None:\n return None\n\n session_attributes = session_id.getSessionAttributes()\n if session_attributes == None:\n return None\n\n if session_attributes.containsKey(attribute_name):\n return session_attributes.get(attribute_name)\n\n return None\n\n def calculateCertificateFingerprint(self, x509Certificate):\n print \"Cert. Calculate fingerprint for certificate DN '%s'\" % x509Certificate.getSubjectX500Principal()\n \n publicKey = x509Certificate.getPublicKey()\n \n # Use oxAuth implementation\n fingerprint = FingerprintHelper.getPublicKeySshFingerprint(publicKey)\n \n return fingerprint \n\n def validateCertificate(self, x509Certificate):\n subjectX500Principal = x509Certificate.getSubjectX500Principal()\n\n print \"Cert. Validating certificate with DN '%s'\" % subjectX500Principal\n \n validation_date = java.util.Date()\n\n for type in self.validator_types:\n if self.validators[type][1]:\n result = self.validators[type][0].validate(x509Certificate, self.chain_certs, validation_date)\n print \"Cert. Validate certificate: '%s'. Validation method '%s' result: '%s'\" % (subjectX500Principal, type, result)\n \n if (result.getValidity() != ValidationStatus.CertificateValidity.VALID):\n print \"Cert. Certificate: '%s' is invalid\" % subjectX500Principal\n return False\n \n return True\n\n def certToString(self, x509Certificate):\n if x509Certificate == None:\n return None\n return base64.b64encode(x509Certificate.getEncoded())\n\n def certFromString(self, x509CertificateEncoded):\n x509CertificateDecoded = base64.b64decode(x509CertificateEncoded)\n return CertUtils.x509CertificateFromBytes(x509CertificateDecoded)\n\n def certFromPemString(self, pemCertificate):\n x509CertificateEncoded = pemCertificate.replace(\"-----BEGIN CERTIFICATE-----\", \"\").replace(\"-----END CERTIFICATE-----\", \"\").strip()\n return self.certFromString(x509CertificateEncoded)\n\n def initRecaptcha(self, configurationAttributes):\n print \"Cert. Initialize recaptcha\"\n if not configurationAttributes.containsKey(\"credentials_file\"):\n return False\n\n cert_creds_file = configurationAttributes.get(\"credentials_file\").getValue2()\n\n # Load credentials from file\n f = open(cert_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n except:\n print \"Cert. Initialize recaptcha. Failed to load credentials from file: %s\" % cert_creds_file\n return False\n finally:\n f.close()\n \n try:\n recaptcha_creds = creds[\"recaptcha\"]\n except:\n print \"Cert. Initialize recaptcha. Invalid credentials file '%s' format:\" % cert_creds_file\n return False\n \n self.recaptcha_creds = None\n if recaptcha_creds[\"enabled\"]:\n print \"Cert. Initialize recaptcha. Recaptcha is enabled\"\n\n encryptionService = CdiUtil.bean(EncryptionService)\n\n site_key = recaptcha_creds[\"site_key\"]\n secret_key = recaptcha_creds[\"secret_key\"]\n\n try:\n site_key = encryptionService.decrypt(site_key)\n except:\n # Ignore exception. Value is not encrypted\n print \"Cert. Initialize recaptcha. Assuming that 'site_key' in not encrypted\"\n\n try:\n secret_key = encryptionService.decrypt(secret_key)\n except:\n # Ignore exception. Value is not encrypted\n print \"Cert. Initialize recaptcha. Assuming that 'secret_key' in not encrypted\"\n\n \n self.recaptcha_creds = { 'site_key' : site_key, \"secret_key\" : secret_key }\n print \"Cert. Initialize recaptcha. Recaptcha is configured correctly\"\n\n return True\n else:\n print \"Cert. Initialize recaptcha. Recaptcha is disabled\"\n\n return False\n\n def validateRecaptcha(self, recaptcha_response):\n print \"Cert. Validate recaptcha response\"\n\n facesContext = CdiUtil.bean(FacesContext)\n request = facesContext.getExternalContext().getRequest()\n\n remoteip = ServerUtil.getIpAddress(request)\n print \"Cert. Validate recaptcha response. remoteip: '%s'\" % remoteip\n\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n http_client_params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15 * 1000)\n \n recaptcha_validation_url = \"https://www.google.com/recaptcha/api/siteverify\"\n recaptcha_validation_request = urllib.urlencode({ \"secret\" : self.recaptcha_creds['secret_key'], \"response\" : recaptcha_response, \"remoteip\" : remoteip })\n recaptcha_validation_headers = { \"Content-type\" : \"application/x-www-form-urlencoded\", \"Accept\" : \"application/json\" }\n\n try:\n http_service_response = httpService.executePost(http_client, recaptcha_validation_url, None, recaptcha_validation_headers, recaptcha_validation_request)\n http_response = http_service_response.getHttpResponse()\n except:\n print \"Cert. Validate recaptcha response. Exception: \", sys.exc_info()[1]\n return False\n\n try:\n if not httpService.isResponseStastusCodeOk(http_response):\n print \"Cert. Validate recaptcha response. Get invalid response from validation server: \", str(http_response.getStatusLine().getStatusCode())\n httpService.consume(http_response)\n return False\n \n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes)\n httpService.consume(http_response)\n finally:\n http_service_response.closeConnection()\n\n if response_string == None:\n print \"Cert. Validate recaptcha response. Get empty response from validation server\"\n return False\n \n response = json.loads(response_string)\n \n return response[\"success\"]\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "cert", "modified": false, "configurationProperties": [ { "hide": false, "value2": "/etc/certs/chain_cert.pem", "value1": "chain_cert_file_path" }, { "hide": false, "value2": "/etc/certs/cert_creds.json", "value1": "credentials_file" }, { "hide": false, "value2": "true", "value1": "map_user_cert" }, { "hide": false, "value2": "true", "value1": "use_generic_validator" }, { "hide": false, "value2": "true", "value1": "use_path_validator" }, { "hide": false, "value2": "false", "value1": "use_ocsp_validator" }, { "hide": false, "value2": "false", "value1": "use_crl_validator" }, { "hide": false, "value2": "10485760", "value1": "crl_max_response_size" } ], "baseDn": "inum=2124-0CF1,ou=scripts,o=jans" } ], "start": 0, "totalEntriesCount": 13 } 24-11 09:33:43.472 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:43.473 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:43.473 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:43.473 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:43.474 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:43.474 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:43.475 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:43.475 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:43.475 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:43.475 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:43.479 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:43.480 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:43.480 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:43.480 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:43.481 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:43.481 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:43.481 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:43.481 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:43.481 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:43.481 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:43.747 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 1, "entries": [ { "internal": false, "level": 70, "programmingLanguage": "python", "description": "Fido2 authentication module", "locationType": "ldap", "dn": "inum=8BAF-80D7,ou=scripts,o=jans", "inum": "8BAF-80D7", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.fido2.client import Fido2ClientFactory\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\nfrom java.util import Arrays\nfrom java.util.concurrent.locks import ReentrantLock\nfrom jakarta.ws.rs import ClientErrorException\nfrom jakarta.ws.rs.core import Response\n\nimport java\nimport sys\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Fido2. Initialization\"\n\n if not configurationAttributes.containsKey(\"fido2_server_uri\"):\n print \"fido2_server_uri. Initialization. Property fido2_server_uri is not specified\"\n return False\n\n self.fido2_server_uri = configurationAttributes.get(\"fido2_server_uri\").getValue2()\n\n self.fido2_domain = None\n if configurationAttributes.containsKey(\"fido2_domain\"):\n self.fido2_domain = configurationAttributes.get(\"fido2_domain\").getValue2()\n\n self.metaDataLoaderLock = ReentrantLock()\n self.metaDataConfiguration = None\n\n print \"Fido2. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Fido2. Destroy\"\n print \"Fido2. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n\n if step == 1:\n print \"Fido2. Authenticate for step 1\"\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\",ServerUtil.getFirstValue(requestParameters, \"loginForm:platformAuthenticator\"))\n\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n return True\n elif step == 2:\n print \"Fido2. Authenticate for step 2\"\n\n token_response = ServerUtil.getFirstValue(requestParameters, \"tokenResponse\")\n if token_response == None:\n print \"Fido2. Authenticate for step 2. tokenResponse is empty\"\n return False\n\n auth_method = ServerUtil.getFirstValue(requestParameters, \"authMethod\")\n if auth_method == None:\n print \"Fido2. Authenticate for step 2. authMethod is empty\"\n return False\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Fido2. Prepare for step 2. Failed to determine user name\"\n return False\n\n if auth_method == 'authenticate':\n print \"Fido2. Prepare for step 2. Call Fido2 in order to finish authentication flow\"\n assertionService = Fido2ClientFactory.instance().createAssertionService(self.metaDataConfiguration)\n assertionStatus = assertionService.verify(token_response)\n authenticationStatusEntity = assertionStatus.readEntity(java.lang.String)\n\n if assertionStatus.getStatus() != Response.Status.OK.getStatusCode():\n print \"Fido2. Authenticate for step 2. Get invalid authentication status from Fido2 server\"\n return False\n\n return True\n elif auth_method == 'enroll':\n print \"Fido2. Prepare for step 2. Call Fido2 in order to finish registration flow\"\n attestationService = Fido2ClientFactory.instance().createAttestationService(self.metaDataConfiguration)\n attestationStatus = attestationService.verify(token_response)\n\n if attestationStatus.getStatus() != Response.Status.OK.getStatusCode():\n print \"Fido2. Authenticate for step 2. Get invalid registration status from Fido2 server\"\n return False\n\n return True\n else:\n print \"Fido2. Prepare for step 2. Authentication method is invalid\"\n return False\n\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n\n if step == 1:\n return True\n elif step == 2:\n print \"Fido2. Prepare for step 2\"\n\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Fido2. Prepare for step 2. Failed to determine session_id\"\n return False\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Fido2. Prepare for step 2. Failed to determine user name\"\n return False\n\n userName = user.getUserId()\n\n metaDataConfiguration = self.getMetaDataConfiguration()\n\n assertionResponse = None\n attestationResponse = None\n\n # Check if user have registered devices\n count = CdiUtil.bean(UserService).countFido2RegisteredDevices(userName, self.fido2_domain)\n if count > 0:\n print \"Fido2. Prepare for step 2. Call Fido2 endpoint in order to start assertion flow\"\n\n try:\n assertionService = Fido2ClientFactory.instance().createAssertionService(metaDataConfiguration)\n assertionRequest = json.dumps({'username': userName}, separators=(',', ':'))\n assertionResponse = assertionService.authenticate(assertionRequest).readEntity(java.lang.String)\n # if device has only platform authenticator and assertion is expecting a security key\n if \"internal\" in assertionResponse:\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\", \"true\")\n else:\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\", \"false\")\n\n except ClientErrorException, ex:\n print \"Fido2. Prepare for step 2. Failed to start assertion flow. Exception:\", sys.exc_info()[1]\n return False\n else:\n print \"Fido2. Prepare for step 2. Call Fido2 endpoint in order to start attestation flow\"\n\n try:\n attestationService = Fido2ClientFactory.instance().createAttestationService(metaDataConfiguration)\n platformAuthenticatorAvailable = identity.getWorkingParameter(\"platformAuthenticatorAvailable\") == \"true\"\n basic_json = {'username': userName, 'displayName': userName, 'attestation' : 'direct'}\n print \"% s\" % identity.getWorkingParameter(\"platformAuthenticatorAvailable\")\n if platformAuthenticatorAvailable is True:\n # the reason behind userVerification = discouraged --> https://chromium.googlesource.com/chromium/src/+/master/content/browser/webauth/uv_preferred.md\n platform_json = {\"authenticatorSelection\":{\"authenticatorAttachment\":\"platform\",\"requireResidentKey\" : \"false\", \"userVerification\" : \"discouraged\" } }\n basic_json.update(platform_json)\n\n # also need to add this --> excludeCredentials : [//registered ids]\n print \" basic_json %s\" % basic_json\n\n attestationRequest = json.dumps(basic_json)\n #, separators=(',', ':'))\n\n attestationResponse = attestationService.register(attestationRequest).readEntity(java.lang.String)\n except ClientErrorException, ex:\n print \"Fido2. Prepare for step 2. Failed to start attestation flow. Exception:\", sys.exc_info()[1]\n return False\n\n identity.setWorkingParameter(\"fido2_assertion_request\", ServerUtil.asJson(assertionResponse))\n identity.setWorkingParameter(\"fido2_attestation_request\", ServerUtil.asJson(attestationResponse))\n print \"Fido2. Prepare for step 2. Successfully start flow with next requests.\\nfido2_assertion_request: '%s'\\nfido2_attestation_request: '%s'\" % ( assertionResponse, attestationResponse )\n\n return True\n elif step == 3:\n print \"Fido2. Prepare for step 3\"\n\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList( \"platformAuthenticatorAvailable\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n return \"/auth/fido2/step1.xhtml\"\n elif step == 2:\n identity = CdiUtil.bean(Identity)\n if identity.getWorkingParameter(\"platformAuthenticatorAvailable\") == \"true\":\n return \"/auth/fido2/platform.xhtml\"\n else:\n return \"/auth/fido2/secKeys.xhtml\"\n return \"\"\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def getMetaDataConfiguration(self):\n if self.metaDataConfiguration != None:\n return self.metaDataConfiguration\n\n self.metaDataLoaderLock.lock()\n # Make sure that another thread not loaded configuration already\n if self.metaDataConfiguration != None:\n return self.metaDataConfiguration\n\n try:\n print \"Fido2. Initialization. Downloading Fido2 metadata\"\n self.fido2_server_metadata_uri = self.fido2_server_uri + \"/.well-known/fido2-configuration\"\n\n metaDataConfigurationService = Fido2ClientFactory.instance().createMetaDataConfigurationService(self.fido2_server_metadata_uri)\n\n max_attempts = 10\n for attempt in range(1, max_attempts + 1):\n try:\n self.metaDataConfiguration = metaDataConfigurationService.getMetadataConfiguration().readEntity(java.lang.String)\n return self.metaDataConfiguration\n except ClientErrorException, ex:\n # Detect if last try or we still get Service Unavailable HTTP error\n if (attempt == max_attempts) or (ex.getResponse().getResponseStatus() != Response.Status.SERVICE_UNAVAILABLE):\n raise ex\n\n java.lang.Thread.sleep(3000)\n print \"Attempting to load metadata: %d\" % attempt\n finally:\n self.metaDataLoaderLock.unlock()\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "fido2", "modified": false, "configurationProperties": [ { "hide": false, "value2": "https://jenkins-build.jans.io", "value1": "fido2_server_uri" } ], "baseDn": "inum=8BAF-80D7,ou=scripts,o=jans" } ], "start": 0, "totalEntriesCount": 1 } 24-11 09:33:43.761 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:43.762 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:43.762 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:43.762 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:43.763 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:43.763 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:43.763 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:43.763 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:43.763 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:43.763 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:43.776 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:43.777 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:43.777 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:43.777 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:43.777 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:43.778 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:43.778 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:43.778 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:43.778 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:43.778 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:44.055 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 13, "entries": [ { "internal": false, "level": 50, "programmingLanguage": "python", "description": "Twilio SMS authentication module", "locationType": "ldap", "dn": "inum=09A0-93D6,ou=scripts,o=jans", "inum": "09A0-93D6", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Gasmyr Mougang\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nimport com.twilio.Twilio as Twilio\nimport com.twilio.rest.api.v2010.account.Message as Message\nimport com.twilio.type.PhoneNumber as PhoneNumber\nimport org.codehaus.jettison.json.JSONArray as JSONArray\n\n\nimport java\nimport random\nimport jarray\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.mobile_number = None\n self.identity = CdiUtil.bean(Identity)\n\n def init(self, customScript, configurationAttributes):\n print \"==============================================\"\n print \"===TWILIO SMS INITIALIZATION==================\"\n print \"==============================================\"\n self.ACCOUNT_SID = None\n self.AUTH_TOKEN = None\n self.FROM_NUMBER = None\n\n # Get Custom Properties\n try:\n self.ACCOUNT_SID = configurationAttributes.get(\"twilio_sid\").getValue2()\n except:\n print 'TwilioSMS, Missing required configuration attribute \"twilio_sid\"'\n\n try:\n self.AUTH_TOKEN = configurationAttributes.get(\"twilio_token\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"twilio_token\"'\n try:\n self.FROM_NUMBER = configurationAttributes.get(\"from_number\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"from_number\"'\n\n if None in (self.ACCOUNT_SID, self.AUTH_TOKEN, self.FROM_NUMBER):\n print \"twilio_sid, twilio_token, from_number is empty ... returning False\"\n return False\n\n print \"===TWILIO SMS INITIALIZATION DONE PROPERLY=====\" \n return True\n\n def destroy(self, configurationAttributes):\n print \"Twilio SMS. Destroy\"\n print \"Twilio SMS. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"==============================================\"\n print \"====TWILIO SMS AUTHENCATION===================\"\n print \"==============================================\"\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n sessionIdService = CdiUtil.bean(SessionIdService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n form_name = ServerUtil.getFirstValue(requestParameters, \"TwilioSmsloginForm\")\n\n print \"TwilioSMS. form_response_passcode: %s\" % str(form_passcode)\n\n if step == 1:\n print \"==============================================\"\n print \"=TWILIO SMS STEP 1 | Password Authentication==\"\n print \"==============================================\"\n credentials = self.identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print 'TwilioSMS, Error retrieving user %s from LDAP' % (user_name)\n return False\n\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n self.mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"mobile\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if self.mobile_number == None:\n print \"TwilioSMS, Error finding mobile number for user '%s'\" % user_name \n \n except:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print 'TwilioSMS, Error finding mobile number for \"%s\". Exception: %s` % (user_name, sys.exc_info()[1])`'\n return False\n\n # Generate Random six digit code and store it in array\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n sessionId.getSessionAttributes().put(\"code\", code)\n\n try:\n Twilio.init(self.ACCOUNT_SID, self.AUTH_TOKEN);\n message = Message.creator(PhoneNumber(self.mobile_number), PhoneNumber(self.FROM_NUMBER), str(code)).create();\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print 'TwilioSMs, Message Sid: %s' % (message.getSid())\n print 'TwilioSMs, User phone: %s' % (self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n sessionId.getSessionAttributes().put(\"mobile_number\", self.mobile_number)\n sessionId.getSessionAttributes().put(\"mobile\", self.mobile_number)\n sessionIdService.updateSessionId(sessionId)\n self.identity.setWorkingParameter(\"mobile_number\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\",self.mobile_number)\n self.identity.setWorkingParameter(\"mobile\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile\",self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"Number: %s\" % (self.identity.getWorkingParameter(\"mobile_number\"))\n print \"Mobile: %s\" % (self.identity.getWorkingParameter(\"mobile\"))\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"========================================\"\n print \"===TWILIO SMS FIRST STEP DONE PROPERLY==\"\n print \"========================================\"\n return True\n except Exception, ex:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n print \"TwilioSMS. Error sending message to Twilio\"\n print \"TwilioSMS. Unexpected error:\", ex\n\n return False\n elif step == 2:\n # Retrieve the session attribute\n print \"==============================================\"\n print \"=TWILIO SMS STEP 2 | Password Authentication==\"\n print \"==============================================\"\n code = session_attributes.get(\"code\")\n print '=======> Session code is \"%s\"' % str(code)\n sessionIdService = CdiUtil.bean(SessionIdService)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n code = sessionId.getSessionAttributes().get(\"code\")\n print '=======> Database code is \"%s\"' % str(code)\n self.identity.setSessionId(sessionId)\n print \"==============================================\"\n print \"TwilioSMS. Code: %s\" % str(code)\n print \"==============================================\"\n if code is None:\n print \"TwilioSMS. Failed to find previously sent code\"\n return False\n\n if form_passcode is None:\n print \"TwilioSMS. Passcode is empty\"\n return False\n\n if len(form_passcode) != 6:\n print \"TwilioSMS. Passcode from response is not 6 digits: %s\" % form_passcode\n return False\n\n if form_passcode == code:\n print \"TiwlioSMS, SUCCESS! User entered the same code!\"\n print \"========================================\"\n print \"===TWILIO SMS SECOND STEP DONE PROPERLY\"\n print \"========================================\"\n return True\n\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n print \"TwilioSMS. FAIL! User entered the wrong code! %s != %s\" % (form_passcode, code)\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Incorrect Twilio code, please try again.\")\n print \"================================================\"\n print \"===TWILIO SMS SECOND STEP FAILED: INCORRECT CODE\"\n print \"================================================\"\n return False\n\n print \"TwilioSMS. ERROR: step param not found or != (1|2)\"\n\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"TwilioSMS. Prepare for Step 1\"\n return True\n elif step == 2:\n print \"TwilioSMS. Prepare for Step 2\"\n return True\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "twilio_sms", "modified": false, "configurationProperties": [ { "hide": false, "value1": "twilio_sid", "description": "Twilio account SID" }, { "hide": false, "value1": "twilio_token", "description": "Twilio API token" }, { "hide": false, "value1": "from_number", "description": "Twilio phone number with SMS capabilities" } ], "baseDn": "inum=09A0-93D6,ou=scripts,o=jans" }, { "internal": false, "level": 45, "programmingLanguage": "python", "description": "SMPP SMS authentication module", "locationType": "ldap", "dn": "inum=09A0-93D7,ou=scripts,o=jans", "inum": "09A0-93D7", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n# Copyright (c) 2019, Tele2\n\n# Author: Jose Gonzalez\n# Author: Gasmyr Mougang\n# Author: Stefan Andersson\n\nfrom java.util import Arrays, Date\nfrom java.io import IOException\nfrom java.lang import Enum\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import ArrayHelper\nfrom io.jans.util import StringHelper\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nfrom org.jsmpp import InvalidResponseException, PDUException\nfrom org.jsmpp.bean import Alphabet, BindType, ESMClass, GeneralDataCoding, MessageClass, NumberingPlanIndicator, RegisteredDelivery, SMSCDeliveryReceipt, TypeOfNumber\nfrom org.jsmpp.extra import NegativeResponseException, ResponseTimeoutException\nfrom org.jsmpp.session import BindParameter, SMPPSession\nfrom org.jsmpp.util import AbsoluteTimeFormatter, TimeFormatter\nimport random\n\n\nclass SmppAttributeError(Exception):\n pass\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.identity = CdiUtil.bean(Identity)\n\n def get_and_parse_smpp_config(self, config, attribute, _type = None, convert = False, optional = False, default_desc = None):\n try:\n value = config.get(attribute).getValue2()\n except:\n if default_desc:\n default_desc = \" using default '{}'\".format(default_desc)\n else:\n default_desc = \"\"\n\n if optional:\n raise SmppAttributeError(\"SMPP missing optional configuration attribute '{}'{}\".format(attribute, default_desc))\n else:\n raise SmppAttributeError(\"SMPP missing required configuration attribute '{}'\".format(attribute))\n\n if _type and issubclass(_type, Enum):\n try:\n return getattr(_type, value)\n except AttributeError:\n raise SmppAttributeError(\"SMPP could not find attribute '{}' in {}\".format(attribute, _type))\n\n if convert:\n try:\n value = int(value)\n except AttributeError:\n try:\n value = int(value, 16)\n except AttributeError:\n raise SmppAttributeError(\"SMPP could not parse value '{}' of attribute '{}'\".format(value, attribute))\n\n return value\n\n def init(self, customScript, configurationAttributes):\n print(\"SMPP Initialization\")\n\n self.TIME_FORMATTER = AbsoluteTimeFormatter()\n\n self.SMPP_SERVER = None\n self.SMPP_PORT = None\n\n self.SYSTEM_ID = None\n self.PASSWORD = None\n\n # Setup some good defaults for TON, NPI and source (from) address\n # TON (Type of Number), NPI (Number Plan Indicator)\n self.SRC_ADDR_TON = TypeOfNumber.ALPHANUMERIC # Alphanumeric\n self.SRC_ADDR_NPI = NumberingPlanIndicator.ISDN # ISDN (E163/E164)\n self.SRC_ADDR = \"Janssen OTP\"\n\n # Don't touch these unless you know what your doing, we don't handle number reformatting for\n # any other type than international.\n self.DST_ADDR_TON = TypeOfNumber.INTERNATIONAL # International\n self.DST_ADDR_NPI = NumberingPlanIndicator.ISDN # ISDN (E163/E164)\n\n # Priority flag and data_coding bits\n self.PRIORITY_FLAG = 3 # Very Urgent (ANSI-136), Emergency (IS-95)\n self.DATA_CODING_ALPHABET = Alphabet.ALPHA_DEFAULT # SMS default alphabet\n self.DATA_CODING_MESSAGE_CLASS = MessageClass.CLASS1 # EM (Mobile Equipment (mobile memory), normal message\n\n # Required server settings\n try:\n self.SMPP_SERVER = self.get_and_parse_smpp_config(configurationAttributes, \"smpp_server\")\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SMPP_PORT = self.get_and_parse_smpp_config(configurationAttributes, \"smpp_port\", convert = True)\n except SmppAttributeError as e:\n print(e)\n\n if None in (self.SMPP_SERVER, self.SMPP_PORT):\n print(\"SMPP smpp_server and smpp_port is empty, will not enable SMPP service\")\n return False\n\n # Optional system_id and password for bind auth\n try:\n self.SYSTEM_ID = self.get_and_parse_smpp_config(configurationAttributes, \"system_id\", optional = True)\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.PASSWORD = self.get_and_parse_smpp_config(configurationAttributes, \"password\", optional = True)\n except SmppAttributeError as e:\n print(e)\n\n if None in (self.SYSTEM_ID, self.PASSWORD):\n print(\"SMPP Authentication disabled\")\n\n # From number and to number settings\n try:\n self.SRC_ADDR_TON = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr_ton\",\n _type = TypeOfNumber,\n optional = True,\n default_desc = self.SRC_ADDR_TON\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SRC_ADDR_NPI = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr_npi\",\n _type = NumberingPlanIndicator,\n optional = True,\n default_desc = self.SRC_ADDR_NPI\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SRC_ADDR = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr\",\n optional = True,\n default_desc = self.SRC_ADDR\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DST_ADDR_TON = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"dest_addr_ton\",\n _type = TypeOfNumber,\n optional = True,\n default_desc = self.DST_ADDR_TON\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DST_ADDR_NPI = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"dest_addr_npi\",\n _type = NumberingPlanIndicator,\n optional = True,\n default_desc = self.DST_ADDR_NPI\n )\n except SmppAttributeError as e:\n print(e)\n\n # Priority flag and data coding, don't touch these unless you know what your doing...\n try:\n self.PRIORITY_FLAG = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"priority_flag\",\n convert = True,\n optional = True,\n default_desc = \"3 (Very Urgent, Emergency)\"\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DATA_CODING_ALPHABET = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"data_coding_alphabet\",\n _type = Alphabet,\n optional = True,\n default_desc = self.DATA_CODING_ALPHABET\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DATA_CODING_MESSAGE_CLASS = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"data_coding_alphabet\",\n _type = MessageClass,\n optional = True,\n default_desc = self.DATA_CODING_MESSAGE_CLASS\n )\n except SmppAttributeError as e:\n print(e)\n\n print(\"SMPP Initialized successfully\")\n return True\n\n def destroy(self, configurationAttributes):\n print(\"SMPP Destroy\")\n print(\"SMPP Destroyed successfully\")\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n\n print(\"SMPP form_response_passcode: {}\".format(str(form_passcode)))\n\n if step == 1:\n print(\"SMPP Step 1 Password Authentication\")\n credentials = self.identity.getCredentials()\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print(\"SMPP Error retrieving user {} from LDAP\".format(user_name))\n return False\n\n mobile_number = None\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if not mobile_number:\n mobile_number = foundUser.getAttribute(\"mobile\")\n if not mobile_number:\n mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if not mobile_number:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print(\"SMPP Error finding mobile number for user '{}'\".format(user_name))\n return False\n except Exception as e:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print(\"SMPP Error finding mobile number for {}: {}\".format(user_name, e))\n return False\n\n # Generate Random six digit code\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n\n self.identity.setWorkingParameter(\"mobile_number\", mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\", mobile_number)\n if not self.sendMessage(mobile_number, str(code)):\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n return False\n\n return True\n elif step == 2:\n # Retrieve the session attribute\n print(\"SMPP Step 2 SMS/OTP Authentication\")\n code = session_attributes.get(\"code\")\n print(\"SMPP Code: {}\".format(str(code)))\n\n if code is None:\n print(\"SMPP Failed to find previously sent code\")\n return False\n\n if form_passcode is None:\n print(\"SMPP Passcode is empty\")\n return False\n\n if len(form_passcode) != 6:\n print(\"SMPP Passcode from response is not 6 digits: {}\".format(form_passcode))\n return False\n\n if form_passcode == code:\n print(\"SMPP SUCCESS! User entered the same code!\")\n return True\n\n print(\"SMPP failed, user entered the wrong code! {} != {}\".format(form_passcode, code))\n facesMessages.add(facesMessage.SEVERITY_ERROR, \"Incorrect SMS code, please try again.\")\n return False\n\n print(\"SMPP ERROR: step param not found or != (1|2)\")\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print(\"SMPP Prepare for Step 1\")\n return True\n elif step == 2:\n print(\"SMPP Prepare for Step 2\")\n return True\n\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def sendMessage(self, number, code):\n status = False\n session = SMPPSession()\n session.setTransactionTimer(10000)\n\n # We only handle international destination number reformatting.\n # All others may vary by configuration decisions taken on SMPP\n # server side which we have no clue about.\n if self.DST_ADDR_TON == TypeOfNumber.INTERNATIONAL and number.startswith(\"+\"):\n number = number[1:]\n\n try:\n print(\"SMPP Connecting\")\n reference_id = session.connectAndBind(\n self.SMPP_SERVER,\n self.SMPP_PORT,\n BindParameter(\n BindType.BIND_TX,\n self.SYSTEM_ID,\n self.PASSWORD,\n None,\n self.SRC_ADDR_TON,\n self.SRC_ADDR_NPI,\n None\n )\n )\n print(\"SMPP Connected to server with system id {}\".format(reference_id))\n\n try:\n message_id = session.submitShortMessage(\n \"CMT\",\n self.SRC_ADDR_TON,\n self.SRC_ADDR_NPI,\n self.SRC_ADDR,\n self.DST_ADDR_TON,\n self.DST_ADDR_NPI,\n number,\n ESMClass(),\n 0,\n self.PRIORITY_FLAG,\n self.TIME_FORMATTER.format(Date()),\n None,\n RegisteredDelivery(SMSCDeliveryReceipt.DEFAULT),\n 0,\n GeneralDataCoding(\n self.DATA_CODING_ALPHABET,\n self.DATA_CODING_MESSAGE_CLASS,\n False\n ),\n 0,\n code\n )\n print(\"SMPP Message '{}' sent to #{} with message id {}\".format(code, number, message_id))\n status = True\n except PDUException as e:\n print(\"SMPP Invalid PDU parameter: {}\".format(e))\n except ResponseTimeoutException as e:\n print(\"SMPP Response timeout: {}\".format(e))\n except InvalidResponseException as e:\n print(\"SMPP Receive invalid response: {}\".format(e))\n except NegativeResponseException as e:\n print(\"SMPP Receive negative response: {}\".format(e))\n except IOException as e:\n print(\"SMPP IO error occured: {}\".format(e))\n finally:\n session.unbindAndClose()\n except IOException as e:\n print(\"SMPP Failed connect and bind to host: {}\".format(e))\n\n return status\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "smpp", "modified": false, "configurationProperties": [ { "hide": false, "value1": "smpp_server", "description": "IP or FQDN of SMPP server" }, { "hide": false, "value1": "smpp_port", "description": "TCP port of the SMPP server" }, { "hide": false, "value1": "system_id", "description": "Use if SMPP server requires authentication" }, { "hide": false, "value1": "password", "description": "Use if SMPP server requires authentication" }, { "hide": false, "value1": "source_addr_ton", "description": "Type of number, eg ALPHANUMERIC, INTERNATIONAL" }, { "hide": false, "value1": "source_addr", "description": "From number/name" } ], "baseDn": "inum=09A0-93D7,ou=scripts,o=jans" }, { "internal": false, "level": 30, "programmingLanguage": "python", "description": "Cert authentication module", "locationType": "ldap", "dn": "inum=2124-0CF1,ou=scripts,o=jans", "inum": "2124-0CF1", "script": "#\n# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom jakarta.faces.context import FacesContext\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.as.common.service.common import EncryptionService\nfrom java.util import Arrays\nfrom io.jans.as.common.cert.fingerprint import FingerprintHelper\nfrom io.jans.as.common.cert.validation import GenericCertificateVerifier\nfrom io.jans.as.common.cert.validation import PathCertificateVerifier\nfrom io.jans.as.common.cert.validation import OCSPCertificateVerifier\nfrom io.jans.as.common.cert.validation import CRLCertificateVerifier\nfrom io.jans.as.common.cert.validation.model import ValidationStatus\nfrom io.jans.as.server.util import CertUtil\nfrom io.jans.as.model.util import CertUtils\nfrom io.jans.as.server.service.net import HttpService\nfrom org.apache.http.params import CoreConnectionPNames\n\nimport sys\nimport base64\nimport urllib\n\nimport java\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Cert. Initialization\"\n\n if not (configurationAttributes.containsKey(\"chain_cert_file_path\")):\n print \"Cert. Initialization. Property chain_cert_file_path is mandatory\"\n return False\n\n if not (configurationAttributes.containsKey(\"map_user_cert\")):\n print \"Cert. Initialization. Property map_user_cert is mandatory\"\n return False\n\n chain_cert_file_path = configurationAttributes.get(\"chain_cert_file_path\").getValue2()\n\n self.chain_certs = CertUtil.loadX509CertificateFromFile(chain_cert_file_path)\n if self.chain_certs == None:\n print \"Cert. Initialization. Failed to load chain certificates from '%s'\" % chain_cert_file_path\n return False\n\n print \"Cert. Initialization. Loaded '%d' chain certificates\" % self.chain_certs.size()\n \n crl_max_response_size = 5 * 1024 * 1024 # 10Mb\n if configurationAttributes.containsKey(\"crl_max_response_size\"):\n crl_max_response_size = StringHelper.toInteger(configurationAttributes.get(\"crl_max_response_size\").getValue2(), crl_max_response_size)\n print \"Cert. Initialization. CRL max response size is '%d'\" % crl_max_response_size\n\n # Define array to order methods correctly\n self.validator_types = [ 'generic', 'path', 'ocsp', 'crl']\n self.validators = { 'generic' : [GenericCertificateVerifier(), False],\n 'path' : [PathCertificateVerifier(False), False],\n 'ocsp' : [OCSPCertificateVerifier(), False],\n 'crl' : [CRLCertificateVerifier(crl_max_response_size), False] }\n\n for type in self.validator_types:\n validator_param_name = \"use_%s_validator\" % type\n if configurationAttributes.containsKey(validator_param_name):\n validator_status = StringHelper.toBoolean(configurationAttributes.get(validator_param_name).getValue2(), False)\n self.validators[type][1] = validator_status\n\n print \"Cert. Initialization. Validation method '%s' status: '%s'\" % (type, self.validators[type][1])\n\n self.map_user_cert = StringHelper.toBoolean(configurationAttributes.get(\"map_user_cert\").getValue2(), False)\n print \"Cert. Initialization. map_user_cert: '%s'\" % self.map_user_cert\n\n self.enabled_recaptcha = self.initRecaptcha(configurationAttributes)\n print \"Cert. Initialization. enabled_recaptcha: '%s'\" % self.enabled_recaptcha\n\n print \"Cert. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Cert. Destroy\"\n\n for type in self.validator_types:\n self.validators[type][0].destroy()\n\n print \"Cert. Destroyed successfully\"\n\n return True\n\n def getApiVersion(self):\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n print \"Cert. Authenticate for step 1\"\n login_button = ServerUtil.getFirstValue(requestParameters, \"loginForm:loginButton\")\n if StringHelper.isEmpty(login_button):\n print \"Cert. Authenticate for step 1. Form were submitted incorrectly\"\n return False\n if self.enabled_recaptcha:\n print \"Cert. Authenticate for step 1. Validating recaptcha response\"\n recaptcha_response = ServerUtil.getFirstValue(requestParameters, \"g-recaptcha-response\")\n\n recaptcha_result = self.validateRecaptcha(recaptcha_response)\n print \"Cert. Authenticate for step 1. recaptcha_result: '%s'\" % recaptcha_result\n \n return recaptcha_result\n\n return True\n elif step == 2:\n print \"Cert. Authenticate for step 2\"\n\n # Validate if user selected certificate\n cert_x509 = self.getSessionAttribute(\"cert_x509\")\n if cert_x509 == None:\n print \"Cert. Authenticate for step 2. User not selected any certs\"\n identity.setWorkingParameter(\"cert_selected\", False)\n \n # Return True to inform user how to reset workflow\n return True\n else:\n identity.setWorkingParameter(\"cert_selected\", True)\n x509Certificate = self.certFromString(cert_x509)\n\n subjectX500Principal = x509Certificate.getSubjectX500Principal()\n print \"Cert. Authenticate for step 2. User selected certificate with DN '%s'\" % subjectX500Principal\n \n # Validate certificates which user selected\n valid = self.validateCertificate(x509Certificate)\n if not valid:\n print \"Cert. Authenticate for step 2. Certificate DN '%s' is not valid\" % subjectX500Principal\n identity.setWorkingParameter(\"cert_valid\", False)\n \n # Return True to inform user how to reset workflow\n return True\n\n identity.setWorkingParameter(\"cert_valid\", True)\n \n # Calculate certificate fingerprint\n x509CertificateFingerprint = self.calculateCertificateFingerprint(x509Certificate)\n identity.setWorkingParameter(\"cert_x509_fingerprint\", x509CertificateFingerprint)\n print \"Cert. Authenticate for step 2. Fingerprint is '%s' of certificate with DN '%s'\" % (x509CertificateFingerprint, subjectX500Principal)\n \n # Attempt to find user by certificate fingerprint\n cert_user_external_uid = \"cert:%s\" % x509CertificateFingerprint\n print \"Cert. Authenticate for step 2. Attempting to find user by jansExtUid attribute value %s\" % cert_user_external_uid\n\n find_user_by_external_uid = userService.getUserByAttribute(\"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n print \"Cert. Authenticate for step 2. Failed to find user\"\n \n if self.map_user_cert:\n print \"Cert. Authenticate for step 2. Storing cert_user_external_uid for step 3\"\n identity.setWorkingParameter(\"cert_user_external_uid\", cert_user_external_uid)\n return True\n else:\n print \"Cert. Authenticate for step 2. Mapping cert to user account is not allowed\"\n identity.setWorkingParameter(\"cert_count_login_steps\", 2)\n return False\n\n foundUserName = find_user_by_external_uid.getUserId()\n print \"Cert. Authenticate for step 2. foundUserName: \" + foundUserName\n\n logged_in = False\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(foundUserName)\n \n print \"Cert. Authenticate for step 2. Setting count steps to 2\"\n identity.setWorkingParameter(\"cert_count_login_steps\", 2)\n\n return logged_in\n elif step == 3:\n print \"Cert. Authenticate for step 3\"\n\n cert_user_external_uid = self.getSessionAttribute(\"cert_user_external_uid\")\n if cert_user_external_uid == None:\n print \"Cert. Authenticate for step 3. cert_user_external_uid is empty\"\n return False\n\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return False\n\n # Double check just to make sure. We did checking in previous step\n # Check if there is user which has cert_user_external_uid\n # Avoid mapping user cert to more than one IDP account\n find_user_by_external_uid = userService.getUserByAttribute(\"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n # Add cert_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n print \"Cert. Authenticate for step 3. Failed to update current user\"\n return False\n\n return True\n \n return True\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n print \"Cert. Prepare for step %d\" % step\n identity = CdiUtil.bean(Identity)\n \n if step == 1:\n if self.enabled_recaptcha:\n identity.setWorkingParameter(\"recaptcha_site_key\", self.recaptcha_creds['site_key'])\n elif step == 2:\n # Store certificate in session\n facesContext = CdiUtil.bean(FacesContext)\n externalContext = facesContext.getExternalContext()\n request = externalContext.getRequest()\n\n # Try to get certificate from header X-ClientCert\n clientCertificate = externalContext.getRequestHeaderMap().get(\"X-ClientCert\")\n if clientCertificate != None:\n x509Certificate = self.certFromPemString(clientCertificate)\n identity.setWorkingParameter(\"cert_x509\", self.certToString(x509Certificate))\n print \"Cert. Prepare for step 2. Storing user certificate obtained from 'X-ClientCert' header\"\n return True\n\n # Try to get certificate from attribute jakarta.servlet.request.X509Certificate\n x509Certificates = request.getAttribute('jakarta.servlet.request.X509Certificate')\n if (x509Certificates != None) and (len(x509Certificates) > 0):\n identity.setWorkingParameter(\"cert_x509\", self.certToString(x509Certificates[0]))\n print \"Cert. Prepare for step 2. Storing user certificate obtained from 'jakarta.servlet.request.X509Certificate' attribute\"\n return True\n\n if step < 4:\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"cert_selected\", \"cert_valid\", \"cert_x509\", \"cert_x509_fingerprint\", \"cert_count_login_steps\", \"cert_user_external_uid\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n cert_count_login_steps = self.getSessionAttribute(\"cert_count_login_steps\")\n if cert_count_login_steps != None:\n return cert_count_login_steps\n else:\n return 3\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n return \"/auth/cert/login.xhtml\"\n if step == 2:\n return \"/auth/cert/cert-login.xhtml\"\n elif step == 3:\n cert_selected = self.getSessionAttribute(\"cert_selected\")\n if True != cert_selected:\n return \"/auth/cert/cert-not-selected.xhtml\"\n\n cert_valid = self.getSessionAttribute(\"cert_valid\")\n if True != cert_valid:\n return \"/auth/cert/cert-invalid.xhtml\"\n \n return \"/login.xhtml\"\n\n return \"\"\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def processBasicAuthentication(self, credentials):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if (find_user_by_uid == None):\n print \"Cert. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def getSessionAttribute(self, attribute_name):\n identity = CdiUtil.bean(Identity)\n\n # Try to get attribute value from Seam event context\n if identity.isSetWorkingParameter(attribute_name):\n return identity.getWorkingParameter(attribute_name)\n \n # Try to get attribute from persistent session\n session_id = identity.getSessionId()\n if session_id == None:\n return None\n\n session_attributes = session_id.getSessionAttributes()\n if session_attributes == None:\n return None\n\n if session_attributes.containsKey(attribute_name):\n return session_attributes.get(attribute_name)\n\n return None\n\n def calculateCertificateFingerprint(self, x509Certificate):\n print \"Cert. Calculate fingerprint for certificate DN '%s'\" % x509Certificate.getSubjectX500Principal()\n \n publicKey = x509Certificate.getPublicKey()\n \n # Use oxAuth implementation\n fingerprint = FingerprintHelper.getPublicKeySshFingerprint(publicKey)\n \n return fingerprint \n\n def validateCertificate(self, x509Certificate):\n subjectX500Principal = x509Certificate.getSubjectX500Principal()\n\n print \"Cert. Validating certificate with DN '%s'\" % subjectX500Principal\n \n validation_date = java.util.Date()\n\n for type in self.validator_types:\n if self.validators[type][1]:\n result = self.validators[type][0].validate(x509Certificate, self.chain_certs, validation_date)\n print \"Cert. Validate certificate: '%s'. Validation method '%s' result: '%s'\" % (subjectX500Principal, type, result)\n \n if (result.getValidity() != ValidationStatus.CertificateValidity.VALID):\n print \"Cert. Certificate: '%s' is invalid\" % subjectX500Principal\n return False\n \n return True\n\n def certToString(self, x509Certificate):\n if x509Certificate == None:\n return None\n return base64.b64encode(x509Certificate.getEncoded())\n\n def certFromString(self, x509CertificateEncoded):\n x509CertificateDecoded = base64.b64decode(x509CertificateEncoded)\n return CertUtils.x509CertificateFromBytes(x509CertificateDecoded)\n\n def certFromPemString(self, pemCertificate):\n x509CertificateEncoded = pemCertificate.replace(\"-----BEGIN CERTIFICATE-----\", \"\").replace(\"-----END CERTIFICATE-----\", \"\").strip()\n return self.certFromString(x509CertificateEncoded)\n\n def initRecaptcha(self, configurationAttributes):\n print \"Cert. Initialize recaptcha\"\n if not configurationAttributes.containsKey(\"credentials_file\"):\n return False\n\n cert_creds_file = configurationAttributes.get(\"credentials_file\").getValue2()\n\n # Load credentials from file\n f = open(cert_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n except:\n print \"Cert. Initialize recaptcha. Failed to load credentials from file: %s\" % cert_creds_file\n return False\n finally:\n f.close()\n \n try:\n recaptcha_creds = creds[\"recaptcha\"]\n except:\n print \"Cert. Initialize recaptcha. Invalid credentials file '%s' format:\" % cert_creds_file\n return False\n \n self.recaptcha_creds = None\n if recaptcha_creds[\"enabled\"]:\n print \"Cert. Initialize recaptcha. Recaptcha is enabled\"\n\n encryptionService = CdiUtil.bean(EncryptionService)\n\n site_key = recaptcha_creds[\"site_key\"]\n secret_key = recaptcha_creds[\"secret_key\"]\n\n try:\n site_key = encryptionService.decrypt(site_key)\n except:\n # Ignore exception. Value is not encrypted\n print \"Cert. Initialize recaptcha. Assuming that 'site_key' in not encrypted\"\n\n try:\n secret_key = encryptionService.decrypt(secret_key)\n except:\n # Ignore exception. Value is not encrypted\n print \"Cert. Initialize recaptcha. Assuming that 'secret_key' in not encrypted\"\n\n \n self.recaptcha_creds = { 'site_key' : site_key, \"secret_key\" : secret_key }\n print \"Cert. Initialize recaptcha. Recaptcha is configured correctly\"\n\n return True\n else:\n print \"Cert. Initialize recaptcha. Recaptcha is disabled\"\n\n return False\n\n def validateRecaptcha(self, recaptcha_response):\n print \"Cert. Validate recaptcha response\"\n\n facesContext = CdiUtil.bean(FacesContext)\n request = facesContext.getExternalContext().getRequest()\n\n remoteip = ServerUtil.getIpAddress(request)\n print \"Cert. Validate recaptcha response. remoteip: '%s'\" % remoteip\n\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n http_client_params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15 * 1000)\n \n recaptcha_validation_url = \"https://www.google.com/recaptcha/api/siteverify\"\n recaptcha_validation_request = urllib.urlencode({ \"secret\" : self.recaptcha_creds['secret_key'], \"response\" : recaptcha_response, \"remoteip\" : remoteip })\n recaptcha_validation_headers = { \"Content-type\" : \"application/x-www-form-urlencoded\", \"Accept\" : \"application/json\" }\n\n try:\n http_service_response = httpService.executePost(http_client, recaptcha_validation_url, None, recaptcha_validation_headers, recaptcha_validation_request)\n http_response = http_service_response.getHttpResponse()\n except:\n print \"Cert. Validate recaptcha response. Exception: \", sys.exc_info()[1]\n return False\n\n try:\n if not httpService.isResponseStastusCodeOk(http_response):\n print \"Cert. Validate recaptcha response. Get invalid response from validation server: \", str(http_response.getStatusLine().getStatusCode())\n httpService.consume(http_response)\n return False\n \n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes)\n httpService.consume(http_response)\n finally:\n http_service_response.closeConnection()\n\n if response_string == None:\n print \"Cert. Validate recaptcha response. Get empty response from validation server\"\n return False\n \n response = json.loads(response_string)\n \n return response[\"success\"]\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "cert", "modified": false, "configurationProperties": [ { "hide": false, "value2": "/etc/certs/chain_cert.pem", "value1": "chain_cert_file_path" }, { "hide": false, "value2": "/etc/certs/cert_creds.json", "value1": "credentials_file" }, { "hide": false, "value2": "true", "value1": "map_user_cert" }, { "hide": false, "value2": "true", "value1": "use_generic_validator" }, { "hide": false, "value2": "true", "value1": "use_path_validator" }, { "hide": false, "value2": "false", "value1": "use_ocsp_validator" }, { "hide": false, "value2": "false", "value1": "use_crl_validator" }, { "hide": false, "value2": "10485760", "value1": "crl_max_response_size" } ], "baseDn": "inum=2124-0CF1,ou=scripts,o=jans" }, { "internal": false, "level": 40, "programmingLanguage": "python", "description": "OTP Validation of passwords using Yubicloud authentication module", "locationType": "ldap", "dn": "inum=24FD-B96E,ou=scripts,o=jans", "inum": "24FD-B96E", "script": "# Janssen Project software is available under the Apache License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan, Arunmozhi\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper\n\nimport java\n\nimport urllib2\nimport urllib\nimport uuid\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Yubicloud. Initialization\"\n\n self.api_server = configurationAttributes.get(\"yubicloud_uri\").getValue2()\n self.api_key = configurationAttributes.get(\"yubicloud_api_key\").getValue2()\n self.client_id = configurationAttributes.get(\"yubicloud_id\").getValue2()\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Yubicloud. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Yubicloud. Authenticate for step 1\"\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n username = credentials.getUsername()\n otp = credentials.getPassword()\n\n # Validate otp length\n if len(otp) < 32 or len(otp) > 48:\n print \"Yubicloud. Invalid OTP length\"\n return False\n\n user_service = CdiUtil.bean(UserService)\n user = user_service.getUser(username)\n\n public_key = user.getAttribute('yubikeyId')\n\n # Match the user with the yubikey\n if public_key not in otp:\n print \"Yubicloud. Public Key not matching OTP\"\n return False\n\n data = \"\"\n try:\n nonce = str(uuid.uuid4()).replace(\"-\", \"\")\n params = urllib.urlencode({\"id\": self.client_id, \"otp\": otp, \"nonce\": nonce})\n url = \"https://\" + self.api_server + \"/wsapi/2.0/verify/?\" + params\n f = urllib2.urlopen(url)\n data = f.read()\n except Exception as e:\n print \"Yubicloud. Exception \", e\n\n if 'status=OK' in data:\n user_service.authenticate(username)\n print \"Yubicloud. Authentication Successful\"\n return True\n\n print \"Yubicloud. End of Step 1. Returning False.\"\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Yubicloud. Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "yubicloud", "modified": false, "configurationProperties": [ { "hide": false, "value2": "api.yubico.com", "value1": "yubicloud_uri" }, { "hide": false, "value1": "yubicloud_api_key" }, { "hide": false, "value1": "yubicloud_id" } ], "baseDn": "inum=24FD-B96E,ou=scripts,o=jans" }, { "internal": false, "level": 20, "programmingLanguage": "python", "description": "Basic (with user locking) authentication module", "locationType": "ldap", "dn": "inum=4BBE-C6A8,ou=scripts,o=jans", "inum": "4BBE-C6A8", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n# Author: Gasmyr Mougang\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.service import CacheService\nfrom io.jans.util import StringHelper\nfrom io.jans.orm.exception import AuthenticationException\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\nfrom java.time import LocalDateTime, Duration\nfrom java.time.format import DateTimeFormatter\n\nimport java\nimport datetime\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Basic (lock account). Initialization\"\n\n self.invalidLoginCountAttribute = \"jansCountInvalidLogin\"\n if configurationAttributes.containsKey(\"invalid_login_count_attribute\"):\n self.invalidLoginCountAttribute = configurationAttributes.get(\"invalid_login_count_attribute\").getValue2()\n else:\n print \"Basic (lock account). Initialization. Using default attribute\"\n\n self.maximumInvalidLoginAttemps = 3\n if configurationAttributes.containsKey(\"maximum_invalid_login_attemps\"):\n self.maximumInvalidLoginAttemps = StringHelper.toInteger(configurationAttributes.get(\"maximum_invalid_login_attemps\").getValue2())\n else:\n print \"Basic (lock account). Initialization. Using default number attempts\"\n\n self.lockExpirationTime = 180\n if configurationAttributes.containsKey(\"lock_expiration_time\"):\n self.lockExpirationTime = StringHelper.toInteger(configurationAttributes.get(\"lock_expiration_time\").getValue2())\n else:\n print \"Basic (lock account). Initialization. Using default lock expiration time\"\n\n\n print \"Basic (lock account). Initialized successfully. invalid_login_count_attribute: '%s', maximum_invalid_login_attemps: '%s', lock_expiration_time: '%s'\" % (self.invalidLoginCountAttribute, self.maximumInvalidLoginAttemps, self.lockExpirationTime)\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Basic (lock account). Destroy\"\n print \"Basic (lock account). Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n print \"Basic (lock account). Authenticate for step 1\"\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n cacheService = CdiUtil.bean(CacheService)\n userService = CdiUtil.bean(UserService)\n\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n try:\n logged_in = authenticationService.authenticate(user_name, user_password)\n except AuthenticationException:\n print \"Basic (lock account). Authenticate. Failed to authenticate user '%s'\" % user_name\n\n if logged_in:\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(0))\n else:\n countInvalidLoginArributeValue = self.getUserAttributeValue(user_name, self.invalidLoginCountAttribute)\n userSatus = self.getUserAttributeValue(user_name, \"jansStatus\")\n print \"Current user '%s' status is '%s'\" % ( user_name, userSatus )\n\n countInvalidLogin = StringHelper.toInteger(countInvalidLoginArributeValue, 0)\n\n if countInvalidLogin < self.maximumInvalidLoginAttemps:\n countInvalidLogin = countInvalidLogin + 1\n remainingAttempts = self.maximumInvalidLoginAttemps - countInvalidLogin\n\n print \"Remaining login count attempts '%s' for user '%s'\" % ( remainingAttempts, user_name )\n\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(countInvalidLogin))\n if remainingAttempts > 0 and userSatus == \"active\":\n facesMessages.add(FacesMessage.SEVERITY_INFO, StringHelper.toString(remainingAttempts)+\" more attempt(s) before account is LOCKED!\")\n\n if (countInvalidLogin >= self.maximumInvalidLoginAttemps) and ((userSatus == None) or (userSatus == \"active\")):\n print \"Basic (lock account). Locking '%s' for '%s' seconds\" % ( user_name, self.lockExpirationTime)\n self.lockUser(user_name)\n return False\n\n if (countInvalidLogin >= self.maximumInvalidLoginAttemps) and userSatus == \"inactive\":\n print \"Basic (lock account). User '%s' is locked. Checking if we can unlock him\" % user_name\n \n unlock_and_authenticate = False\n\n object_from_store = cacheService.get(None, \"lock_user_\" + user_name)\n if object_from_store == None:\n # Object in cache was expired. We need to unlock user\n print \"Basic (lock account). User locking details for user '%s' not exists\" % user_name\n unlock_and_authenticate = True\n else:\n # Analyze object from cache\n user_lock_details = json.loads(object_from_store)\n\n user_lock_details_locked = user_lock_details['locked']\n user_lock_details_created = user_lock_details['created']\n user_lock_details_created_date = LocalDateTime.parse(user_lock_details_created, DateTimeFormatter.ISO_LOCAL_DATE_TIME)\n user_lock_details_created_diff = Duration.between(user_lock_details_created_date, LocalDateTime.now()).getSeconds()\n print \"Basic (lock account). Get user '%s' locking details. locked: '%s', Created: '%s', Difference in seconds: '%s'\" % ( user_name, user_lock_details_locked, user_lock_details_created, user_lock_details_created_diff )\n\n if user_lock_details_locked and user_lock_details_created_diff >= self.lockExpirationTime:\n print \"Basic (lock account). Unlocking user '%s' after lock expiration\" % user_name\n unlock_and_authenticate = True\n\n if unlock_and_authenticate:\n self.unLockUser(user_name)\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(0))\n logged_in = authenticationService.authenticate(user_name, user_password)\n if not logged_in:\n # Update number of attempts \n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(1))\n if self.maximumInvalidLoginAttemps == 1:\n # Lock user if maximum count login attempts is 1 \n self.lockUser(user_name)\n return False\n\n\n return logged_in\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"Basic (lock account). Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def getUserAttributeValue(self, user_name, attribute_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n\n find_user_by_uid = userService.getUser(user_name, attribute_name)\n if find_user_by_uid == None:\n return None\n\n custom_attribute_value = userService.getCustomAttribute(find_user_by_uid, attribute_name)\n if custom_attribute_value == None:\n return None\n \n attribute_value = custom_attribute_value.getValue()\n\n print \"Basic (lock account). Get user attribute. User's '%s' attribute '%s' value is '%s'\" % (user_name, attribute_name, attribute_value)\n\n return attribute_value\n\n def setUserAttributeValue(self, user_name, attribute_name, attribute_value):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n\n find_user_by_uid = userService.getUser(user_name)\n if find_user_by_uid == None:\n return None\n \n userService.setCustomAttribute(find_user_by_uid, attribute_name, attribute_value)\n updated_user = userService.updateUser(find_user_by_uid)\n\n print \"Basic (lock account). Set user attribute. User's '%s' attribute '%s' value is '%s'\" % (user_name, attribute_name, attribute_value)\n\n return updated_user\n\n def lockUser(self, user_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n cacheService= CdiUtil.bean(CacheService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n find_user_by_uid = userService.getUser(user_name)\n if (find_user_by_uid == None):\n return None\n\n status_attribute_value = userService.getCustomAttribute(find_user_by_uid, \"gluuStatus\")\n if status_attribute_value != None:\n user_status = status_attribute_value.getValue()\n if StringHelper.equals(user_status, \"inactive\"):\n print \"Basic (lock account). Lock user. User '%s' locked already\" % user_name\n return\n \n userService.setCustomAttribute(find_user_by_uid, \"gluuStatus\", \"inactive\")\n updated_user = userService.updateUser(find_user_by_uid)\n\n object_to_store = json.dumps({'locked': True, 'created': LocalDateTime.now().toString()}, separators=(',',':'))\n\n cacheService.put(StringHelper.toString(self.lockExpirationTime), \"lock_user_\"+user_name, object_to_store);\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Your account is locked. Please try again after \" + StringHelper.toString(self.lockExpirationTime) + \" secs\")\n\n print \"Basic (lock account). Lock user. User '%s' locked\" % user_name\n\n def unLockUser(self, user_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n cacheService= CdiUtil.bean(CacheService)\n\n find_user_by_uid = userService.getUser(user_name)\n if (find_user_by_uid == None):\n return None\n\n object_to_store = json.dumps({'locked': False, 'created': LocalDateTime.now().toString()}, separators=(',',':'))\n cacheService.put(StringHelper.toString(self.lockExpirationTime), \"lock_user_\"+user_name, object_to_store);\n\n userService.setCustomAttribute(find_user_by_uid, \"jansStatus\", \"active\")\n userService.setCustomAttribute(find_user_by_uid, self.invalidLoginCountAttribute, None)\n updated_user = userService.updateUser(find_user_by_uid)\n\n\n print \"Basic (lock account). Lock user. User '%s' unlocked\" % user_name\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "basic_lock", "modified": false, "configurationProperties": [ { "hide": false, "value2": "oxCountInvalidLogin", "value1": "invalid_login_count_attribute" }, { "hide": false, "value2": "3", "value1": "maximum_invalid_login_attemps" }, { "hide": false, "value2": "120", "value1": "lock_expiration_time" } ], "baseDn": "inum=4BBE-C6A8,ou=scripts,o=jans" }, { "internal": false, "level": 40, "programmingLanguage": "python", "description": "HOTP/TOPT authentication module", "locationType": "ldap", "dn": "inum=5018-D4BF,ou=scripts,o=jans", "inum": "5018-D4BF", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\n# Requires the following custom properties and values:\n# otp_type: totp/hotp\n# issuer: Janssen Inc\n# otp_conf_file: /etc/certs/otp_configuration.json\n#\n# These are non mandatory custom properties and values:\n# label: Janssen OTP\n# qr_options: { width: 400, height: 400 }\n# registration_uri: https://ce-dev.jans.org/identity/register\n\nimport jarray\nimport json\nimport sys\nfrom com.google.common.io import BaseEncoding\nfrom com.lochbridge.oath.otp import HOTP\nfrom com.lochbridge.oath.otp import HOTPValidator\nfrom com.lochbridge.oath.otp import HmacShaAlgorithm\nfrom com.lochbridge.oath.otp import TOTP\nfrom com.lochbridge.oath.otp.keyprovisioning import OTPAuthURIBuilder\nfrom com.lochbridge.oath.otp.keyprovisioning import OTPKey\nfrom com.lochbridge.oath.otp.keyprovisioning.OTPKey import OTPType\nfrom java.security import SecureRandom\nfrom java.util import Arrays\nfrom java.util.concurrent import TimeUnit\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"OTP. Initialization\"\n\n if not configurationAttributes.containsKey(\"otp_type\"):\n print \"OTP. Initialization. Property otp_type is mandatory\"\n return False\n self.otpType = configurationAttributes.get(\"otp_type\").getValue2()\n\n if not self.otpType in [\"hotp\", \"totp\"]:\n print \"OTP. Initialization. Property value otp_type is invalid\"\n return False\n\n if not configurationAttributes.containsKey(\"issuer\"):\n print \"OTP. Initialization. Property issuer is mandatory\"\n return False\n self.otpIssuer = configurationAttributes.get(\"issuer\").getValue2()\n\n self.customLabel = None\n if configurationAttributes.containsKey(\"label\"):\n self.customLabel = configurationAttributes.get(\"label\").getValue2()\n\n self.customQrOptions = {}\n if configurationAttributes.containsKey(\"qr_options\"):\n self.customQrOptions = configurationAttributes.get(\"qr_options\").getValue2()\n\n self.registrationUri = None\n if configurationAttributes.containsKey(\"registration_uri\"):\n self.registrationUri = configurationAttributes.get(\"registration_uri\").getValue2()\n\n validOtpConfiguration = self.loadOtpConfiguration(configurationAttributes)\n if not validOtpConfiguration:\n return False\n\n print \"OTP. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"OTP. Destroy\"\n print \"OTP. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n print \"getNextStep Invoked\"\n # If user not pass current step change step to previous\n identity = CdiUtil.bean(Identity)\n retry_current_step = identity.getWorkingParameter(\"retry_current_step\")\n if retry_current_step:\n print \"OTP. Get next step. Retrying current step %s\" % step\n # Remove old QR code\n #identity.setWorkingParameter(\"super_gluu_request\", \"timeout\")\n resultStep = step\n return resultStep\n return -1\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n self.setRequestScopedParameters(identity)\n\n if step == 1:\n print \"OTP. Authenticate for step 1\"\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n otp_auth_method = \"authenticate\"\n # Uncomment this block if you need to allow user second OTP registration\n #enrollment_mode = ServerUtil.getFirstValue(requestParameters, \"loginForm:registerButton\")\n #if StringHelper.isNotEmpty(enrollment_mode):\n # otp_auth_method = \"enroll\"\n\n if otp_auth_method == \"authenticate\":\n user_enrollments = self.findEnrollments(authenticated_user.getUserId())\n if len(user_enrollments) == 0:\n otp_auth_method = \"enroll\"\n print \"OTP. Authenticate for step 1. There is no OTP enrollment for user '%s'. Changing otp_auth_method to '%s'\" % (authenticated_user.getUserId(), otp_auth_method)\n\n if otp_auth_method == \"enroll\":\n print \"OTP. Authenticate for step 1. Setting count steps: '%s'\" % 3\n identity.setWorkingParameter(\"otp_count_login_steps\", 3)\n\n print \"OTP. Authenticate for step 1. otp_auth_method: '%s'\" % otp_auth_method\n identity.setWorkingParameter(\"otp_auth_method\", otp_auth_method)\n\n return True\n elif step == 2:\n print \"OTP. Authenticate for step 2\"\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Authenticate for step 2. Failed to determine user name\"\n return False\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n # Restore state from session\n identity.setWorkingParameter(\"retry_current_step\", False)\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if otp_auth_method == 'enroll':\n auth_result = ServerUtil.getFirstValue(requestParameters, \"auth_result\")\n if not StringHelper.isEmpty(auth_result):\n # defect fix #1225 - Retry the step, show QR code again\n if auth_result == 'timeout':\n\t\t\t\t\t\tprint \"OTP. QR-code timeout. Authenticate for step %s. Reinitializing current step\" % step\n\t\t\t\t\t\tidentity.setWorkingParameter(\"retry_current_step\", True)\n\t\t\t\t\t\treturn True\n\n print \"OTP. Authenticate for step 2. User not enrolled OTP\"\n return False\n\n print \"OTP. Authenticate for step 2. Skipping this step during enrollment\"\n return True\n\n otp_auth_result = self.processOtpAuthentication(requestParameters, user.getUserId(), identity, otp_auth_method)\n print \"OTP. Authenticate for step 2. OTP authentication result: '%s'\" % otp_auth_result\n\n return otp_auth_result\n elif step == 3:\n print \"OTP. Authenticate for step 3\"\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Authenticate for step 2. Failed to determine user name\"\n return False\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n # Restore state from session\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if otp_auth_method != 'enroll':\n return False\n\n otp_auth_result = self.processOtpAuthentication(requestParameters, user.getUserId(), identity, otp_auth_method)\n print \"OTP. Authenticate for step 3. OTP authentication result: '%s'\" % otp_auth_result\n\n return otp_auth_result\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n self.setRequestScopedParameters(identity)\n\n if step == 1:\n print \"OTP. Prepare for step 1\"\n\n return True\n elif step == 2:\n print \"OTP. Prepare for step 2\"\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Prepare for step 2. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Prepare for step 2. Failed to load user enty\"\n return False\n\n if self.otpType == \"hotp\":\n otp_secret_key = self.generateSecretHotpKey()\n otp_enrollment_request = self.generateHotpSecretKeyUri(otp_secret_key, self.otpIssuer, user.getAttribute(\"displayName\"))\n elif self.otpType == \"totp\":\n otp_secret_key = self.generateSecretTotpKey()\n otp_enrollment_request = self.generateTotpSecretKeyUri(otp_secret_key, self.otpIssuer, user.getAttribute(\"displayName\"))\n else:\n print \"OTP. Prepare for step 2. Unknown OTP type: '%s'\" % self.otpType\n return False\n\n print \"OTP. Prepare for step 2. Prepared enrollment request for user: '%s'\" % user.getUserId()\n identity.setWorkingParameter(\"otp_secret_key\", self.toBase64Url(otp_secret_key))\n identity.setWorkingParameter(\"otp_enrollment_request\", otp_enrollment_request)\n\n return True\n elif step == 3:\n print \"OTP. Prepare for step 3\"\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Prepare for step 3. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n return True\n\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"otp_auth_method\", \"otp_count_login_steps\", \"otp_secret_key\", \"otp_enrollment_request\",\"retry_current_step\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n identity = CdiUtil.bean(Identity)\n\n if identity.isSetWorkingParameter(\"otp_count_login_steps\"):\n return StringHelper.toInteger(\"%s\" % identity.getWorkingParameter(\"otp_count_login_steps\"))\n else:\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n identity = CdiUtil.bean(Identity)\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Gep page for step 2. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n return \"/auth/otp/enroll.xhtml\"\n else:\n return \"/auth/otp/otplogin.xhtml\"\n elif step == 3:\n return \"/auth/otp/otplogin.xhtml\"\n\n return \"\"\n\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def setRequestScopedParameters(self, identity):\n if self.registrationUri != None:\n identity.setWorkingParameter(\"external_registration_uri\", self.registrationUri)\n\n if self.customLabel != None:\n identity.setWorkingParameter(\"qr_label\", self.customLabel)\n\n identity.setWorkingParameter(\"qr_options\", self.customQrOptions)\n\n def loadOtpConfiguration(self, configurationAttributes):\n print \"OTP. Load OTP configuration\"\n if not configurationAttributes.containsKey(\"otp_conf_file\"):\n return False\n\n otp_conf_file = configurationAttributes.get(\"otp_conf_file\").getValue2()\n\n # Load configuration from file\n f = open(otp_conf_file, 'r')\n try:\n otpConfiguration = json.loads(f.read())\n except:\n print \"OTP. Load OTP configuration. Failed to load configuration from file:\", otp_conf_file\n return False\n finally:\n f.close()\n\n # Check configuration file settings\n try:\n self.hotpConfiguration = otpConfiguration[\"hotp\"]\n self.totpConfiguration = otpConfiguration[\"totp\"]\n \n hmacShaAlgorithm = self.totpConfiguration[\"hmacShaAlgorithm\"]\n hmacShaAlgorithmType = None\n\n if StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha1\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_1\n elif StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha256\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_256\n elif StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha512\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_512\n else:\n print \"OTP. Load OTP configuration. Invalid TOTP HMAC SHA algorithm: '%s'\" % hmacShaAlgorithm\n \n self.totpConfiguration[\"hmacShaAlgorithmType\"] = hmacShaAlgorithmType\n except:\n print \"OTP. Load OTP configuration. Invalid configuration file '%s' format. Exception: '%s'\" % (otp_conf_file, sys.exc_info()[1])\n return False\n \n\n return True\n\n def processBasicAuthentication(self, credentials):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if find_user_by_uid == None:\n print \"OTP. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def findEnrollments(self, user_name, skipPrefix = True):\n result = []\n\n userService = CdiUtil.bean(UserService)\n user = userService.getUser(user_name, \"jansExtUid\")\n if user == None:\n print \"OTP. Find enrollments. Failed to find user\"\n return result\n \n user_custom_ext_attribute = userService.getCustomAttribute(user, \"jansExtUid\")\n if user_custom_ext_attribute == None:\n return result\n\n otp_prefix = \"%s:\" % self.otpType\n \n otp_prefix_length = len(otp_prefix) \n for user_external_uid in user_custom_ext_attribute.getValues():\n index = user_external_uid.find(otp_prefix)\n if index != -1:\n if skipPrefix:\n enrollment_uid = user_external_uid[otp_prefix_length:]\n else:\n enrollment_uid = user_external_uid\n\n result.append(enrollment_uid)\n \n return result\n\n def validateSessionId(self, identity):\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"OTP. Validate session id. Failed to determine session_id\"\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if not otp_auth_method in ['enroll', 'authenticate']:\n print \"OTP. Validate session id. Failed to authenticate user. otp_auth_method: '%s'\" % otp_auth_method\n return False\n\n return True\n\n def processOtpAuthentication(self, requestParameters, user_name, identity, otp_auth_method):\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n userService = CdiUtil.bean(UserService)\n\n otpCode = ServerUtil.getFirstValue(requestParameters, \"loginForm:otpCode\")\n if StringHelper.isEmpty(otpCode):\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to authenticate. OTP code is empty\")\n print \"OTP. Process OTP authentication. otpCode is empty\"\n\n return False\n \n if otp_auth_method == \"enroll\":\n # Get key from session\n otp_secret_key_encoded = identity.getWorkingParameter(\"otp_secret_key\")\n if otp_secret_key_encoded == None:\n print \"OTP. Process OTP authentication. OTP secret key is invalid\"\n return False\n \n otp_secret_key = self.fromBase64Url(otp_secret_key_encoded)\n\n if self.otpType == \"hotp\":\n validation_result = self.validateHotpKey(otp_secret_key, 1, otpCode)\n \n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process HOTP authentication during enrollment. otpCode is valid\"\n # Store HOTP Secret Key and moving factor in user entry\n otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, validation_result[\"movingFactor\"] )\n\n # Add otp_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n\n print \"OTP. Process HOTP authentication during enrollment. Failed to update user entry\"\n elif self.otpType == \"totp\":\n validation_result = self.validateTotpKey(otp_secret_key, otpCode,user_name)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process TOTP authentication during enrollment. otpCode is valid\"\n # Store TOTP Secret Key and moving factor in user entry\n otp_user_external_uid = \"totp:%s\" % otp_secret_key_encoded\n\n # Add otp_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n\n print \"OTP. Process TOTP authentication during enrollment. Failed to update user entry\"\n elif otp_auth_method == \"authenticate\":\n user_enrollments = self.findEnrollments(user_name)\n\n if len(user_enrollments) == 0:\n print \"OTP. Process OTP authentication. There is no OTP enrollment for user '%s'\" % user_name\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"There is no valid OTP user enrollments\")\n return False\n\n if self.otpType == \"hotp\":\n for user_enrollment in user_enrollments:\n user_enrollment_data = user_enrollment.split(\";\")\n otp_secret_key_encoded = user_enrollment_data[0]\n\n # Get current moving factor from user entry\n moving_factor = StringHelper.toInteger(user_enrollment_data[1])\n otp_secret_key = self.fromBase64Url(otp_secret_key_encoded)\n\n # Validate TOTP\n validation_result = self.validateHotpKey(otp_secret_key, moving_factor, otpCode)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process HOTP authentication during authentication. otpCode is valid\"\n otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, moving_factor )\n new_otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, validation_result[\"movingFactor\"] )\n \n # Update moving factor in user entry\n find_user_by_external_uid = userService.replaceUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, new_otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n \n print \"OTP. Process HOTP authentication during authentication. Failed to update user entry\"\n elif self.otpType == \"totp\":\n for user_enrollment in user_enrollments:\n otp_secret_key = self.fromBase64Url(user_enrollment)\n\n # Validate TOTP\n validation_result = self.validateTotpKey(otp_secret_key, otpCode, user_name)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process TOTP authentication during authentication. otpCode is valid\"\n return True\n\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to authenticate. OTP code is invalid\")\n print \"OTP. Process OTP authentication. OTP code is invalid\"\n\n return False\n\n # Shared HOTP/TOTP methods\n def generateSecretKey(self, keyLength):\n bytes = jarray.zeros(keyLength, \"b\")\n secureRandom = SecureRandom()\n secureRandom.nextBytes(bytes)\n \n return bytes\n \n # HOTP methods\n def generateSecretHotpKey(self):\n keyLength = self.hotpConfiguration[\"keyLength\"]\n \n return self.generateSecretKey(keyLength)\n\n def generateHotpKey(self, secretKey, movingFactor):\n digits = self.hotpConfiguration[\"digits\"]\n\n hotp = HOTP.key(secretKey).digits(digits).movingFactor(movingFactor).build()\n \n return hotp.value()\n\n def validateHotpKey(self, secretKey, movingFactor, totpKey):\n lookAheadWindow = self.hotpConfiguration[\"lookAheadWindow\"]\n digits = self.hotpConfiguration[\"digits\"]\n\n htopValidationResult = HOTPValidator.lookAheadWindow(lookAheadWindow).validate(secretKey, movingFactor, digits, totpKey)\n if htopValidationResult.isValid():\n return { \"result\": True, \"movingFactor\": htopValidationResult.getNewMovingFactor() }\n\n return { \"result\": False, \"movingFactor\": None }\n\n def generateHotpSecretKeyUri(self, secretKey, issuer, userDisplayName):\n digits = self.hotpConfiguration[\"digits\"]\n\n secretKeyBase32 = self.toBase32(secretKey)\n otpKey = OTPKey(secretKeyBase32, OTPType.HOTP)\n label = issuer + \" %s\" % userDisplayName\n\n otpAuthURI = OTPAuthURIBuilder.fromKey(otpKey).label(label).issuer(issuer).digits(digits).build()\n\n return otpAuthURI.toUriString()\n\n # TOTP methods\n def generateSecretTotpKey(self):\n keyLength = self.totpConfiguration[\"keyLength\"]\n \n return self.generateSecretKey(keyLength)\n\n def generateTotpKey(self, secretKey):\n digits = self.totpConfiguration[\"digits\"]\n timeStep = self.totpConfiguration[\"timeStep\"]\n hmacShaAlgorithmType = self.totpConfiguration[\"hmacShaAlgorithmType\"]\n\n totp = TOTP.key(secretKey).digits(digits).timeStep(TimeUnit.SECONDS.toMillis(timeStep)).hmacSha(hmacShaAlgorithmType).build()\n \n return totp.value()\n\n def validateTotpKey(self, secretKey, totpKey, user_name):\n localTotpKey = self.generateTotpKey(secretKey)\n cachedOTP = self.getCachedOTP(user_name)\n\n if StringHelper.equals(localTotpKey, totpKey) and not StringHelper.equals(localTotpKey, cachedOTP):\n userService = CdiUtil.bean(UserService)\n if cachedOTP is None:\n userService.addUserAttribute(user_name, \"jansOTPCache\",localTotpKey)\n else :\n userService.replaceUserAttribute(user_name, \"jansOTPCache\", cachedOTP, localTotpKey)\n print \"OTP. Caching OTP: '%s'\" % localTotpKey\n return { \"result\": True }\n return { \"result\": False }\n\t\n def getCachedOTP(self, user_name):\n userService = CdiUtil.bean(UserService)\n user = userService.getUser(user_name, \"jansOTPCache\")\n if user is None:\n print \"OTP. Get Cached OTP. Failed to find OTP\"\n return None\n customAttribute = userService.getCustomAttribute(user, \"jansOTPCache\")\n \n if customAttribute is None:\n print \"OTP. Custom attribute is null\"\n return None\n user_cached_OTP = customAttribute.getValue()\n if user_cached_OTP is None:\n print \"OTP. no OTP is present in LDAP\"\n return None\n \n print \"OTP.Cached OTP: '%s'\" % user_cached_OTP\n return user_cached_OTP\n \n def generateTotpSecretKeyUri(self, secretKey, issuer, userDisplayName):\n digits = self.totpConfiguration[\"digits\"]\n timeStep = self.totpConfiguration[\"timeStep\"]\n\n secretKeyBase32 = self.toBase32(secretKey)\n otpKey = OTPKey(secretKeyBase32, OTPType.TOTP)\n label = issuer + \" %s\" % userDisplayName\n\n otpAuthURI = OTPAuthURIBuilder.fromKey(otpKey).label(label).issuer(issuer).digits(digits).timeStep(TimeUnit.SECONDS.toMillis(timeStep)).build()\n\n return otpAuthURI.toUriString()\n\n # Utility methods\n def toBase32(self, bytes):\n return BaseEncoding.base32().omitPadding().encode(bytes)\n\n def toBase64Url(self, bytes):\n return BaseEncoding.base64Url().encode(bytes)\n\n def fromBase64Url(self, chars):\n return BaseEncoding.base64Url().decode(chars)\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "otp", "modified": false, "configurationProperties": [ { "hide": false, "value2": "totp", "value1": "otp_type" }, { "hide": false, "value2": "/etc/certs/otp_configuration.json", "value1": "otp_conf_file" }, { "hide": false, "value2": "Gluu Inc", "value1": "issuer" }, { "hide": false, "value2": "Gluu OTP", "value1": "label" }, { "hide": false, "value2": "{ size: 400, mSize: 0.05 }", "value1": "qr_options" }, { "hide": false, "value2": "https://jenkins-build.jans.io/identity/register", "value1": "registration_uri" } ], "baseDn": "inum=5018-D4BF,ou=scripts,o=jans" }, { "internal": false, "level": 50, "programmingLanguage": "python", "description": "DUO authentication module", "locationType": "ldap", "dn": "inum=5018-F9CF,ou=scripts,o=jans", "inum": "5018-F9CF", "script": "from io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService, SessionIdService\nfrom io.jans.as.server.service.common import UserService\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom io.jans.as.server.service.net import HttpService\nimport os\nimport java\nimport sys\nfrom com.duosecurity import Client\nfrom com.duosecurity.exception import DuoException\nfrom com.duosecurity.model import Token\nfrom io.jans.jsf2.service import FacesService\nfrom jakarta.faces.context import FacesContext\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.as.server.util import ServerUtil\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Duo-Universal. Initialization\"\n \n if (not configurationAttributes.containsKey(\"client_id\")):\n\t print \"Duo Universal. Initialization. Property client_id is not specified\"\n\t return False\n else: \n \tself.client_id = configurationAttributes.get(\"client_id\").getValue2() \n \t\n if (not configurationAttributes.containsKey(\"client_secret\")):\n\t print \"Duo Universal. Initialization. Property client_secret is not specified\"\n\t return False\n else: \n \tself.client_secret = configurationAttributes.get(\"client_secret\").getValue2() \n \t\n if (not configurationAttributes.containsKey(\"api_hostname\")):\n\t print \"Duo Universal. Initialization. Property api_hostname is not specified\"\n\t return False\n else: \n \tself.api_hostname = configurationAttributes.get(\"api_hostname\").getValue2() \n \n print \"Duo-Universal. Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Duo-Universal. Destroy\"\n print \"Duo-Universal. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"Duo-Universal. Authenticate for step %s\" % step\n \n identity = CdiUtil.bean(Identity)\n if (step == 1):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n # Check if user authenticated already in another custom script\n user = authenticationService.getAuthenticatedUser()\n \n if user == None:\n print \"user is none\"\n credentials = identity.getCredentials()\n \n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n \n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n \t\t\t\t\n if (not logged_in):\n print \"return false\"\n return False\n identity.setWorkingParameter('username',user_name)\n return True\n \n elif (step == 2):\n \n identity = CdiUtil.bean(Identity)\n \n state = ServerUtil.getFirstValue(requestParameters, \"state\")\n \t\t\t# Get state to verify consistency and originality\n if identity.getWorkingParameter('state_duo') == state :\n \t\n \t# Get authorization token to trade for 2FA\n \tduoCode = ServerUtil.getFirstValue(requestParameters, \"duo_code\")\n\t \ttry:\n\t token = self.duo_client.exchangeAuthorizationCodeFor2FAResult(duoCode, identity.getWorkingParameter('username'))\n print \"token status %s \" % token.getAuth_result().getStatus()\n\t \texcept:\n\t # Handle authentication failure.\n\t print \"authentication failure\", sys.exc_info()[1]\n\t return False\n\t \n\t # User successfully passed Duo authentication.\n\t \n\t if \"allow\" == token.getAuth_result().getStatus():\n\t return True\n\t \n\t return False\n \n else:\n print \"Neither step 1 or 2\" \n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \tprint \"Duo-Universal. Prepare for step %s\" % step\n \n if (step == 1):\n return True\n elif (step == 2):\n \tidentity = CdiUtil.bean(Identity)\n user_name = identity.getWorkingParameter('username')\n \tfacesContext = CdiUtil.bean(FacesContext)\n \trequest = facesContext.getExternalContext().getRequest()\n \thttpService = CdiUtil.bean(HttpService)\n \turl = httpService.constructServerUrl(request) + \"/postlogin.htm\"\n \t\n \ttry:\n\t \tself.duo_client = Client(self.client_id,self.client_secret,self.api_hostname,url)\n\t \tself.duo_client.healthCheck()\n\t \texcept:\n print \"Duo-Universal. Duo config error. Verify the values in Duo-Universal.conf are correct \", sys.exc_info()[1]\n \n state = self.duo_client.generateState()\n identity.setWorkingParameter(\"state_duo\",state)\n prompt_uri = self.duo_client.createAuthUrl(user_name, state)\n \n facesService = CdiUtil.bean(FacesService)\n facesService.redirectToExternalURL(prompt_uri )\n\n return True\n \n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"state_duo\", \"username\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n print \"Duo-Universal. getPageForStep - %s \" % step\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n ", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "duo", "modified": false, "configurationProperties": [ { "hide": false, "value2": "/etc/certs/duo_creds.json", "value1": "duo_creds_file" }, { "hide": false, "value2": "api-random.duosecurity.com", "value1": "duo_host" } ], "baseDn": "inum=5018-F9CF,ou=scripts,o=jans" }, { "internal": false, "level": 70, "programmingLanguage": "python", "description": "Fido2 authentication module", "locationType": "ldap", "dn": "inum=8BAF-80D7,ou=scripts,o=jans", "inum": "8BAF-80D7", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.fido2.client import Fido2ClientFactory\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\nfrom java.util import Arrays\nfrom java.util.concurrent.locks import ReentrantLock\nfrom jakarta.ws.rs import ClientErrorException\nfrom jakarta.ws.rs.core import Response\n\nimport java\nimport sys\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Fido2. Initialization\"\n\n if not configurationAttributes.containsKey(\"fido2_server_uri\"):\n print \"fido2_server_uri. Initialization. Property fido2_server_uri is not specified\"\n return False\n\n self.fido2_server_uri = configurationAttributes.get(\"fido2_server_uri\").getValue2()\n\n self.fido2_domain = None\n if configurationAttributes.containsKey(\"fido2_domain\"):\n self.fido2_domain = configurationAttributes.get(\"fido2_domain\").getValue2()\n\n self.metaDataLoaderLock = ReentrantLock()\n self.metaDataConfiguration = None\n\n print \"Fido2. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Fido2. Destroy\"\n print \"Fido2. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n\n if step == 1:\n print \"Fido2. Authenticate for step 1\"\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\",ServerUtil.getFirstValue(requestParameters, \"loginForm:platformAuthenticator\"))\n\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n return True\n elif step == 2:\n print \"Fido2. Authenticate for step 2\"\n\n token_response = ServerUtil.getFirstValue(requestParameters, \"tokenResponse\")\n if token_response == None:\n print \"Fido2. Authenticate for step 2. tokenResponse is empty\"\n return False\n\n auth_method = ServerUtil.getFirstValue(requestParameters, \"authMethod\")\n if auth_method == None:\n print \"Fido2. Authenticate for step 2. authMethod is empty\"\n return False\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Fido2. Prepare for step 2. Failed to determine user name\"\n return False\n\n if auth_method == 'authenticate':\n print \"Fido2. Prepare for step 2. Call Fido2 in order to finish authentication flow\"\n assertionService = Fido2ClientFactory.instance().createAssertionService(self.metaDataConfiguration)\n assertionStatus = assertionService.verify(token_response)\n authenticationStatusEntity = assertionStatus.readEntity(java.lang.String)\n\n if assertionStatus.getStatus() != Response.Status.OK.getStatusCode():\n print \"Fido2. Authenticate for step 2. Get invalid authentication status from Fido2 server\"\n return False\n\n return True\n elif auth_method == 'enroll':\n print \"Fido2. Prepare for step 2. Call Fido2 in order to finish registration flow\"\n attestationService = Fido2ClientFactory.instance().createAttestationService(self.metaDataConfiguration)\n attestationStatus = attestationService.verify(token_response)\n\n if attestationStatus.getStatus() != Response.Status.OK.getStatusCode():\n print \"Fido2. Authenticate for step 2. Get invalid registration status from Fido2 server\"\n return False\n\n return True\n else:\n print \"Fido2. Prepare for step 2. Authentication method is invalid\"\n return False\n\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n\n if step == 1:\n return True\n elif step == 2:\n print \"Fido2. Prepare for step 2\"\n\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Fido2. Prepare for step 2. Failed to determine session_id\"\n return False\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Fido2. Prepare for step 2. Failed to determine user name\"\n return False\n\n userName = user.getUserId()\n\n metaDataConfiguration = self.getMetaDataConfiguration()\n\n assertionResponse = None\n attestationResponse = None\n\n # Check if user have registered devices\n count = CdiUtil.bean(UserService).countFido2RegisteredDevices(userName, self.fido2_domain)\n if count > 0:\n print \"Fido2. Prepare for step 2. Call Fido2 endpoint in order to start assertion flow\"\n\n try:\n assertionService = Fido2ClientFactory.instance().createAssertionService(metaDataConfiguration)\n assertionRequest = json.dumps({'username': userName}, separators=(',', ':'))\n assertionResponse = assertionService.authenticate(assertionRequest).readEntity(java.lang.String)\n # if device has only platform authenticator and assertion is expecting a security key\n if \"internal\" in assertionResponse:\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\", \"true\")\n else:\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\", \"false\")\n\n except ClientErrorException, ex:\n print \"Fido2. Prepare for step 2. Failed to start assertion flow. Exception:\", sys.exc_info()[1]\n return False\n else:\n print \"Fido2. Prepare for step 2. Call Fido2 endpoint in order to start attestation flow\"\n\n try:\n attestationService = Fido2ClientFactory.instance().createAttestationService(metaDataConfiguration)\n platformAuthenticatorAvailable = identity.getWorkingParameter(\"platformAuthenticatorAvailable\") == \"true\"\n basic_json = {'username': userName, 'displayName': userName, 'attestation' : 'direct'}\n print \"% s\" % identity.getWorkingParameter(\"platformAuthenticatorAvailable\")\n if platformAuthenticatorAvailable is True:\n # the reason behind userVerification = discouraged --> https://chromium.googlesource.com/chromium/src/+/master/content/browser/webauth/uv_preferred.md\n platform_json = {\"authenticatorSelection\":{\"authenticatorAttachment\":\"platform\",\"requireResidentKey\" : \"false\", \"userVerification\" : \"discouraged\" } }\n basic_json.update(platform_json)\n\n # also need to add this --> excludeCredentials : [//registered ids]\n print \" basic_json %s\" % basic_json\n\n attestationRequest = json.dumps(basic_json)\n #, separators=(',', ':'))\n\n attestationResponse = attestationService.register(attestationRequest).readEntity(java.lang.String)\n except ClientErrorException, ex:\n print \"Fido2. Prepare for step 2. Failed to start attestation flow. Exception:\", sys.exc_info()[1]\n return False\n\n identity.setWorkingParameter(\"fido2_assertion_request\", ServerUtil.asJson(assertionResponse))\n identity.setWorkingParameter(\"fido2_attestation_request\", ServerUtil.asJson(attestationResponse))\n print \"Fido2. Prepare for step 2. Successfully start flow with next requests.\\nfido2_assertion_request: '%s'\\nfido2_attestation_request: '%s'\" % ( assertionResponse, attestationResponse )\n\n return True\n elif step == 3:\n print \"Fido2. Prepare for step 3\"\n\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList( \"platformAuthenticatorAvailable\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n return \"/auth/fido2/step1.xhtml\"\n elif step == 2:\n identity = CdiUtil.bean(Identity)\n if identity.getWorkingParameter(\"platformAuthenticatorAvailable\") == \"true\":\n return \"/auth/fido2/platform.xhtml\"\n else:\n return \"/auth/fido2/secKeys.xhtml\"\n return \"\"\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def getMetaDataConfiguration(self):\n if self.metaDataConfiguration != None:\n return self.metaDataConfiguration\n\n self.metaDataLoaderLock.lock()\n # Make sure that another thread not loaded configuration already\n if self.metaDataConfiguration != None:\n return self.metaDataConfiguration\n\n try:\n print \"Fido2. Initialization. Downloading Fido2 metadata\"\n self.fido2_server_metadata_uri = self.fido2_server_uri + \"/.well-known/fido2-configuration\"\n\n metaDataConfigurationService = Fido2ClientFactory.instance().createMetaDataConfigurationService(self.fido2_server_metadata_uri)\n\n max_attempts = 10\n for attempt in range(1, max_attempts + 1):\n try:\n self.metaDataConfiguration = metaDataConfigurationService.getMetadataConfiguration().readEntity(java.lang.String)\n return self.metaDataConfiguration\n except ClientErrorException, ex:\n # Detect if last try or we still get Service Unavailable HTTP error\n if (attempt == max_attempts) or (ex.getResponse().getResponseStatus() != Response.Status.SERVICE_UNAVAILABLE):\n raise ex\n\n java.lang.Thread.sleep(3000)\n print \"Attempting to load metadata: %d\" % attempt\n finally:\n self.metaDataLoaderLock.unlock()\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "fido2", "modified": false, "configurationProperties": [ { "hide": false, "value2": "https://jenkins-build.jans.io", "value1": "fido2_server_uri" } ], "baseDn": "inum=8BAF-80D7,ou=scripts,o=jans" }, { "internal": false, "level": 60, "programmingLanguage": "python", "description": "Super Gluu authentication module", "locationType": "ldap", "dn": "inum=92F0-BF9E,ou=scripts,o=jans", "inum": "92F0-BF9E", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom com.google.android.gcm.server import Sender, Message\nfrom com.notnoop.apns import APNS\nfrom java.util import Arrays\nfrom org.apache.http.params import CoreConnectionPNames\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.model.config import ConfigurationFactory\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.service.fido.u2f import DeviceRegistrationService\nfrom io.jans.as.server.service.net import HttpService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.as.common.service.common import EncryptionService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.service import MailService\nfrom io.jans.as.server.service.push.sns import PushPlatform\nfrom io.jans.as.server.service.push.sns import PushSnsService\nfrom io.jans.notify.client import NotifyClientFactory \nfrom java.util import Arrays, HashMap, IdentityHashMap, Date\nfrom java.time import ZonedDateTime\nfrom java.time.format import DateTimeFormatter\n\nimport datetime\nimport urllib\n\nimport sys\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Super-Gluu. Initialization\"\n\n if not configurationAttributes.containsKey(\"authentication_mode\"):\n print \"Super-Gluu. Initialization. Property authentication_mode is mandatory\"\n return False\n\n self.applicationId = None\n if configurationAttributes.containsKey(\"application_id\"):\n self.applicationId = configurationAttributes.get(\"application_id\").getValue2()\n\n self.registrationUri = None\n if configurationAttributes.containsKey(\"registration_uri\"):\n self.registrationUri = configurationAttributes.get(\"registration_uri\").getValue2()\n\n authentication_mode = configurationAttributes.get(\"authentication_mode\").getValue2()\n if StringHelper.isEmpty(authentication_mode):\n print \"Super-Gluu. Initialization. Failed to determine authentication_mode. authentication_mode configuration parameter is empty\"\n return False\n \n self.oneStep = StringHelper.equalsIgnoreCase(authentication_mode, \"one_step\")\n self.twoStep = StringHelper.equalsIgnoreCase(authentication_mode, \"two_step\")\n\n if not (self.oneStep or self.twoStep):\n print \"Super-Gluu. Initialization. Valid authentication_mode values are one_step and two_step\"\n return False\n \n self.enabledPushNotifications = self.initPushNotificationService(configurationAttributes)\n\n self.androidUrl = None\n if configurationAttributes.containsKey(\"supergluu_android_download_url\"):\n self.androidUrl = configurationAttributes.get(\"supergluu_android_download_url\").getValue2()\n\n self.IOSUrl = None\n if configurationAttributes.containsKey(\"supergluu_ios_download_url\"):\n self.IOSUrl = configurationAttributes.get(\"supergluu_ios_download_url\").getValue2()\n\n self.customLabel = None\n if configurationAttributes.containsKey(\"label\"):\n self.customLabel = configurationAttributes.get(\"label\").getValue2()\n\n self.customQrOptions = {}\n if configurationAttributes.containsKey(\"qr_options\"):\n self.customQrOptions = configurationAttributes.get(\"qr_options\").getValue2()\n\n self.use_super_gluu_group = False\n if configurationAttributes.containsKey(\"super_gluu_group\"):\n self.super_gluu_group = configurationAttributes.get(\"super_gluu_group\").getValue2()\n self.use_super_gluu_group = True\n print \"Super-Gluu. Initialization. Using super_gluu only if user belong to group: %s\" % self.super_gluu_group\n\n self.use_audit_group = False\n if configurationAttributes.containsKey(\"audit_group\"):\n self.audit_group = configurationAttributes.get(\"audit_group\").getValue2()\n\n if (not configurationAttributes.containsKey(\"audit_group_email\")):\n print \"Super-Gluu. Initialization. Property audit_group_email is not specified\"\n return False\n\n self.audit_email = configurationAttributes.get(\"audit_group_email\").getValue2()\n self.use_audit_group = True\n\n print \"Super-Gluu. Initialization. Using audit group: %s\" % self.audit_group\n \n if self.use_super_gluu_group or self.use_audit_group:\n if not configurationAttributes.containsKey(\"audit_attribute\"):\n print \"Super-Gluu. Initialization. Property audit_attribute is not specified\"\n return False\n else:\n self.audit_attribute = configurationAttributes.get(\"audit_attribute\").getValue2()\n\n print \"Super-Gluu. Initialized successfully. oneStep: '%s', twoStep: '%s', pushNotifications: '%s', customLabel: '%s'\" % (self.oneStep, self.twoStep, self.enabledPushNotifications, self.customLabel)\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Super-Gluu. Destroy\"\n\n self.pushAndroidService = None\n self.pushAppleService = None\n\n print \"Super-Gluu. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n client_redirect_uri = self.getApplicationUri(session_attributes)\n if client_redirect_uri == None:\n print \"Super-Gluu. Authenticate. redirect_uri is not set\"\n return False\n\n self.setRequestScopedParameters(identity, step)\n\n # Validate form result code and initialize QR code regeneration if needed (retry_current_step = True)\n identity.setWorkingParameter(\"retry_current_step\", False)\n form_auth_result = ServerUtil.getFirstValue(requestParameters, \"auth_result\")\n if StringHelper.isNotEmpty(form_auth_result):\n print \"Super-Gluu. Authenticate for step %s. Get auth_result: '%s'\" % (step, form_auth_result)\n if form_auth_result in ['error']:\n return False\n\n if form_auth_result in ['timeout']:\n if ((step == 1) and self.oneStep) or ((step == 2) and self.twoStep): \n print \"Super-Gluu. Authenticate for step %s. Reinitializing current step\" % step\n identity.setWorkingParameter(\"retry_current_step\", True)\n return False\n\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n if step == 1:\n print \"Super-Gluu. Authenticate for step 1\"\n\n user_name = credentials.getUsername()\n if self.oneStep:\n session_device_status = self.getSessionDeviceStatus(session_attributes, user_name)\n if session_device_status == None:\n return False\n\n u2f_device_id = session_device_status['device_id']\n\n validation_result = self.validateSessionDeviceStatus(client_redirect_uri, session_device_status)\n if validation_result:\n print \"Super-Gluu. Authenticate for step 1. User successfully authenticated with u2f_device '%s'\" % u2f_device_id\n else:\n return False\n \n if not session_device_status['one_step']:\n print \"Super-Gluu. Authenticate for step 1. u2f_device '%s' is not one step device\" % u2f_device_id\n return False\n \n # There are two steps only in enrollment mode\n if session_device_status['enroll']:\n return validation_result\n\n identity.setWorkingParameter(\"super_gluu_count_login_steps\", 1)\n\n user_inum = session_device_status['user_inum']\n\n u2f_device = deviceRegistrationService.findUserDeviceRegistration(user_inum, u2f_device_id, \"jansId\")\n if u2f_device == None:\n print \"Super-Gluu. Authenticate for step 1. Failed to load u2f_device '%s'\" % u2f_device_id\n return False\n\n logged_in = authenticationService.authenticate(user_name)\n if not logged_in:\n print \"Super-Gluu. Authenticate for step 1. Failed to authenticate user '%s'\" % user_name\n return False\n\n print \"Super-Gluu. Authenticate for step 1. User '%s' successfully authenticated with u2f_device '%s'\" % (user_name, u2f_device_id)\n \n return True\n elif self.twoStep:\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n if (self.use_super_gluu_group):\n print \"Super-Gluu. Authenticate for step 1. Checking if user belong to super_gluu group\"\n is_member_super_gluu_group = self.isUserMemberOfGroup(authenticated_user, self.audit_attribute, self.super_gluu_group)\n if (is_member_super_gluu_group):\n print \"Super-Gluu. Authenticate for step 1. User '%s' member of super_gluu group\" % authenticated_user.getUserId()\n super_gluu_count_login_steps = 2\n else:\n if self.use_audit_group:\n self.processAuditGroup(authenticated_user, self.audit_attribute, self.audit_group)\n super_gluu_count_login_steps = 1\n \n identity.setWorkingParameter(\"super_gluu_count_login_steps\", super_gluu_count_login_steps)\n \n if super_gluu_count_login_steps == 1:\n return True\n \n auth_method = 'authenticate'\n enrollment_mode = ServerUtil.getFirstValue(requestParameters, \"loginForm:registerButton\")\n if StringHelper.isNotEmpty(enrollment_mode):\n auth_method = 'enroll'\n \n if auth_method == 'authenticate':\n user_inum = userService.getUserInum(authenticated_user)\n u2f_devices_list = deviceRegistrationService.findUserDeviceRegistrations(user_inum, client_redirect_uri, \"jansId\")\n if u2f_devices_list.size() == 0:\n auth_method = 'enroll'\n print \"Super-Gluu. Authenticate for step 1. There is no U2F '%s' user devices associated with application '%s'. Changing auth_method to '%s'\" % (user_name, client_redirect_uri, auth_method)\n \n print \"Super-Gluu. Authenticate for step 1. auth_method: '%s'\" % auth_method\n \n identity.setWorkingParameter(\"super_gluu_auth_method\", auth_method)\n\n return True\n\n return False\n elif step == 2:\n print \"Super-Gluu. Authenticate for step 2\"\n\n user = authenticationService.getAuthenticatedUser()\n if (user == None):\n print \"Super-Gluu. Authenticate for step 2. Failed to determine user name\"\n return False\n user_name = user.getUserId()\n\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n session_device_status = self.getSessionDeviceStatus(session_attributes, user_name)\n if session_device_status == None:\n return False\n\n u2f_device_id = session_device_status['device_id']\n\n # There are two steps only in enrollment mode\n if self.oneStep and session_device_status['enroll']:\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n user_inum = userService.getUserInum(authenticated_user)\n \n attach_result = deviceRegistrationService.attachUserDeviceRegistration(user_inum, u2f_device_id)\n\n print \"Super-Gluu. Authenticate for step 2. Result after attaching u2f_device '%s' to user '%s': '%s'\" % (u2f_device_id, user_name, attach_result) \n\n return attach_result\n elif self.twoStep:\n if user_name == None:\n print \"Super-Gluu. Authenticate for step 2. Failed to determine user name\"\n return False\n\n validation_result = self.validateSessionDeviceStatus(client_redirect_uri, session_device_status, user_name)\n if validation_result:\n print \"Super-Gluu. Authenticate for step 2. User '%s' successfully authenticated with u2f_device '%s'\" % (user_name, u2f_device_id)\n else:\n return False\n \n super_gluu_request = json.loads(session_device_status['super_gluu_request'])\n auth_method = super_gluu_request['method']\n if auth_method in ['enroll', 'authenticate']:\n if validation_result and self.use_audit_group:\n user = authenticationService.getAuthenticatedUser()\n self.processAuditGroup(user, self.audit_attribute, self.audit_group)\n\n return validation_result\n\n print \"Super-Gluu. Authenticate for step 2. U2F auth_method is invalid\"\n\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n client_redirect_uri = self.getApplicationUri(session_attributes)\n if client_redirect_uri == None:\n print \"Super-Gluu. Prepare for step. redirect_uri is not set\"\n return False\n\n self.setRequestScopedParameters(identity, step)\n\n if step == 1:\n print \"Super-Gluu. Prepare for step 1\"\n if self.oneStep:\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine session_id\"\n return False\n\n issuer = CdiUtil.bean(ConfigurationFactory).getConfiguration().getIssuer()\n super_gluu_request_dictionary = {'app': client_redirect_uri,\n 'issuer': issuer,\n 'state': session.getId(),\n 'created': DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now().withNano(0))}\n\n self.addGeolocationData(session_attributes, super_gluu_request_dictionary)\n\n super_gluu_request = json.dumps(super_gluu_request_dictionary, separators=(',',':'))\n print \"Super-Gluu. Prepare for step 1. Prepared super_gluu_request:\", super_gluu_request\n \n identity.setWorkingParameter(\"super_gluu_request\", super_gluu_request)\n elif self.twoStep:\n identity.setWorkingParameter(\"display_register_action\", True)\n\n return True\n elif step == 2:\n print \"Super-Gluu. Prepare for step 2\"\n if self.oneStep:\n return True\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine user name\"\n return False\n\n if session_attributes.containsKey(\"super_gluu_request\"):\n super_gluu_request = session_attributes.get(\"super_gluu_request\")\n if not StringHelper.equalsIgnoreCase(super_gluu_request, \"timeout\"):\n print \"Super-Gluu. Prepare for step 2. Request was generated already\"\n return True\n \n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine session_id\"\n return False\n\n auth_method = session_attributes.get(\"super_gluu_auth_method\")\n if StringHelper.isEmpty(auth_method):\n print \"Super-Gluu. Prepare for step 2. Failed to determine auth_method\"\n return False\n\n print \"Super-Gluu. Prepare for step 2. auth_method: '%s'\" % auth_method\n \n issuer = CdiUtil.bean(ConfigurationFactory).getAppConfiguration().getIssuer()\n super_gluu_request_dictionary = {'username': user.getUserId(),\n 'app': client_redirect_uri,\n 'issuer': issuer,\n 'method': auth_method,\n 'state': session.getId(),\n 'created': DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now().withNano(0))}\n\n self.addGeolocationData(session_attributes, super_gluu_request_dictionary)\n\n super_gluu_request = json.dumps(super_gluu_request_dictionary, separators=(',',':'))\n print \"Super-Gluu. Prepare for step 2. Prepared super_gluu_request:\", super_gluu_request\n\n identity.setWorkingParameter(\"super_gluu_request\", super_gluu_request)\n identity.setWorkingParameter(\"super_gluu_auth_method\", auth_method)\n\n if auth_method in ['authenticate']:\n self.sendPushNotification(client_redirect_uri, user, super_gluu_request)\n\n return True\n else:\n return False\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n # If user not pass current step change step to previous\n identity = CdiUtil.bean(Identity)\n retry_current_step = identity.getWorkingParameter(\"retry_current_step\")\n if retry_current_step:\n print \"Super-Gluu. Get next step. Retrying current step\"\n\n # Remove old QR code\n identity.setWorkingParameter(\"super_gluu_request\", \"timeout\")\n\n resultStep = step\n return resultStep\n\n return -1\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 1:\n if self.oneStep: \n return Arrays.asList(\"super_gluu_request\")\n elif self.twoStep:\n return Arrays.asList(\"display_register_action\")\n elif step == 2:\n return Arrays.asList(\"super_gluu_auth_method\", \"super_gluu_request\")\n \n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n identity = CdiUtil.bean(Identity)\n if identity.isSetWorkingParameter(\"super_gluu_count_login_steps\"):\n return identity.getWorkingParameter(\"super_gluu_count_login_steps\")\n else:\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n if self.oneStep: \n return \"/auth/super-gluu/login.xhtml\"\n elif step == 2:\n if self.oneStep:\n return \"/login.xhtml\"\n else:\n identity = CdiUtil.bean(Identity)\n authmethod = identity.getWorkingParameter(\"super_gluu_auth_method\")\n print \"Super-Gluu. authmethod '%s'\" % authmethod\n if authmethod == \"enroll\":\n return \"/auth/super-gluu/login.xhtml\"\n else:\n return \"/auth/super-gluu/login.xhtml\"\n\n return \"\"\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def processBasicAuthentication(self, credentials):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if find_user_by_uid == None:\n print \"Super-Gluu. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def validateSessionDeviceStatus(self, client_redirect_uri, session_device_status, user_name = None):\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n\n u2f_device_id = session_device_status['device_id']\n\n u2f_device = None\n if session_device_status['enroll'] and session_device_status['one_step']:\n u2f_device = deviceRegistrationService.findOneStepUserDeviceRegistration(u2f_device_id)\n if u2f_device == None:\n print \"Super-Gluu. Validate session device status. There is no one step u2f_device '%s'\" % u2f_device_id\n return False\n else:\n # Validate if user has specified device_id enrollment\n user_inum = userService.getUserInum(user_name)\n\n if session_device_status['one_step']:\n user_inum = session_device_status['user_inum']\n \n u2f_device = deviceRegistrationService.findUserDeviceRegistration(user_inum, u2f_device_id)\n if u2f_device == None:\n print \"Super-Gluu. Validate session device status. There is no u2f_device '%s' associated with user '%s'\" % (u2f_device_id, user_inum)\n return False\n\n if not StringHelper.equalsIgnoreCase(client_redirect_uri, u2f_device.application):\n print \"Super-Gluu. Validate session device status. u2f_device '%s' associated with other application '%s'\" % (u2f_device_id, u2f_device.application)\n return False\n \n return True\n\n def getSessionDeviceStatus(self, session_attributes, user_name):\n print \"Super-Gluu. Get session device status\"\n\n if not session_attributes.containsKey(\"super_gluu_request\"):\n print \"Super-Gluu. Get session device status. There is no Super-Gluu request in session attributes\"\n return None\n\n # Check session state extended\n if not session_attributes.containsKey(\"session_custom_state\"):\n print \"Super-Gluu. Get session device status. There is no session_custom_state in session attributes\"\n return None\n\n session_custom_state = session_attributes.get(\"session_custom_state\")\n if not StringHelper.equalsIgnoreCase(\"approved\", session_custom_state):\n print \"Super-Gluu. Get session device status. User '%s' not approve or not pass U2F authentication. session_custom_state: '%s'\" % (user_name, session_custom_state)\n return None\n\n # Try to find device_id in session attribute\n if not session_attributes.containsKey(\"oxpush2_u2f_device_id\"):\n print \"Super-Gluu. Get session device status. There is no u2f_device associated with this request\"\n return None\n\n # Try to find user_inum in session attribute\n if not session_attributes.containsKey(\"oxpush2_u2f_device_user_inum\"):\n print \"Super-Gluu. Get session device status. There is no user_inum associated with this request\"\n return None\n \n enroll = False\n if session_attributes.containsKey(\"oxpush2_u2f_device_enroll\"):\n enroll = StringHelper.equalsIgnoreCase(\"true\", session_attributes.get(\"oxpush2_u2f_device_enroll\"))\n\n one_step = False\n if session_attributes.containsKey(\"oxpush2_u2f_device_one_step\"):\n one_step = StringHelper.equalsIgnoreCase(\"true\", session_attributes.get(\"oxpush2_u2f_device_one_step\"))\n \n super_gluu_request = session_attributes.get(\"super_gluu_request\")\n u2f_device_id = session_attributes.get(\"oxpush2_u2f_device_id\")\n user_inum = session_attributes.get(\"oxpush2_u2f_device_user_inum\")\n\n session_device_status = {\"super_gluu_request\": super_gluu_request, \"device_id\": u2f_device_id, \"user_inum\" : user_inum, \"enroll\" : enroll, \"one_step\" : one_step}\n print \"Super-Gluu. Get session device status. session_device_status: '%s'\" % (session_device_status)\n \n return session_device_status\n\n def initPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize Native/SNS/Gluu notification services\"\n\n self.pushSnsMode = False\n self.pushGluuMode = False\n if configurationAttributes.containsKey(\"notification_service_mode\"):\n notificationServiceMode = configurationAttributes.get(\"notification_service_mode\").getValue2()\n if StringHelper.equalsIgnoreCase(notificationServiceMode, \"sns\"):\n return self.initSnsPushNotificationService(configurationAttributes)\n elif StringHelper.equalsIgnoreCase(notificationServiceMode, \"gluu\"):\n return self.initGluuPushNotificationService(configurationAttributes)\n\n return self.initNativePushNotificationService(configurationAttributes)\n\n def initNativePushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize native notification services\"\n \n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n android_creds = creds[\"android\"][\"gcm\"]\n ios_creds = creds[\"ios\"][\"apns\"]\n except:\n print \"Super-Gluu. Initialize native notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if android_creds[\"enabled\"]:\n self.pushAndroidService = Sender(android_creds[\"api_key\"]) \n print \"Super-Gluu. Initialize native notification services. Created Android notification service\"\n \n if ios_creds[\"enabled\"]:\n p12_file_path = ios_creds[\"p12_file_path\"]\n p12_password = ios_creds[\"p12_password\"]\n\n try:\n encryptionService = CdiUtil.bean(EncryptionService)\n p12_password = encryptionService.decrypt(p12_password)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize native notification services. Assuming that 'p12_password' password in not encrypted\"\n\n apnsServiceBuilder = APNS.newService().withCert(p12_file_path, p12_password)\n if ios_creds[\"production\"]:\n self.pushAppleService = apnsServiceBuilder.withProductionDestination().build()\n else:\n self.pushAppleService = apnsServiceBuilder.withSandboxDestination().build()\n\n self.pushAppleServiceProduction = ios_creds[\"production\"]\n\n print \"Super-Gluu. Initialize native notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def initSnsPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize SNS notification services\"\n self.pushSnsMode = True\n\n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n sns_creds = creds[\"sns\"]\n android_creds = creds[\"android\"][\"sns\"]\n ios_creds = creds[\"ios\"][\"sns\"]\n except:\n print \"Super-Gluu. Initialize SNS notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if not (android_creds[\"enabled\"] or ios_creds[\"enabled\"]):\n print \"Super-Gluu. Initialize SNS notification services. SNS disabled for all platforms\"\n return False\n\n sns_access_key = sns_creds[\"access_key\"]\n sns_secret_access_key = sns_creds[\"secret_access_key\"]\n sns_region = sns_creds[\"region\"]\n\n encryptionService = CdiUtil.bean(EncryptionService)\n\n try:\n sns_secret_access_key = encryptionService.decrypt(sns_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize SNS notification services. Assuming that 'sns_secret_access_key' in not encrypted\"\n \n pushSnsService = CdiUtil.bean(PushSnsService)\n pushClient = pushSnsService.createSnsClient(sns_access_key, sns_secret_access_key, sns_region)\n\n if android_creds[\"enabled\"]:\n self.pushAndroidService = pushClient\n self.pushAndroidPlatformArn = android_creds[\"platform_arn\"]\n print \"Super-Gluu. Initialize SNS notification services. Created Android notification service\"\n\n if ios_creds[\"enabled\"]:\n self.pushAppleService = pushClient \n self.pushApplePlatformArn = ios_creds[\"platform_arn\"]\n self.pushAppleServiceProduction = ios_creds[\"production\"]\n print \"Super-Gluu. Initialize SNS notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def initGluuPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize Gluu notification services\"\n\n self.pushGluuMode = True\n\n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n gluu_conf = creds[\"gluu\"]\n android_creds = creds[\"android\"][\"gluu\"]\n ios_creds = creds[\"ios\"][\"gluu\"]\n except:\n print \"Super-Gluu. Initialize Gluu notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if not (android_creds[\"enabled\"] or ios_creds[\"enabled\"]):\n print \"Super-Gluu. Initialize Gluu notification services. Gluu disabled for all platforms\"\n return False\n\n gluu_server_uri = gluu_conf[\"server_uri\"]\n notifyClientFactory = NotifyClientFactory.instance()\n metadataConfiguration = None\n try:\n metadataConfiguration = notifyClientFactory.createMetaDataConfigurationService(gluu_server_uri).getMetadataConfiguration()\n except:\n print \"Super-Gluu. Initialize Gluu notification services. Failed to load metadata. Exception: \", sys.exc_info()[1]\n return False\n\n gluuClient = notifyClientFactory.createNotifyService(metadataConfiguration)\n encryptionService = CdiUtil.bean(EncryptionService)\n\n if android_creds[\"enabled\"]:\n gluu_access_key = android_creds[\"access_key\"]\n gluu_secret_access_key = android_creds[\"secret_access_key\"]\n \n try:\n gluu_secret_access_key = encryptionService.decrypt(gluu_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize Gluu notification services. Assuming that 'gluu_secret_access_key' in not encrypted\"\n \n self.pushAndroidService = gluuClient \n self.pushAndroidServiceAuth = notifyClientFactory.getAuthorization(gluu_access_key, gluu_secret_access_key);\n print \"Super-Gluu. Initialize Gluu notification services. Created Android notification service\"\n\n if ios_creds[\"enabled\"]:\n gluu_access_key = ios_creds[\"access_key\"]\n gluu_secret_access_key = ios_creds[\"secret_access_key\"]\n \n try:\n gluu_secret_access_key = encryptionService.decrypt(gluu_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize Gluu notification services. Assuming that 'gluu_secret_access_key' in not encrypted\"\n \n self.pushAppleService = gluuClient \n self.pushAppleServiceAuth = notifyClientFactory.getAuthorization(gluu_access_key, gluu_secret_access_key);\n print \"Super-Gluu. Initialize Gluu notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def loadPushNotificationCreds(self, configurationAttributes):\n print \"Super-Gluu. Initialize notification services\"\n if not configurationAttributes.containsKey(\"credentials_file\"):\n return None\n\n super_gluu_creds_file = configurationAttributes.get(\"credentials_file\").getValue2()\n\n # Load credentials from file\n f = open(super_gluu_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n except:\n print \"Super-Gluu. Initialize notification services. Failed to load credentials from file:\", super_gluu_creds_file\n return None\n finally:\n f.close()\n\n return creds\n\n def sendPushNotification(self, client_redirect_uri, user, super_gluu_request):\n try:\n self.sendPushNotificationImpl(client_redirect_uri, user, super_gluu_request)\n except:\n print \"Super-Gluu. Send push notification. Failed to send push notification: \", sys.exc_info()[1]\n\n def sendPushNotificationImpl(self, client_redirect_uri, user, super_gluu_request):\n if not self.enabledPushNotifications:\n return\n\n user_name = user.getUserId()\n print \"Super-Gluu. Send push notification. Loading user '%s' devices\" % user_name\n\n send_notification = False\n send_notification_result = True\n\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n\n user_inum = userService.getUserInum(user_name)\n\n send_android = 0\n send_ios = 0\n u2f_devices_list = deviceRegistrationService.findUserDeviceRegistrations(user_inum, client_redirect_uri, \"jansId\", \"jansDeviceData\", \"jansDeviceNotificationConf\")\n if u2f_devices_list.size() > 0:\n for u2f_device in u2f_devices_list:\n device_data = u2f_device.getDeviceData()\n\n # Device data which Super-Gluu gets during enrollment\n if device_data == None:\n continue\n\n platform = device_data.getPlatform()\n push_token = device_data.getPushToken()\n debug = False\n\n if StringHelper.equalsIgnoreCase(platform, \"ios\") and StringHelper.isNotEmpty(push_token):\n # Sending notification to iOS user's device\n if self.pushAppleService == None:\n print \"Super-Gluu. Send push notification. Apple native push notification service is not enabled\"\n else:\n send_notification = True\n \n title = \"Super Gluu\"\n message = \"Confirm your sign in request to: %s\" % client_redirect_uri\n\n if self.pushSnsMode or self.pushGluuMode:\n pushSnsService = CdiUtil.bean(PushSnsService)\n targetEndpointArn = self.getTargetEndpointArn(deviceRegistrationService, pushSnsService, PushPlatform.APNS, user, u2f_device)\n if targetEndpointArn == None:\n \treturn\n\n send_notification = True\n \n sns_push_request_dictionary = { \"aps\": \n { \"badge\": 0,\n \"alert\" : {\"body\": message, \"title\" : title},\n \"category\": \"ACTIONABLE\",\n \"content-available\": \"1\",\n \"sound\": 'default'\n },\n \"request\" : super_gluu_request\n }\n push_message = json.dumps(sns_push_request_dictionary, separators=(',',':'))\n \n if self.pushSnsMode:\n apple_push_platform = PushPlatform.APNS\n if not self.pushAppleServiceProduction:\n apple_push_platform = PushPlatform.APNS_SANDBOX\n \n send_notification_result = pushSnsService.sendPushMessage(self.pushAppleService, apple_push_platform, targetEndpointArn, push_message, None)\n if debug:\n print \"Super-Gluu. Send iOS SNS push notification. token: '%s', message: '%s', send_notification_result: '%s', apple_push_platform: '%s'\" % (push_token, push_message, send_notification_result, apple_push_platform)\n elif self.pushGluuMode:\n send_notification_result = self.pushAppleService.sendNotification(self.pushAppleServiceAuth, targetEndpointArn, push_message)\n if debug:\n print \"Super-Gluu. Send iOS Gluu push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n else:\n additional_fields = { \"request\" : super_gluu_request }\n \n msgBuilder = APNS.newPayload().alertBody(message).alertTitle(title).sound(\"default\")\n msgBuilder.category('ACTIONABLE').badge(0)\n msgBuilder.forNewsstand()\n msgBuilder.customFields(additional_fields)\n push_message = msgBuilder.build()\n \n send_notification_result = self.pushAppleService.push(push_token, push_message)\n if debug:\n print \"Super-Gluu. Send iOS Native push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n send_ios = send_ios + 1\n\n if StringHelper.equalsIgnoreCase(platform, \"android\") and StringHelper.isNotEmpty(push_token):\n # Sending notification to Android user's device\n if self.pushAndroidService == None:\n print \"Super-Gluu. Send native push notification. Android native push notification service is not enabled\"\n else:\n send_notification = True\n\n title = \"Super-Gluu\"\n if self.pushSnsMode or self.pushGluuMode:\n pushSnsService = CdiUtil.bean(PushSnsService)\n targetEndpointArn = self.getTargetEndpointArn(deviceRegistrationService, pushSnsService, PushPlatform.GCM, user, u2f_device)\n if targetEndpointArn == None:\n \treturn\n\n send_notification = True\n \n sns_push_request_dictionary = { \"collapse_key\": \"single\",\n \"content_available\": True,\n \"time_to_live\": 60,\n \"data\": \n { \"message\" : super_gluu_request,\n \"title\" : title }\n }\n push_message = json.dumps(sns_push_request_dictionary, separators=(',',':'))\n \n if self.pushSnsMode:\n send_notification_result = pushSnsService.sendPushMessage(self.pushAndroidService, PushPlatform.GCM, targetEndpointArn, push_message, None)\n if debug:\n print \"Super-Gluu. Send Android SNS push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n elif self.pushGluuMode:\n send_notification_result = self.pushAndroidService.sendNotification(self.pushAndroidServiceAuth, targetEndpointArn, push_message)\n if debug:\n print \"Super-Gluu. Send Android Gluu push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n else:\n msgBuilder = Message.Builder().addData(\"message\", super_gluu_request).addData(\"title\", title).collapseKey(\"single\").contentAvailable(True)\n push_message = msgBuilder.build()\n \n send_notification_result = self.pushAndroidService.send(push_message, push_token, 3)\n if debug:\n print \"Super-Gluu. Send Android Native push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n send_android = send_android + 1\n\n print \"Super-Gluu. Send push notification. send_android: '%s', send_ios: '%s'\" % (send_android, send_ios)\n\n def getTargetEndpointArn(self, deviceRegistrationService, pushSnsService, platform, user, u2fDevice):\n targetEndpointArn = None\n \n # Return endpoint ARN if it created already\n notificationConf = u2fDevice.getDeviceNotificationConf()\n if StringHelper.isNotEmpty(notificationConf):\n notificationConfJson = json.loads(notificationConf)\n targetEndpointArn = notificationConfJson['sns_endpoint_arn']\n if StringHelper.isNotEmpty(targetEndpointArn):\n print \"Super-Gluu. Get target endpoint ARN. There is already created target endpoint ARN\"\n return targetEndpointArn\n\n # Create endpoint ARN \n pushClient = None\n pushClientAuth = None\n platformApplicationArn = None\n if platform == PushPlatform.GCM:\n pushClient = self.pushAndroidService\n if self.pushSnsMode:\n platformApplicationArn = self.pushAndroidPlatformArn\n if self.pushGluuMode:\n pushClientAuth = self.pushAndroidServiceAuth\n elif platform == PushPlatform.APNS:\n pushClient = self.pushAppleService\n if self.pushSnsMode:\n platformApplicationArn = self.pushApplePlatformArn\n if self.pushGluuMode:\n pushClientAuth = self.pushAppleServiceAuth\n else:\n return None\n\n deviceData = u2fDevice.getDeviceData()\n pushToken = deviceData.getPushToken()\n \n print \"Super-Gluu. Get target endpoint ARN. Attempting to create target endpoint ARN for user: '%s'\" % user.getUserId()\n if self.pushSnsMode:\n targetEndpointArn = pushSnsService.createPlatformArn(pushClient, platformApplicationArn, pushToken, user)\n else:\n customUserData = pushSnsService.getCustomUserData(user)\n registerDeviceResponse = pushClient.registerDevice(pushClientAuth, pushToken, customUserData);\n if registerDeviceResponse != None and registerDeviceResponse.getStatusCode() == 200:\n targetEndpointArn = registerDeviceResponse.getEndpointArn()\n \n if StringHelper.isEmpty(targetEndpointArn):\n\t print \"Super-Gluu. Failed to get endpoint ARN for user: '%s'\" % user.getUserId()\n \treturn None\n\n print \"Super-Gluu. Get target endpoint ARN. Create target endpoint ARN '%s' for user: '%s'\" % (targetEndpointArn, user.getUserId())\n \n # Store created endpoint ARN in device entry\n userInum = user.getAttribute(\"inum\")\n u2fDeviceUpdate = deviceRegistrationService.findUserDeviceRegistration(userInum, u2fDevice.getId())\n u2fDeviceUpdate.setDeviceNotificationConf('{\"sns_endpoint_arn\" : \"%s\"}' % targetEndpointArn)\n deviceRegistrationService.updateDeviceRegistration(userInum, u2fDeviceUpdate)\n\n return targetEndpointArn\n\n def getApplicationUri(self, session_attributes):\n if self.applicationId != None:\n return self.applicationId\n \n if not session_attributes.containsKey(\"redirect_uri\"):\n return None\n\n return session_attributes.get(\"redirect_uri\")\n\n def setRequestScopedParameters(self, identity, step):\n downloadMap = HashMap()\n if self.registrationUri != None:\n identity.setWorkingParameter(\"external_registration_uri\", self.registrationUri)\n\n if self.androidUrl!= None and step == 1:\n downloadMap.put(\"android\", self.androidUrl)\n\n if self.IOSUrl != None and step == 1:\n downloadMap.put(\"ios\", self.IOSUrl)\n \n if self.customLabel != None:\n identity.setWorkingParameter(\"super_gluu_label\", self.customLabel)\n \n identity.setWorkingParameter(\"download_url\", downloadMap)\n identity.setWorkingParameter(\"super_gluu_qr_options\", self.customQrOptions)\n\n def addGeolocationData(self, session_attributes, super_gluu_request_dictionary):\n if session_attributes.containsKey(\"remote_ip\"):\n remote_ip = session_attributes.get(\"remote_ip\")\n if StringHelper.isNotEmpty(remote_ip):\n print \"Super-Gluu. Prepare for step 2. Adding req_ip and req_loc to super_gluu_request\"\n super_gluu_request_dictionary['req_ip'] = remote_ip\n\n remote_loc_dic = self.determineGeolocationData(remote_ip)\n if remote_loc_dic == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine remote location by remote IP '%s'\" % remote_ip\n return\n\n remote_loc = \"%s, %s, %s\" % ( remote_loc_dic['country'], remote_loc_dic['regionName'], remote_loc_dic['city'] )\n remote_loc_encoded = urllib.quote(remote_loc.encode('utf-8'))\n super_gluu_request_dictionary['req_loc'] = remote_loc_encoded\n\n def determineGeolocationData(self, remote_ip):\n print \"Super-Gluu. Determine remote location. remote_ip: '%s'\" % remote_ip\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n http_client_params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15 * 1000)\n \n geolocation_service_url = \"http://ip-api.com/json/%s?fields=49177\" % remote_ip\n geolocation_service_headers = { \"Accept\" : \"application/json\" }\n\n try:\n http_service_response = httpService.executeGet(http_client, geolocation_service_url, geolocation_service_headers)\n http_response = http_service_response.getHttpResponse()\n except:\n print \"Super-Gluu. Determine remote location. Exception: \", sys.exc_info()[1]\n return None\n\n try:\n if not httpService.isResponseStastusCodeOk(http_response):\n print \"Super-Gluu. Determine remote location. Get invalid response from validation server: \", str(http_response.getStatusLine().getStatusCode())\n httpService.consume(http_response)\n return None\n \n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes)\n httpService.consume(http_response)\n finally:\n http_service_response.closeConnection()\n\n if response_string == None:\n print \"Super-Gluu. Determine remote location. Get empty response from location server\"\n return None\n \n response = json.loads(response_string)\n \n if not StringHelper.equalsIgnoreCase(response['status'], \"success\"):\n print \"Super-Gluu. Determine remote location. Get response with status: '%s'\" % response['status']\n return None\n\n return response\n\n def isUserMemberOfGroup(self, user, attribute, group):\n is_member = False\n member_of_list = user.getAttributeValues(attribute)\n if (member_of_list != None):\n for member_of in member_of_list:\n if StringHelper.equalsIgnoreCase(group, member_of) or member_of.endswith(group):\n is_member = True\n break\n\n return is_member\n\n def processAuditGroup(self, user, attribute, group):\n is_member = self.isUserMemberOfGroup(user, attribute, group)\n if (is_member):\n print \"Super-Gluu. Authenticate for processAuditGroup. User '%s' member of audit group\" % user.getUserId()\n print \"Super-Gluu. Authenticate for processAuditGroup. Sending e-mail about user '%s' login to %s\" % (user.getUserId(), self.audit_email)\n \n # Send e-mail to administrator\n user_id = user.getUserId()\n mailService = CdiUtil.bean(MailService)\n subject = \"User log in: %s\" % user_id\n body = \"User log in: %s\" % user_id\n mailService.sendMail(self.audit_email, subject, body)\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "super_gluu", "modified": false, "configurationProperties": [ { "hide": false, "value2": "{ size: 500, mSize: 0.05 }", "value1": "qr_options" }, { "hide": false, "value2": "Super Gluu", "value1": "label" }, { "hide": false, "value2": "https://jenkins-build.jans.io/identity/register", "value1": "registration_uri" }, { "hide": false, "value2": "two_step", "value1": "authentication_mode" }, { "hide": false, "value2": "gluu", "value1": "notification_service_mode" }, { "hide": false, "value2": "/etc/certs/super_gluu_creds.json", "value1": "credentials_file" }, { "hide": false, "value2": "https://play.google.com/store/apps/details?id=gluu.org.super.gluu&hl=en_US", "value1": "supergluu_android_download_url" }, { "hide": false, "value2": "https://itunes.apple.com/us/app/super-gluu/id1093479646", "value1": "supergluu_ios_download_url" } ], "baseDn": "inum=92F0-BF9E,ou=scripts,o=jans" }, { "internal": false, "aliases": [ "basic_alias1", "basic_alias2" ], "level": 10, "programmingLanguage": "python", "description": "Sample authentication module", "locationType": "ldap", "dn": "inum=A51E-76DA,ou=scripts,o=jans", "inum": "A51E-76DA", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.util import StringHelper\n\nimport java\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Basic. Initialization\"\n print \"Basic. Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Basic. Destroy\"\n print \"Basic. Destroyed successfully\"\n return True\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if (step == 1):\n print \"Basic. Authenticate for step 1\"\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return False\n\n return True\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Basic. Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "basic", "modified": false, "baseDn": "inum=A51E-76DA,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "This script is a 2 in 1. It can be used to enable user to reset its password or to enable 2FA sending a token to user's email", "dn": "inum=B270-381E,ou=scripts,o=jans", "inum": "B270-381E", "script": "# coding: utf-8\n# Janssen Project software is available under the Apache License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Christian Eland\n\n\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\n# from org.gluu.oxauth.auth import Authenticator\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.as.common.service.common import ConfigurationService\nfrom io.jans.as.common.service.common import EncryptionService\nfrom io.jans.jsf2.message import FacesMessages\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.orm.exception import AuthenticationException\n\n#dealing with smtp server\nimport smtplib\n\n#dealing with emails\nfrom email.mime.multipart import MIMEMultipart\nfrom email.mime.text import MIMEText\n\n# This one is from core Java\nfrom java.util import Arrays\n\n# to generate string token\nimport random\nimport string\n\n# regex\nimport re\n\nimport urllib\n\nimport java\n\nclass EmailValidator():\n '''\n Class to check e-mail format\n '''\n regex = '^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$'\n\n def check(self, email):\n '''\n Check if email format is valid\n returns: boolean\n '''\n\n if(re.search(self.regex,email)):\n print \"Forgot Password - %s is a valid email format\" % email\n return True\n else:\n print \"Forgot Password - %s is an invalid email format\" % email\n return False\n\nclass Token:\n #class that deals with string token\n\n def generateToken(self):\n ''' method to generate token string\n returns: String\n '''\n letters = string.ascii_lowercase\n\n #token lenght\n lenght = 20\n\n #generate token\n token = ''.join(random.choice(letters) for i in range(lenght))\n print \"Forgot Password - Generating token\"\n\n return token\n\n\nclass EmailSender():\n #class that sends e-mail through smtp\n\n def getSmtpConfig(self):\n '''\n get SMTP config from Gluu Server\n return dict\n '''\n \n smtpconfig = CdiUtil.bean(ConfigurationService).getConfiguration().getSmtpConfiguration()\n \n if smtpconfig is None:\n print \"Forgot Password - SMTP CONFIG DOESN'T EXIST - Please configure\"\n\n else:\n print \"Forgot Password - SMTP CONFIG FOUND\"\n encryptionService = CdiUtil.bean(EncryptionService)\n smtp_config = {\n 'host' : smtpconfig.getHost(),\n 'port' : smtpconfig.getPort(),\n 'user' : smtpconfig.getUserName(),\n 'from' : smtpconfig.getFromEmailAddress(),\n 'pwd_decrypted' : encryptionService.decrypt(smtpconfig.getPassword()),\n 'req_ssl' : smtpconfig.isRequiresSsl(),\n 'requires_authentication' : smtpconfig.isRequiresAuthentication(),\n 'server_trust' : smtpconfig.isServerTrust()\n }\n\n return smtp_config\n\n \n\n def sendEmail(self,useremail,token):\n '''\n send token by e-mail to useremail\n '''\n\n # server connection \n smtpconfig = self.getSmtpConfig()\n \n try:\n s = smtplib.SMTP(smtpconfig['host'], port=smtpconfig['port'])\n \n\n if smtpconfig['requires_authentication']:\n \n if smtpconfig['req_ssl']:\n s.starttls()\n \n s.login(smtpconfig['user'], smtpconfig['pwd_decrypted'])\n\n \n #message setup\n msg = MIMEMultipart() #create message\n \n message = \"Here is your token: %s\" % token\n\n msg['From'] = smtpconfig['from'] #sender\n msg['To'] = useremail #recipient\n msg['Subject'] = \"Password Reset Request\" #subject\n\n #attach message body\n msg.attach(MIMEText(message, 'plain'))\n\n #send message via smtp server\n # send_message method is for python3 only s.send_message(msg)\n\n #send email (python2)\n s.sendmail(msg['From'],msg['To'],msg.as_string())\n \n #after sent, delete\n del msg\n\n except smtplib.SMTPAuthenticationError as err:\n print \"Forgot Password - SMTPAuthenticationError - %s - %s\" % (MY_ADDRESS,PASSWORD)\n print err\n\n except smtplib.smtplib.SMTPSenderRefused as err:\n print \"Forgot Password - SMTPSenderRefused - \" + err\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n\n print \"Forgot Password - Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Forgot Password - Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n # I'm not sure why is 11 and not 2\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n '''\n Authenticates user\n Step 1 will be defined according to SCRIPT_FUNCTION custom attribute\n returns: boolean\n '''\n\n #gets custom attribute\n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n\n print \"Forgot Password - %s - Authenticate for step %s\" % (sf, step)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n\n if step == 1:\n\n if sf == \"forgot_password\":\n\n \n authenticationService = CdiUtil.bean(AuthenticationService)\n\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n \n if not logged_in:\n\n \n email = ServerUtil.getFirstValue(requestParameters, \"ForgotPasswordForm:useremail\")\n validator = EmailValidator()\n if not validator.check(email):\n print \"Forgot Password - Email format invalid\"\n return False\n\n else:\n print \"Forgot Password -Email format valid\"\n \n print \"Forgot Password - Entered email is %s\" % email\n identity.setWorkingParameter(\"useremail\",email)\n \n # Just trying to get the user by the email\n user_service = CdiUtil.bean(UserService)\n user2 = user_service.getUserByAttribute(\"mail\", email)\n\n if user2 is not None:\n \n print user2\n print \"Forgot Password - User with e-mail %s found.\" % user2.getAttribute(\"mail\")\n \n # send email\n new_token = Token()\n token = new_token.generateToken() \n sender = EmailSender()\n print \"Email: \" + email\n print \"Token: \" + token\n sender.sendEmail(email,token)\n\n \n identity.setWorkingParameter(\"token\", token)\n print identity.getWorkingParameter(\"token\")\n \n \n \n else:\n print \"Forgot Password - User with e-mail %s not found\" % email\n\n return True\n\n\n else:\n # if user is already authenticated, returns true.\n\n user = authenticationService.getAuthenticatedUser()\n print \"Forgot Password - User %s is authenticated\" % user.getUserId()\n\n return True\n\n if sf == \"email_2FA\":\n\n try:\n # Just trying to get the user by the uid\n authenticationService = CdiUtil.bean(AuthenticationService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n \n print 'email_2FA user_name: ' + str(user_name)\n \n user_service = CdiUtil.bean(UserService)\n user2 = user_service.getUserByAttribute(\"uid\", user_name)\n\n if user2 is not None:\n print \"user:\"\n print user2\n print \"Forgot Password - User with e-mail %s found.\" % user2.getAttribute(\"mail\")\n email = user2.getAttribute(\"mail\")\n uid = user2.getAttribute(\"uid\")\n\n # send token\n # send email\n new_token = Token()\n token = new_token.generateToken() \n sender = EmailSender()\n print \"Email: \" + email\n print \"Token: \" + token\n sender.sendEmail(email,token)\n\n identity.setWorkingParameter(\"token\", token)\n\n return True\n\n except AuthenticationException as err:\n print err\n return False\n\n \n \n\n if step == 2:\n # step 2 user enters token\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n \n authenticationService = CdiUtil.bean(AuthenticationService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n # retrieves token typed by user\n input_token = ServerUtil.getFirstValue(requestParameters, \"ResetTokenForm:inputToken\")\n\n print \"Forgot Password - Token inputed by user is %s\" % input_token\n\n token = identity.getWorkingParameter(\"token\")\n print \"Forgot Password - Retrieved token\"\n email = identity.getWorkingParameter(\"useremail\")\n print \"Forgot Password - Retrieved email\" \n\n # compares token sent and token entered by user\n if input_token == token:\n print \"Forgot Password - token entered correctly\"\n identity.setWorkingParameter(\"token_valid\", True)\n \n return True\n\n else:\n print \"Forgot Password - wrong token\"\n return False\n\n \n if step == 3:\n # step 3 enters new password (only runs if custom attibute is forgot_password\n\n user_service = CdiUtil.bean(UserService)\n\n email = identity.getWorkingParameter(\"useremail\")\n user2 = user_service.getUserByAttribute(\"mail\", email)\n\n\n user_name = user2.getUserId()\n \n new_password = ServerUtil.getFirstValue(requestParameters, \"UpdatePasswordForm:newPassword\")\n \n print \"Forgot Password - New password submited\"\n \n # update user info with new password\n user2.setAttribute(\"userPassword\",new_password)\n print \"Forgot Password - user uid is %s\" % user_name\n print \"Forgot Password - Updating user with new password...\"\n user_service.updateUser(user2)\n print \"Forgot Password - User updated with new password\"\n # authenticates and login user\n print \"Forgot Password - Loading authentication service...\"\n authenticationService2 = CdiUtil.bean(AuthenticationService)\n\n print \"Forgot Password - Trying to authenticate user...\"\n login = authenticationService2.authenticate(user_name, new_password)\n \n return True\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \n print \"Forgot Password - Preparing for step %s\" % step\n \n return True\n\n\n # Return value is a java.util.List \n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"token\",\"useremail\",\"token_valid\")\n\n\n # This method determines how many steps the authentication flow may have\n # It doesn't have to be a constant value\n def getCountAuthenticationSteps(self, configurationAttributes):\n \n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n \n\n # if option is forgot_token\n if sf == \"forgot_password\":\n print \"Entered sf == forgot_password\"\n return 3\n \n # if ption is email_2FA\n if sf == \"email_2FA\":\n print \"Entered if sf=email_2FA\"\n return 2\n\n else:\n print \"Forgot Password - Custom Script Custom Property Incorrect, please check\"\n\n\n # The xhtml page to render upon each step of the flow\n # returns a string relative to oxAuth webapp root\n def getPageForStep(self, configurationAttributes, step):\n \n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n\n if step == 1:\n\n if sf == \"forgot_password\":\n return \"/auth/forgot_password/forgot.xhtml\"\n\n if sf == 'email_2FA':\n return \"\"\n\n if step == 2:\n return \"/auth/forgot_password/entertoken.xhtml\"\n\n if step == 3:\n if sf == \"forgot_password\":\n return \"/auth/forgot_password/newpassword.xhtml\"\n\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n # Method used on version 2 (11?)\n return -1\n \n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "SCRIPT_FUNCTION" } ], "scriptType": "person_authentication", "name": "Forgot_Password_2FA_Token", "modified": false, "configurationProperties": [ { "hide": false, "value2": "forgot_password", "value1": "SCRIPT_FUNCTION" } ], "baseDn": "inum=B270-381E,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "Agama Script", "locationType": "ldap", "dn": "inum=BADA-BADA,ou=scripts,o=jans", "inum": "BADA-BADA", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\nfrom io.jans.agama import NativeJansFlowBridge\nfrom io.jans.agama.engine.misc import FlowUtils\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.jsf2.service import FacesService\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nfrom jakarta.faces.application import FacesMessage\n\nimport java\nimport sys\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Agama. Initialization\" \n prop = \"cust_param_name\"\n self.cust_param_name = self.configProperty(configurationAttributes, prop)\n \n if self.cust_param_name == None:\n print \"Agama. Custom parameter name not referenced via property '%s'\" % prop\n return False\n \n print \"Agama. Request param '%s' will be used to pass flow inputs\" % self.cust_param_name\n print \"Agama. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Agama. Destroy\"\n print \"Agama. Destroyed successfully\"\n return True\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n\n if step == 1:\n print \"Agama. Authenticate for step 1\"\n \n try:\n bridge = CdiUtil.bean(NativeJansFlowBridge)\n result = bridge.close()\n \n if result == None or not result.isSuccess():\n print \"Agama. Flow DID NOT finished successfully\"\n return False\n else:\n print \"Agama. Flow finished successfully\"\n data = result.getData()\n userId = data.get(\"userId\") if data != None else None\n \n if userId == None:\n print \"Agama. No userId provided in flow result.\" \n self.setMessageError(FacesMessage.SEVERITY_ERROR, \"Unable to determine identity of user\")\n return False\n \n authenticated = CdiUtil.bean(AuthenticationService).authenticate(userId)\n \n if not authenticated:\n print \"Agama. Unable to authenticate %s\" % userId\n return False\n except:\n print \"Agama. Exception: \", sys.exc_info()[1]\n return False\n\n return True\n\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \n if not CdiUtil.bean(FlowUtils).serviceEnabled():\n print \"Agama. Please ENABLE Agama engine in auth-server configuration\"\n return False\n\n if step == 1:\n print \"Agama. Prepare for Step 1\"\n\n session = CdiUtil.bean(Identity).getSessionId()\n if session == None:\n print \"Agama. Failed to retrieve session_id\"\n return False\n \n param = session.getSessionAttributes().get(self.cust_param_name) \n if param == None:\n print \"Agama. Request param '%s' is missing or has no value\" % self.cust_param_name\n return False\n \n (qn, ins) = self.extractParams(param)\n if qn == None:\n print \"Agama. Param '%s' is missing the name of the flow to be launched\" % self.cust_param_name\n return False\n \n try:\n bridge = CdiUtil.bean(NativeJansFlowBridge)\n running = bridge.prepareFlow(session.getId(), qn, ins)\n \n if running == None:\n print \"Agama. Flow '%s' does not exist!\" % qn\n return False\n elif running:\n print \"Agama. A flow is already in course\"\n \n print \"Agama. Redirecting to start/resume agama flow '%s'...\" % qn\n \n CdiUtil.bean(FacesService).redirectToExternalURL(bridge.getTriggerUrl())\n except:\n print \"Agama. An error occurred when launching flow '%s'. Check jans-auth logs\" % qn\n print \"Agama. Exception: \", sys.exc_info()[1]\n return False\n #except java.lang.Throwable, ex:\n # ex.printStackTrace() \n # return False \n return True\n \n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n # page referenced here is only used when a flow is restarted\n return \"/\" + CdiUtil.bean(NativeJansFlowBridge).scriptPageUrl()\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n# Misc routines\n\n def configProperty(self, configProperties, name):\n prop = configProperties.get(name)\n return None if prop == None else prop.getValue2()\n\n def setMessageError(self, severity, msg):\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n facesMessages.clear()\n facesMessages.add(severity, msg)\n \n def extractParams(self, param):\n\n # param must be of the form QN-INPUT where QN is the qualified name of the flow to launch\n # INPUT is a JSON object that contains the arguments to use for the flow call.\n # The keys of this object should match the already defined flow inputs. Ideally, and \n # depending on the actual flow implementation, some keys may not even be required \n # QN and INPUTS are separated by a hyphen\n # INPUT must be properly URL-encoded when HTTP GET is used\n \n i = param.find(\"-\")\n if i == 0:\n return (None, None)\n elif i == -1:\n return (param, None)\n else:\n return (param[:i], param[i+1:])\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "agama", "modified": false, "configurationProperties": [ { "hide": false, "value2": "agama_flow", "value1": "cust_param_name" } ], "baseDn": "inum=BADA-BADA,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "GitHub Inbound Authentication script", "locationType": "ldap", "dn": "inum=E706-F8A8,ou=scripts,o=jans", "inum": "E706-F8A8", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.as.common.model.common import User\nfrom io.jans.as.model.jwt import Jwt\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.common.service.common import UserService\nfrom io.jans.as.server.service.net import HttpService\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.as.persistence.model.configuration import GluuConfiguration\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nfrom io.jans.jsf2.service import FacesService\nfrom java.util import Arrays, UUID\n\nimport json\nimport sys\nimport datetime\nimport urllib\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"GitHub. Initialization\"\n\n # read config from github_creds_file\n github_creds_file = configurationAttributes.get(\"github_creds_file\").getValue2()\n f = open(github_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n print creds\n except:\n print \"GitHub: Initialization. Failed to load creds from file:\", github_creds_file\n print \"Exception: \", sys.exc_info()[1]\n return False\n finally:\n f.close()\n\n self.op_server = str(creds[\"op_server\"])\n self.client_id = str(creds[\"client_id\"])\n self.client_secret = str(creds[\"client_secret\"])\n self.authorization_uri = str(creds[\"authorization_uri\"])\n self.token_uri = str(creds[\"token_uri\"])\n self.userinfo_uri = str(creds[\"userinfo_uri\"])\n self.redirect_uri = str(creds[\"redirect_uri\"])\n self.scope = str(creds[\"scope\"])\n self.title = str(creds[\"title\"])\n self.auto_redirect = creds[\"auto_redirect\"]\n\n print \"GitHub: Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"GitHub. Destroy\"\n print \"GitHub. Destroyed successfully\"\n return True\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"GitHub: authenticate called for step %s\" % str(step)\n identity = CdiUtil.bean(Identity)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n # Get Access Token\n tokenResponse = self.getToken(requestParameters)\n if tokenResponse is None:\n return False\n\n # Get User Info\n userInfo = self.getUserInfo(tokenResponse[\"access_token\"])\n foundUser = self.addUser(userInfo)\n if foundUser is None:\n return False\n\n identity.setWorkingParameter(\"gihub_username\", userInfo[\"login\"])\n identity.setWorkingParameter(\"gihub_access_token\", tokenResponse[\"access_token\"])\n\n print \"GitHub: Successfully authenticated\"\n\n loggedIn = authenticationService.authenticate(foundUser.getUserId())\n print \"GitHub: Authentication: %s\" % str(loggedIn)\n return loggedIn\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n print \"GitHub: prepareForStep called for step %s\" % str(step)\n if step == 1:\n # redirect to external OIDC server\n\n redirect_url_elements = [self.authorization_uri,\n \"?response_type=code id_token\",\n \"&client_id=\", self.client_id,\n \"&scope=\", self.scope,\n \"&redirect_uri=\", self.redirect_uri]\n redirect_url = \"\".join(redirect_url_elements)\n\n identity = CdiUtil.bean(Identity)\n\n if self.auto_redirect:\n facesService = CdiUtil.bean(FacesService)\n facesService.redirectToExternalURL(redirect_url)\n else:\n identity.setWorkingParameter(\"oidc_redirect_uri\", redirect_url)\n identity.setWorkingParameter(\"oidc_title\", self.title)\n\n return True\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n print \"GitHub: getExtraParametersForStep called for step %s\" % str(step)\n return Arrays.asList(\"gihub_username\", \"gihub_access_token\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n print \"GitHub: getCountAuthenticationSteps called\"\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n print \"GitHub: getPageForStep called for step %s\" % str(step)\n if(step == 1):\n return \"/auth/github/github.xhtml\"\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n print \"GitHub: getNextStep called for step %s\" % str(step)\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"GitHub: Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def generalLogin(self, identity, authenticationService):\n print \"GitHub: general login\"\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n return logged_in\n\n def getLocalPrimaryKey(self):\n entryManager = CdiUtil.bean(PersistenceEntryManager)\n config = GluuConfiguration()\n config = entryManager.find(config.getClass(), \"ou=configuration,o=jans\")\n # Pick (one) attribute where user id is stored (e.g. uid/mail)\n # primaryKey is the primary key on the backend AD / LDAP Server\n # localPrimaryKey is the primary key on Janssen. This attr value has been mapped with the primary key attr of the backend AD / LDAP when configuring cache refresh\n uid_attr = config.getIdpAuthn().get(0).getConfig().findValue(\"localPrimaryKey\").asText()\n print \"GitHub: init. uid attribute is '%s'\" % uid_attr\n return uid_attr\n\n def getToken(self, requestParameters):\n print \"GitHub: Get Access Token\"\n oidcCode = ServerUtil.getFirstValue(requestParameters, \"code\")\n httpService = CdiUtil.bean(HttpService)\n httpclient = httpService.getHttpsClient()\n tokenRequestData = urllib.urlencode({\n \"code\" : oidcCode,\n \"grant_type\" : \"authorization_code\",\n \"redirect_uri\": self.redirect_uri,\n \"client_id\": self.client_id,\n \"client_secret\": self.client_secret\n })\n\n tokenRequestHeaders = { \"Content-type\" : \"application/x-www-form-urlencoded\", \"Accept\" : \"application/json\" }\n\n resultResponse = httpService.executePost(httpclient, self.token_uri, None, tokenRequestHeaders, tokenRequestData)\n httpResponse = resultResponse.getHttpResponse()\n httpResponseStatusCode = httpResponse.getStatusLine().getStatusCode()\n print \"OIDC: token response status code: %s\" % httpResponseStatusCode\n if str(httpResponseStatusCode) != \"200\":\n print \"OIDC: Failed to get token, status code %s\" % httpResponseStatusCode\n return None\n\n responseBytes = httpService.getResponseContent(httpResponse)\n responseString = httpService.convertEntityToString(responseBytes)\n tokenResponse = json.loads(responseString)\n\n return tokenResponse\n\n def addUser(self, user):\n try:\n print \"GitHub: Adding user\"\n userId = user[\"login\"]\n userService = CdiUtil.bean(UserService)\n foundUser = userService.getUserByAttribute(\"jansExtUid\", \"github:\"+userId)\n\n if foundUser is None:\n print \"GitHub: User not found, adding new\"\n foundUser = User()\n foundUser.setAttribute(\"jansExtUid\", \"github:\"+userId)\n foundUser.setAttribute(\"jansEmail\", user[\"email\"])\n foundUser.setAttribute(\"mail\", user[\"email\"])\n foundUser.setAttribute(\"displayName\", \"github:\"+userId)\n foundUser.setAttribute(\"givenName\", \"github:\"+userId)\n foundUser.setAttribute(self.getLocalPrimaryKey(), userId)\n foundUser = userService.addUser(foundUser, True)\n\n return foundUser\n except Exception as e:\n print e\n print \"GitHub: Add user Exception: \", sys.exc_info()[1]\n return None\n\n def getUserInfo(self, accessToken):\n try:\n print \"GitHub: Get Userinfo\"\n httpService = CdiUtil.bean(HttpService)\n httpclient = httpService.getHttpsClient()\n tokenRequestHeaders = { \"Authorization\" : \"Bearer %s\" % accessToken, \"Accept\" : \"application/json\" }\n\n resultResponse = httpService.executeGet(httpclient, self.userinfo_uri, tokenRequestHeaders)\n httpResponse = resultResponse.getHttpResponse()\n httpResponseStatusCode = httpResponse.getStatusLine().getStatusCode()\n print \"GitHub: userinfo response status code: %s\" % httpResponseStatusCode\n if str(httpResponseStatusCode) != \"200\":\n print \"GitHub: Failed to get userinfo, status code %s\" % httpResponseStatusCode\n return None\n\n responseBytes = httpService.getResponseContent(httpResponse)\n responseString = httpService.convertEntityToString(responseBytes)\n userinfoResponse = json.loads(responseString)\n\n print userinfoResponse\n\n return userinfoResponse\n except Exception as e:\n print e\n return None\n", "enabled": false, "revision": 0, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "github", "modified": false, "configurationProperties": [ { "hide": false, "value2": "true", "value1": "hide" }, { "hide": false, "value2": "/etc/jans/conf/github.json", "value1": "github_creds_file" }, { "hide": false, "value2": "GitHub Login", "value1": "description" } ], "baseDn": "inum=E706-F8A8,ou=scripts,o=jans" } ], "start": 0, "totalEntriesCount": 13 } 24-11 09:33:44.072 INFO com.intuit.karate.Logger Logger.java:104- [print] testScript before = {"internal":false,"level":50,"programmingLanguage":"python","description":"Twilio SMS authentication module","locationType":"ldap","dn":"inum=09A0-93D6,ou=scripts,o=jans","inum":"09A0-93D6","script":"# Janssen Project software is available under the Apache 2.0 License (2004). See http:\/\/www.apache.org\/licenses\/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Gasmyr Mougang\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nimport com.twilio.Twilio as Twilio\nimport com.twilio.rest.api.v2010.account.Message as Message\nimport com.twilio.type.PhoneNumber as PhoneNumber\nimport org.codehaus.jettison.json.JSONArray as JSONArray\n\n\nimport java\nimport random\nimport jarray\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.mobile_number = None\n self.identity = CdiUtil.bean(Identity)\n\n def init(self, customScript, configurationAttributes):\n print \"==============================================\"\n print \"===TWILIO SMS INITIALIZATION==================\"\n print \"==============================================\"\n self.ACCOUNT_SID = None\n self.AUTH_TOKEN = None\n self.FROM_NUMBER = None\n\n # Get Custom Properties\n try:\n self.ACCOUNT_SID = configurationAttributes.get(\"twilio_sid\").getValue2()\n except:\n print 'TwilioSMS, Missing required configuration attribute \"twilio_sid\"'\n\n try:\n self.AUTH_TOKEN = configurationAttributes.get(\"twilio_token\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"twilio_token\"'\n try:\n self.FROM_NUMBER = configurationAttributes.get(\"from_number\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"from_number\"'\n\n if None in (self.ACCOUNT_SID, self.AUTH_TOKEN, self.FROM_NUMBER):\n print \"twilio_sid, twilio_token, from_number is empty ... returning False\"\n return False\n\n print \"===TWILIO SMS INITIALIZATION DONE PROPERLY=====\" \n return True\n\n def destroy(self, configurationAttributes):\n print \"Twilio SMS. Destroy\"\n print \"Twilio SMS. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"==============================================\"\n print \"====TWILIO SMS AUTHENCATION===================\"\n print \"==============================================\"\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n sessionIdService = CdiUtil.bean(SessionIdService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n form_name = ServerUtil.getFirstValue(requestParameters, \"TwilioSmsloginForm\")\n\n print \"TwilioSMS. form_response_passcode: %s\" % str(form_passcode)\n\n if step == 1:\n print \"==============================================\"\n print \"=TWILIO SMS STEP 1 | Password Authentication==\"\n print \"==============================================\"\n credentials = self.identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print 'TwilioSMS, Error retrieving user %s from LDAP' % (user_name)\n return False\n\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n self.mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"mobile\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if self.mobile_number == None:\n print \"TwilioSMS, Error finding mobile number for user '%s'\" % user_name \n \n except:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print 'TwilioSMS, Error finding mobile number for \"%s\". Exception: %s` % (user_name, sys.exc_info()[1])`'\n return False\n\n # Generate Random six digit code and store it in array\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n sessionId.getSessionAttributes().put(\"code\", code)\n\n try:\n Twilio.init(self.ACCOUNT_SID, self.AUTH_TOKEN);\n message = Message.creator(PhoneNumber(self.mobile_number), PhoneNumber(self.FROM_NUMBER), str(code)).create();\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print 'TwilioSMs, Message Sid: %s' % (message.getSid())\n print 'TwilioSMs, User phone: %s' % (self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n sessionId.getSessionAttributes().put(\"mobile_number\", self.mobile_number)\n sessionId.getSessionAttributes().put(\"mobile\", self.mobile_number)\n sessionIdService.updateSessionId(sessionId)\n self.identity.setWorkingParameter(\"mobile_number\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\",self.mobile_number)\n self.identity.setWorkingParameter(\"mobile\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile\",self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"Number: %s\" % (self.identity.getWorkingParameter(\"mobile_number\"))\n print \"Mobile: %s\" % (self.identity.getWorkingParameter(\"mobile\"))\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"========================================\"\n print \"===TWILIO SMS FIRST STEP DONE PROPERLY==\"\n print \"========================================\"\n return True\n except Exception, ex:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n print \"TwilioSMS. Error sending message to Twilio\"\n print \"TwilioSMS. Unexpected error:\", ex\n\n return False\n elif step == 2:\n # Retrieve the session attribute\n print \"==============================================\"\n print \"=TWILIO SMS STEP 2 | Password Authentication==\"\n print \"==============================================\"\n code = session_attributes.get(\"code\")\n print '=======> Session code is \"%s\"' % str(code)\n sessionIdService = CdiUtil.bean(SessionIdService)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n code = sessionId.getSessionAttributes().get(\"code\")\n print '=======> Database code is \"%s\"' % str(code)\n self.identity.setSessionId(sessionId)\n print \"==============================================\"\n print \"TwilioSMS. Code: %s\" % str(code)\n print \"==============================================\"\n if code is None:\n print \"TwilioSMS. Failed to find previously sent code\"\n return False\n\n if form_passcode is None:\n print \"TwilioSMS. Passcode is empty\"\n return False\n\n if len(form_passcode) != 6:\n print \"TwilioSMS. Passcode from response is not 6 digits: %s\" % form_passcode\n return False\n\n if form_passcode == code:\n print \"TiwlioSMS, SUCCESS! User entered the same code!\"\n print \"========================================\"\n print \"===TWILIO SMS SECOND STEP DONE PROPERLY\"\n print \"========================================\"\n return True\n\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n print \"TwilioSMS. FAIL! User entered the wrong code! %s != %s\" % (form_passcode, code)\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Incorrect Twilio code, please try again.\")\n print \"================================================\"\n print \"===TWILIO SMS SECOND STEP FAILED: INCORRECT CODE\"\n print \"================================================\"\n return False\n\n print \"TwilioSMS. ERROR: step param not found or != (1|2)\"\n\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"TwilioSMS. Prepare for Step 1\"\n return True\n elif step == 2:\n print \"TwilioSMS. Prepare for Step 2\"\n return True\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"\/auth\/otp_sms\/otp_sms.xhtml\"\n\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n","enabled":false,"revision":1,"moduleProperties":[{"value2":"interactive","value1":"usage_type"},{"value2":"ldap","value1":"location_type"}],"scriptType":"person_authentication","name":"twilio_sms","modified":false,"configurationProperties":[{"hide":false,"value1":"twilio_sid","description":"Twilio account SID"},{"hide":false,"value1":"twilio_token","description":"Twilio API token"},{"hide":false,"value1":"from_number","description":"Twilio phone number with SMS capabilities"}],"baseDn":"inum=09A0-93D6,ou=scripts,o=jans"} 24-11 09:33:44.090 INFO com.intuit.karate.Logger Logger.java:104- [print] testScript after = {"internal":false,"level":50,"programmingLanguage":"python","description":"Test_PERSON_AUTHENTICATION_description","locationType":"ldap","dn":null,"inum":null,"script":"# Janssen Project software is available under the Apache 2.0 License (2004). See http:\/\/www.apache.org\/licenses\/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Gasmyr Mougang\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nimport com.twilio.Twilio as Twilio\nimport com.twilio.rest.api.v2010.account.Message as Message\nimport com.twilio.type.PhoneNumber as PhoneNumber\nimport org.codehaus.jettison.json.JSONArray as JSONArray\n\n\nimport java\nimport random\nimport jarray\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.mobile_number = None\n self.identity = CdiUtil.bean(Identity)\n\n def init(self, customScript, configurationAttributes):\n print \"==============================================\"\n print \"===TWILIO SMS INITIALIZATION==================\"\n print \"==============================================\"\n self.ACCOUNT_SID = None\n self.AUTH_TOKEN = None\n self.FROM_NUMBER = None\n\n # Get Custom Properties\n try:\n self.ACCOUNT_SID = configurationAttributes.get(\"twilio_sid\").getValue2()\n except:\n print 'TwilioSMS, Missing required configuration attribute \"twilio_sid\"'\n\n try:\n self.AUTH_TOKEN = configurationAttributes.get(\"twilio_token\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"twilio_token\"'\n try:\n self.FROM_NUMBER = configurationAttributes.get(\"from_number\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"from_number\"'\n\n if None in (self.ACCOUNT_SID, self.AUTH_TOKEN, self.FROM_NUMBER):\n print \"twilio_sid, twilio_token, from_number is empty ... returning False\"\n return False\n\n print \"===TWILIO SMS INITIALIZATION DONE PROPERLY=====\" \n return True\n\n def destroy(self, configurationAttributes):\n print \"Twilio SMS. Destroy\"\n print \"Twilio SMS. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"==============================================\"\n print \"====TWILIO SMS AUTHENCATION===================\"\n print \"==============================================\"\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n sessionIdService = CdiUtil.bean(SessionIdService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n form_name = ServerUtil.getFirstValue(requestParameters, \"TwilioSmsloginForm\")\n\n print \"TwilioSMS. form_response_passcode: %s\" % str(form_passcode)\n\n if step == 1:\n print \"==============================================\"\n print \"=TWILIO SMS STEP 1 | Password Authentication==\"\n print \"==============================================\"\n credentials = self.identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print 'TwilioSMS, Error retrieving user %s from LDAP' % (user_name)\n return False\n\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n self.mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"mobile\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if self.mobile_number == None:\n print \"TwilioSMS, Error finding mobile number for user '%s'\" % user_name \n \n except:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print 'TwilioSMS, Error finding mobile number for \"%s\". Exception: %s` % (user_name, sys.exc_info()[1])`'\n return False\n\n # Generate Random six digit code and store it in array\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n sessionId.getSessionAttributes().put(\"code\", code)\n\n try:\n Twilio.init(self.ACCOUNT_SID, self.AUTH_TOKEN);\n message = Message.creator(PhoneNumber(self.mobile_number), PhoneNumber(self.FROM_NUMBER), str(code)).create();\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print 'TwilioSMs, Message Sid: %s' % (message.getSid())\n print 'TwilioSMs, User phone: %s' % (self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n sessionId.getSessionAttributes().put(\"mobile_number\", self.mobile_number)\n sessionId.getSessionAttributes().put(\"mobile\", self.mobile_number)\n sessionIdService.updateSessionId(sessionId)\n self.identity.setWorkingParameter(\"mobile_number\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\",self.mobile_number)\n self.identity.setWorkingParameter(\"mobile\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile\",self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"Number: %s\" % (self.identity.getWorkingParameter(\"mobile_number\"))\n print \"Mobile: %s\" % (self.identity.getWorkingParameter(\"mobile\"))\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"========================================\"\n print \"===TWILIO SMS FIRST STEP DONE PROPERLY==\"\n print \"========================================\"\n return True\n except Exception, ex:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n print \"TwilioSMS. Error sending message to Twilio\"\n print \"TwilioSMS. Unexpected error:\", ex\n\n return False\n elif step == 2:\n # Retrieve the session attribute\n print \"==============================================\"\n print \"=TWILIO SMS STEP 2 | Password Authentication==\"\n print \"==============================================\"\n code = session_attributes.get(\"code\")\n print '=======> Session code is \"%s\"' % str(code)\n sessionIdService = CdiUtil.bean(SessionIdService)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n code = sessionId.getSessionAttributes().get(\"code\")\n print '=======> Database code is \"%s\"' % str(code)\n self.identity.setSessionId(sessionId)\n print \"==============================================\"\n print \"TwilioSMS. Code: %s\" % str(code)\n print \"==============================================\"\n if code is None:\n print \"TwilioSMS. Failed to find previously sent code\"\n return False\n\n if form_passcode is None:\n print \"TwilioSMS. Passcode is empty\"\n return False\n\n if len(form_passcode) != 6:\n print \"TwilioSMS. Passcode from response is not 6 digits: %s\" % form_passcode\n return False\n\n if form_passcode == code:\n print \"TiwlioSMS, SUCCESS! User entered the same code!\"\n print \"========================================\"\n print \"===TWILIO SMS SECOND STEP DONE PROPERLY\"\n print \"========================================\"\n return True\n\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n print \"TwilioSMS. FAIL! User entered the wrong code! %s != %s\" % (form_passcode, code)\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Incorrect Twilio code, please try again.\")\n print \"================================================\"\n print \"===TWILIO SMS SECOND STEP FAILED: INCORRECT CODE\"\n print \"================================================\"\n return False\n\n print \"TwilioSMS. ERROR: step param not found or != (1|2)\"\n\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"TwilioSMS. Prepare for Step 1\"\n return True\n elif step == 2:\n print \"TwilioSMS. Prepare for Step 2\"\n return True\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"\/auth\/otp_sms\/otp_sms.xhtml\"\n\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n","enabled":false,"revision":1,"moduleProperties":[{"value2":"interactive","value1":"usage_type"},{"value2":"ldap","value1":"location_type"}],"scriptType":"person_authentication","name":"Test_PERSON_AUTHENTICATION","modified":false,"configurationProperties":[{"hide":false,"value1":"twilio_sid","description":"Twilio account SID"},{"hide":false,"value1":"twilio_token","description":"Twilio API token"},{"hide":false,"value1":"from_number","description":"Twilio phone number with SMS capabilities"}],"baseDn":"inum=09A0-93D6,ou=scripts,o=jans"} 24-11 09:33:44.298 INFO com.intuit.karate.Logger Logger.java:104- [print] { "internal": false, "level": 50, "programmingLanguage": "python", "description": "Test_PERSON_AUTHENTICATION_description", "locationType": "ldap", "dn": "inum=39c49e74-4cd0-461c-a04a-a08861a94218,ou=scripts,o=jans", "inum": "39c49e74-4cd0-461c-a04a-a08861a94218", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Gasmyr Mougang\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nimport com.twilio.Twilio as Twilio\nimport com.twilio.rest.api.v2010.account.Message as Message\nimport com.twilio.type.PhoneNumber as PhoneNumber\nimport org.codehaus.jettison.json.JSONArray as JSONArray\n\n\nimport java\nimport random\nimport jarray\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.mobile_number = None\n self.identity = CdiUtil.bean(Identity)\n\n def init(self, customScript, configurationAttributes):\n print \"==============================================\"\n print \"===TWILIO SMS INITIALIZATION==================\"\n print \"==============================================\"\n self.ACCOUNT_SID = None\n self.AUTH_TOKEN = None\n self.FROM_NUMBER = None\n\n # Get Custom Properties\n try:\n self.ACCOUNT_SID = configurationAttributes.get(\"twilio_sid\").getValue2()\n except:\n print 'TwilioSMS, Missing required configuration attribute \"twilio_sid\"'\n\n try:\n self.AUTH_TOKEN = configurationAttributes.get(\"twilio_token\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"twilio_token\"'\n try:\n self.FROM_NUMBER = configurationAttributes.get(\"from_number\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"from_number\"'\n\n if None in (self.ACCOUNT_SID, self.AUTH_TOKEN, self.FROM_NUMBER):\n print \"twilio_sid, twilio_token, from_number is empty ... returning False\"\n return False\n\n print \"===TWILIO SMS INITIALIZATION DONE PROPERLY=====\" \n return True\n\n def destroy(self, configurationAttributes):\n print \"Twilio SMS. Destroy\"\n print \"Twilio SMS. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"==============================================\"\n print \"====TWILIO SMS AUTHENCATION===================\"\n print \"==============================================\"\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n sessionIdService = CdiUtil.bean(SessionIdService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n form_name = ServerUtil.getFirstValue(requestParameters, \"TwilioSmsloginForm\")\n\n print \"TwilioSMS. form_response_passcode: %s\" % str(form_passcode)\n\n if step == 1:\n print \"==============================================\"\n print \"=TWILIO SMS STEP 1 | Password Authentication==\"\n print \"==============================================\"\n credentials = self.identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print 'TwilioSMS, Error retrieving user %s from LDAP' % (user_name)\n return False\n\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n self.mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"mobile\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if self.mobile_number == None:\n print \"TwilioSMS, Error finding mobile number for user '%s'\" % user_name \n \n except:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print 'TwilioSMS, Error finding mobile number for \"%s\". Exception: %s` % (user_name, sys.exc_info()[1])`'\n return False\n\n # Generate Random six digit code and store it in array\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n sessionId.getSessionAttributes().put(\"code\", code)\n\n try:\n Twilio.init(self.ACCOUNT_SID, self.AUTH_TOKEN);\n message = Message.creator(PhoneNumber(self.mobile_number), PhoneNumber(self.FROM_NUMBER), str(code)).create();\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print 'TwilioSMs, Message Sid: %s' % (message.getSid())\n print 'TwilioSMs, User phone: %s' % (self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n sessionId.getSessionAttributes().put(\"mobile_number\", self.mobile_number)\n sessionId.getSessionAttributes().put(\"mobile\", self.mobile_number)\n sessionIdService.updateSessionId(sessionId)\n self.identity.setWorkingParameter(\"mobile_number\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\",self.mobile_number)\n self.identity.setWorkingParameter(\"mobile\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile\",self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"Number: %s\" % (self.identity.getWorkingParameter(\"mobile_number\"))\n print \"Mobile: %s\" % (self.identity.getWorkingParameter(\"mobile\"))\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"========================================\"\n print \"===TWILIO SMS FIRST STEP DONE PROPERLY==\"\n print \"========================================\"\n return True\n except Exception, ex:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n print \"TwilioSMS. Error sending message to Twilio\"\n print \"TwilioSMS. Unexpected error:\", ex\n\n return False\n elif step == 2:\n # Retrieve the session attribute\n print \"==============================================\"\n print \"=TWILIO SMS STEP 2 | Password Authentication==\"\n print \"==============================================\"\n code = session_attributes.get(\"code\")\n print '=======> Session code is \"%s\"' % str(code)\n sessionIdService = CdiUtil.bean(SessionIdService)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n code = sessionId.getSessionAttributes().get(\"code\")\n print '=======> Database code is \"%s\"' % str(code)\n self.identity.setSessionId(sessionId)\n print \"==============================================\"\n print \"TwilioSMS. Code: %s\" % str(code)\n print \"==============================================\"\n if code is None:\n print \"TwilioSMS. Failed to find previously sent code\"\n return False\n\n if form_passcode is None:\n print \"TwilioSMS. Passcode is empty\"\n return False\n\n if len(form_passcode) != 6:\n print \"TwilioSMS. Passcode from response is not 6 digits: %s\" % form_passcode\n return False\n\n if form_passcode == code:\n print \"TiwlioSMS, SUCCESS! User entered the same code!\"\n print \"========================================\"\n print \"===TWILIO SMS SECOND STEP DONE PROPERLY\"\n print \"========================================\"\n return True\n\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n print \"TwilioSMS. FAIL! User entered the wrong code! %s != %s\" % (form_passcode, code)\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Incorrect Twilio code, please try again.\")\n print \"================================================\"\n print \"===TWILIO SMS SECOND STEP FAILED: INCORRECT CODE\"\n print \"================================================\"\n return False\n\n print \"TwilioSMS. ERROR: step param not found or != (1|2)\"\n\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"TwilioSMS. Prepare for Step 1\"\n return True\n elif step == 2:\n print \"TwilioSMS. Prepare for Step 2\"\n return True\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "Test_PERSON_AUTHENTICATION", "modified": false, "configurationProperties": [ { "hide": false, "value1": "twilio_sid", "description": "Twilio account SID" }, { "hide": false, "value1": "twilio_token", "description": "Twilio API token" }, { "hide": false, "value1": "from_number", "description": "Twilio phone number with SMS capabilities" } ], "baseDn": "inum=39c49e74-4cd0-461c-a04a-a08861a94218,ou=scripts,o=jans" } 24-11 09:33:44.563 INFO com.intuit.karate.Logger Logger.java:104- [print] { "internal": false, "level": 50, "programmingLanguage": "python", "description": "Test_PERSON_AUTHENTICATION_description", "locationType": "ldap", "dn": "inum=39c49e74-4cd0-461c-a04a-a08861a94218,ou=scripts,o=jans", "inum": "39c49e74-4cd0-461c-a04a-a08861a94218", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Gasmyr Mougang\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nimport com.twilio.Twilio as Twilio\nimport com.twilio.rest.api.v2010.account.Message as Message\nimport com.twilio.type.PhoneNumber as PhoneNumber\nimport org.codehaus.jettison.json.JSONArray as JSONArray\n\n\nimport java\nimport random\nimport jarray\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.mobile_number = None\n self.identity = CdiUtil.bean(Identity)\n\n def init(self, customScript, configurationAttributes):\n print \"==============================================\"\n print \"===TWILIO SMS INITIALIZATION==================\"\n print \"==============================================\"\n self.ACCOUNT_SID = None\n self.AUTH_TOKEN = None\n self.FROM_NUMBER = None\n\n # Get Custom Properties\n try:\n self.ACCOUNT_SID = configurationAttributes.get(\"twilio_sid\").getValue2()\n except:\n print 'TwilioSMS, Missing required configuration attribute \"twilio_sid\"'\n\n try:\n self.AUTH_TOKEN = configurationAttributes.get(\"twilio_token\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"twilio_token\"'\n try:\n self.FROM_NUMBER = configurationAttributes.get(\"from_number\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"from_number\"'\n\n if None in (self.ACCOUNT_SID, self.AUTH_TOKEN, self.FROM_NUMBER):\n print \"twilio_sid, twilio_token, from_number is empty ... returning False\"\n return False\n\n print \"===TWILIO SMS INITIALIZATION DONE PROPERLY=====\" \n return True\n\n def destroy(self, configurationAttributes):\n print \"Twilio SMS. Destroy\"\n print \"Twilio SMS. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"==============================================\"\n print \"====TWILIO SMS AUTHENCATION===================\"\n print \"==============================================\"\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n sessionIdService = CdiUtil.bean(SessionIdService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n form_name = ServerUtil.getFirstValue(requestParameters, \"TwilioSmsloginForm\")\n\n print \"TwilioSMS. form_response_passcode: %s\" % str(form_passcode)\n\n if step == 1:\n print \"==============================================\"\n print \"=TWILIO SMS STEP 1 | Password Authentication==\"\n print \"==============================================\"\n credentials = self.identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print 'TwilioSMS, Error retrieving user %s from LDAP' % (user_name)\n return False\n\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n self.mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"mobile\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if self.mobile_number == None:\n print \"TwilioSMS, Error finding mobile number for user '%s'\" % user_name \n \n except:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print 'TwilioSMS, Error finding mobile number for \"%s\". Exception: %s` % (user_name, sys.exc_info()[1])`'\n return False\n\n # Generate Random six digit code and store it in array\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n sessionId.getSessionAttributes().put(\"code\", code)\n\n try:\n Twilio.init(self.ACCOUNT_SID, self.AUTH_TOKEN);\n message = Message.creator(PhoneNumber(self.mobile_number), PhoneNumber(self.FROM_NUMBER), str(code)).create();\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print 'TwilioSMs, Message Sid: %s' % (message.getSid())\n print 'TwilioSMs, User phone: %s' % (self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n sessionId.getSessionAttributes().put(\"mobile_number\", self.mobile_number)\n sessionId.getSessionAttributes().put(\"mobile\", self.mobile_number)\n sessionIdService.updateSessionId(sessionId)\n self.identity.setWorkingParameter(\"mobile_number\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\",self.mobile_number)\n self.identity.setWorkingParameter(\"mobile\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile\",self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"Number: %s\" % (self.identity.getWorkingParameter(\"mobile_number\"))\n print \"Mobile: %s\" % (self.identity.getWorkingParameter(\"mobile\"))\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"========================================\"\n print \"===TWILIO SMS FIRST STEP DONE PROPERLY==\"\n print \"========================================\"\n return True\n except Exception, ex:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n print \"TwilioSMS. Error sending message to Twilio\"\n print \"TwilioSMS. Unexpected error:\", ex\n\n return False\n elif step == 2:\n # Retrieve the session attribute\n print \"==============================================\"\n print \"=TWILIO SMS STEP 2 | Password Authentication==\"\n print \"==============================================\"\n code = session_attributes.get(\"code\")\n print '=======> Session code is \"%s\"' % str(code)\n sessionIdService = CdiUtil.bean(SessionIdService)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n code = sessionId.getSessionAttributes().get(\"code\")\n print '=======> Database code is \"%s\"' % str(code)\n self.identity.setSessionId(sessionId)\n print \"==============================================\"\n print \"TwilioSMS. Code: %s\" % str(code)\n print \"==============================================\"\n if code is None:\n print \"TwilioSMS. Failed to find previously sent code\"\n return False\n\n if form_passcode is None:\n print \"TwilioSMS. Passcode is empty\"\n return False\n\n if len(form_passcode) != 6:\n print \"TwilioSMS. Passcode from response is not 6 digits: %s\" % form_passcode\n return False\n\n if form_passcode == code:\n print \"TiwlioSMS, SUCCESS! User entered the same code!\"\n print \"========================================\"\n print \"===TWILIO SMS SECOND STEP DONE PROPERLY\"\n print \"========================================\"\n return True\n\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n print \"TwilioSMS. FAIL! User entered the wrong code! %s != %s\" % (form_passcode, code)\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Incorrect Twilio code, please try again.\")\n print \"================================================\"\n print \"===TWILIO SMS SECOND STEP FAILED: INCORRECT CODE\"\n print \"================================================\"\n return False\n\n print \"TwilioSMS. ERROR: step param not found or != (1|2)\"\n\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"TwilioSMS. Prepare for Step 1\"\n return True\n elif step == 2:\n print \"TwilioSMS. Prepare for Step 2\"\n return True\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "UpdatedQAAddedPersonScript", "modified": false, "configurationProperties": [ { "hide": false, "value1": "twilio_sid", "description": "Twilio account SID" }, { "hide": false, "value1": "twilio_token", "description": "Twilio API token" }, { "hide": false, "value1": "from_number", "description": "Twilio phone number with SMS capabilities" } ], "baseDn": "inum=39c49e74-4cd0-461c-a04a-a08861a94218,ou=scripts,o=jans" } 24-11 09:33:44.592 INFO com.intuit.karate.Logger Logger.java:104- [print] { "internal": false, "level": 50, "programmingLanguage": "python", "description": "Test_PERSON_AUTHENTICATION_description", "locationType": "ldap", "dn": "inum=39c49e74-4cd0-461c-a04a-a08861a94218,ou=scripts,o=jans", "inum": "39c49e74-4cd0-461c-a04a-a08861a94218", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Gasmyr Mougang\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nimport com.twilio.Twilio as Twilio\nimport com.twilio.rest.api.v2010.account.Message as Message\nimport com.twilio.type.PhoneNumber as PhoneNumber\nimport org.codehaus.jettison.json.JSONArray as JSONArray\n\n\nimport java\nimport random\nimport jarray\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.mobile_number = None\n self.identity = CdiUtil.bean(Identity)\n\n def init(self, customScript, configurationAttributes):\n print \"==============================================\"\n print \"===TWILIO SMS INITIALIZATION==================\"\n print \"==============================================\"\n self.ACCOUNT_SID = None\n self.AUTH_TOKEN = None\n self.FROM_NUMBER = None\n\n # Get Custom Properties\n try:\n self.ACCOUNT_SID = configurationAttributes.get(\"twilio_sid\").getValue2()\n except:\n print 'TwilioSMS, Missing required configuration attribute \"twilio_sid\"'\n\n try:\n self.AUTH_TOKEN = configurationAttributes.get(\"twilio_token\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"twilio_token\"'\n try:\n self.FROM_NUMBER = configurationAttributes.get(\"from_number\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"from_number\"'\n\n if None in (self.ACCOUNT_SID, self.AUTH_TOKEN, self.FROM_NUMBER):\n print \"twilio_sid, twilio_token, from_number is empty ... returning False\"\n return False\n\n print \"===TWILIO SMS INITIALIZATION DONE PROPERLY=====\" \n return True\n\n def destroy(self, configurationAttributes):\n print \"Twilio SMS. Destroy\"\n print \"Twilio SMS. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"==============================================\"\n print \"====TWILIO SMS AUTHENCATION===================\"\n print \"==============================================\"\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n sessionIdService = CdiUtil.bean(SessionIdService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n form_name = ServerUtil.getFirstValue(requestParameters, \"TwilioSmsloginForm\")\n\n print \"TwilioSMS. form_response_passcode: %s\" % str(form_passcode)\n\n if step == 1:\n print \"==============================================\"\n print \"=TWILIO SMS STEP 1 | Password Authentication==\"\n print \"==============================================\"\n credentials = self.identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print 'TwilioSMS, Error retrieving user %s from LDAP' % (user_name)\n return False\n\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n self.mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"mobile\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if self.mobile_number == None:\n print \"TwilioSMS, Error finding mobile number for user '%s'\" % user_name \n \n except:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print 'TwilioSMS, Error finding mobile number for \"%s\". Exception: %s` % (user_name, sys.exc_info()[1])`'\n return False\n\n # Generate Random six digit code and store it in array\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n sessionId.getSessionAttributes().put(\"code\", code)\n\n try:\n Twilio.init(self.ACCOUNT_SID, self.AUTH_TOKEN);\n message = Message.creator(PhoneNumber(self.mobile_number), PhoneNumber(self.FROM_NUMBER), str(code)).create();\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print 'TwilioSMs, Message Sid: %s' % (message.getSid())\n print 'TwilioSMs, User phone: %s' % (self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n sessionId.getSessionAttributes().put(\"mobile_number\", self.mobile_number)\n sessionId.getSessionAttributes().put(\"mobile\", self.mobile_number)\n sessionIdService.updateSessionId(sessionId)\n self.identity.setWorkingParameter(\"mobile_number\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\",self.mobile_number)\n self.identity.setWorkingParameter(\"mobile\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile\",self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"Number: %s\" % (self.identity.getWorkingParameter(\"mobile_number\"))\n print \"Mobile: %s\" % (self.identity.getWorkingParameter(\"mobile\"))\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"========================================\"\n print \"===TWILIO SMS FIRST STEP DONE PROPERLY==\"\n print \"========================================\"\n return True\n except Exception, ex:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n print \"TwilioSMS. Error sending message to Twilio\"\n print \"TwilioSMS. Unexpected error:\", ex\n\n return False\n elif step == 2:\n # Retrieve the session attribute\n print \"==============================================\"\n print \"=TWILIO SMS STEP 2 | Password Authentication==\"\n print \"==============================================\"\n code = session_attributes.get(\"code\")\n print '=======> Session code is \"%s\"' % str(code)\n sessionIdService = CdiUtil.bean(SessionIdService)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n code = sessionId.getSessionAttributes().get(\"code\")\n print '=======> Database code is \"%s\"' % str(code)\n self.identity.setSessionId(sessionId)\n print \"==============================================\"\n print \"TwilioSMS. Code: %s\" % str(code)\n print \"==============================================\"\n if code is None:\n print \"TwilioSMS. Failed to find previously sent code\"\n return False\n\n if form_passcode is None:\n print \"TwilioSMS. Passcode is empty\"\n return False\n\n if len(form_passcode) != 6:\n print \"TwilioSMS. Passcode from response is not 6 digits: %s\" % form_passcode\n return False\n\n if form_passcode == code:\n print \"TiwlioSMS, SUCCESS! User entered the same code!\"\n print \"========================================\"\n print \"===TWILIO SMS SECOND STEP DONE PROPERLY\"\n print \"========================================\"\n return True\n\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n print \"TwilioSMS. FAIL! User entered the wrong code! %s != %s\" % (form_passcode, code)\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Incorrect Twilio code, please try again.\")\n print \"================================================\"\n print \"===TWILIO SMS SECOND STEP FAILED: INCORRECT CODE\"\n print \"================================================\"\n return False\n\n print \"TwilioSMS. ERROR: step param not found or != (1|2)\"\n\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"TwilioSMS. Prepare for Step 1\"\n return True\n elif step == 2:\n print \"TwilioSMS. Prepare for Step 2\"\n return True\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "UpdatedQAAddedPersonScript", "modified": false, "configurationProperties": [ { "hide": false, "value1": "twilio_sid", "description": "Twilio account SID" }, { "hide": false, "value1": "twilio_token", "description": "Twilio API token" }, { "hide": false, "value1": "from_number", "description": "Twilio phone number with SMS capabilities" } ], "baseDn": "inum=39c49e74-4cd0-461c-a04a-a08861a94218,ou=scripts,o=jans" } 24-11 09:33:44.824 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:44.824 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:44.824 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:44.824 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:44.825 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:44.825 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:44.825 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:44.825 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:44.825 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:44.826 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:44.829 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:44.829 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:44.830 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:44.830 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:44.830 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:44.831 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:44.831 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:44.831 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:44.831 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:44.831 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:45.074 INFO com.intuit.karate.Logger Logger.java:104- [print] { "code": "404", "message": "The requested custom script doesn't exist" } 24-11 09:33:45.084 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:45.084 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:45.084 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:45.084 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:45.085 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:45.085 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:45.085 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:45.085 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:45.085 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:45.085 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:45.088 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:45.089 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:45.089 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:45.089 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:45.089 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:45.090 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:45.090 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:45.090 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:45.090 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:45.091 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:45.315 INFO com.intuit.karate.Logger Logger.java:104- [print] 24-11 09:33:45.326 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:45.326 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:45.327 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:45.327 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:45.327 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:45.328 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:45.328 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:45.328 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:45.328 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:45.328 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:45.332 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:45.332 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:45.332 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:45.332 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:45.333 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:45.334 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:45.334 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:45.334 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:45.334 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:45.334 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:45.607 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 13, "entries": [ { "internal": false, "level": 50, "programmingLanguage": "python", "description": "Twilio SMS authentication module", "locationType": "ldap", "dn": "inum=09A0-93D6,ou=scripts,o=jans", "inum": "09A0-93D6", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Gasmyr Mougang\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nimport com.twilio.Twilio as Twilio\nimport com.twilio.rest.api.v2010.account.Message as Message\nimport com.twilio.type.PhoneNumber as PhoneNumber\nimport org.codehaus.jettison.json.JSONArray as JSONArray\n\n\nimport java\nimport random\nimport jarray\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.mobile_number = None\n self.identity = CdiUtil.bean(Identity)\n\n def init(self, customScript, configurationAttributes):\n print \"==============================================\"\n print \"===TWILIO SMS INITIALIZATION==================\"\n print \"==============================================\"\n self.ACCOUNT_SID = None\n self.AUTH_TOKEN = None\n self.FROM_NUMBER = None\n\n # Get Custom Properties\n try:\n self.ACCOUNT_SID = configurationAttributes.get(\"twilio_sid\").getValue2()\n except:\n print 'TwilioSMS, Missing required configuration attribute \"twilio_sid\"'\n\n try:\n self.AUTH_TOKEN = configurationAttributes.get(\"twilio_token\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"twilio_token\"'\n try:\n self.FROM_NUMBER = configurationAttributes.get(\"from_number\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"from_number\"'\n\n if None in (self.ACCOUNT_SID, self.AUTH_TOKEN, self.FROM_NUMBER):\n print \"twilio_sid, twilio_token, from_number is empty ... returning False\"\n return False\n\n print \"===TWILIO SMS INITIALIZATION DONE PROPERLY=====\" \n return True\n\n def destroy(self, configurationAttributes):\n print \"Twilio SMS. Destroy\"\n print \"Twilio SMS. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"==============================================\"\n print \"====TWILIO SMS AUTHENCATION===================\"\n print \"==============================================\"\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n sessionIdService = CdiUtil.bean(SessionIdService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n form_name = ServerUtil.getFirstValue(requestParameters, \"TwilioSmsloginForm\")\n\n print \"TwilioSMS. form_response_passcode: %s\" % str(form_passcode)\n\n if step == 1:\n print \"==============================================\"\n print \"=TWILIO SMS STEP 1 | Password Authentication==\"\n print \"==============================================\"\n credentials = self.identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print 'TwilioSMS, Error retrieving user %s from LDAP' % (user_name)\n return False\n\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n self.mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"mobile\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if self.mobile_number == None:\n print \"TwilioSMS, Error finding mobile number for user '%s'\" % user_name \n \n except:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print 'TwilioSMS, Error finding mobile number for \"%s\". Exception: %s` % (user_name, sys.exc_info()[1])`'\n return False\n\n # Generate Random six digit code and store it in array\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n sessionId.getSessionAttributes().put(\"code\", code)\n\n try:\n Twilio.init(self.ACCOUNT_SID, self.AUTH_TOKEN);\n message = Message.creator(PhoneNumber(self.mobile_number), PhoneNumber(self.FROM_NUMBER), str(code)).create();\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print 'TwilioSMs, Message Sid: %s' % (message.getSid())\n print 'TwilioSMs, User phone: %s' % (self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n sessionId.getSessionAttributes().put(\"mobile_number\", self.mobile_number)\n sessionId.getSessionAttributes().put(\"mobile\", self.mobile_number)\n sessionIdService.updateSessionId(sessionId)\n self.identity.setWorkingParameter(\"mobile_number\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\",self.mobile_number)\n self.identity.setWorkingParameter(\"mobile\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile\",self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"Number: %s\" % (self.identity.getWorkingParameter(\"mobile_number\"))\n print \"Mobile: %s\" % (self.identity.getWorkingParameter(\"mobile\"))\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"========================================\"\n print \"===TWILIO SMS FIRST STEP DONE PROPERLY==\"\n print \"========================================\"\n return True\n except Exception, ex:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n print \"TwilioSMS. Error sending message to Twilio\"\n print \"TwilioSMS. Unexpected error:\", ex\n\n return False\n elif step == 2:\n # Retrieve the session attribute\n print \"==============================================\"\n print \"=TWILIO SMS STEP 2 | Password Authentication==\"\n print \"==============================================\"\n code = session_attributes.get(\"code\")\n print '=======> Session code is \"%s\"' % str(code)\n sessionIdService = CdiUtil.bean(SessionIdService)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n code = sessionId.getSessionAttributes().get(\"code\")\n print '=======> Database code is \"%s\"' % str(code)\n self.identity.setSessionId(sessionId)\n print \"==============================================\"\n print \"TwilioSMS. Code: %s\" % str(code)\n print \"==============================================\"\n if code is None:\n print \"TwilioSMS. Failed to find previously sent code\"\n return False\n\n if form_passcode is None:\n print \"TwilioSMS. Passcode is empty\"\n return False\n\n if len(form_passcode) != 6:\n print \"TwilioSMS. Passcode from response is not 6 digits: %s\" % form_passcode\n return False\n\n if form_passcode == code:\n print \"TiwlioSMS, SUCCESS! User entered the same code!\"\n print \"========================================\"\n print \"===TWILIO SMS SECOND STEP DONE PROPERLY\"\n print \"========================================\"\n return True\n\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n print \"TwilioSMS. FAIL! User entered the wrong code! %s != %s\" % (form_passcode, code)\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Incorrect Twilio code, please try again.\")\n print \"================================================\"\n print \"===TWILIO SMS SECOND STEP FAILED: INCORRECT CODE\"\n print \"================================================\"\n return False\n\n print \"TwilioSMS. ERROR: step param not found or != (1|2)\"\n\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"TwilioSMS. Prepare for Step 1\"\n return True\n elif step == 2:\n print \"TwilioSMS. Prepare for Step 2\"\n return True\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "twilio_sms", "modified": false, "configurationProperties": [ { "hide": false, "value1": "twilio_sid", "description": "Twilio account SID" }, { "hide": false, "value1": "twilio_token", "description": "Twilio API token" }, { "hide": false, "value1": "from_number", "description": "Twilio phone number with SMS capabilities" } ], "baseDn": "inum=09A0-93D6,ou=scripts,o=jans" }, { "internal": false, "level": 45, "programmingLanguage": "python", "description": "SMPP SMS authentication module", "locationType": "ldap", "dn": "inum=09A0-93D7,ou=scripts,o=jans", "inum": "09A0-93D7", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n# Copyright (c) 2019, Tele2\n\n# Author: Jose Gonzalez\n# Author: Gasmyr Mougang\n# Author: Stefan Andersson\n\nfrom java.util import Arrays, Date\nfrom java.io import IOException\nfrom java.lang import Enum\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import ArrayHelper\nfrom io.jans.util import StringHelper\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nfrom org.jsmpp import InvalidResponseException, PDUException\nfrom org.jsmpp.bean import Alphabet, BindType, ESMClass, GeneralDataCoding, MessageClass, NumberingPlanIndicator, RegisteredDelivery, SMSCDeliveryReceipt, TypeOfNumber\nfrom org.jsmpp.extra import NegativeResponseException, ResponseTimeoutException\nfrom org.jsmpp.session import BindParameter, SMPPSession\nfrom org.jsmpp.util import AbsoluteTimeFormatter, TimeFormatter\nimport random\n\n\nclass SmppAttributeError(Exception):\n pass\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.identity = CdiUtil.bean(Identity)\n\n def get_and_parse_smpp_config(self, config, attribute, _type = None, convert = False, optional = False, default_desc = None):\n try:\n value = config.get(attribute).getValue2()\n except:\n if default_desc:\n default_desc = \" using default '{}'\".format(default_desc)\n else:\n default_desc = \"\"\n\n if optional:\n raise SmppAttributeError(\"SMPP missing optional configuration attribute '{}'{}\".format(attribute, default_desc))\n else:\n raise SmppAttributeError(\"SMPP missing required configuration attribute '{}'\".format(attribute))\n\n if _type and issubclass(_type, Enum):\n try:\n return getattr(_type, value)\n except AttributeError:\n raise SmppAttributeError(\"SMPP could not find attribute '{}' in {}\".format(attribute, _type))\n\n if convert:\n try:\n value = int(value)\n except AttributeError:\n try:\n value = int(value, 16)\n except AttributeError:\n raise SmppAttributeError(\"SMPP could not parse value '{}' of attribute '{}'\".format(value, attribute))\n\n return value\n\n def init(self, customScript, configurationAttributes):\n print(\"SMPP Initialization\")\n\n self.TIME_FORMATTER = AbsoluteTimeFormatter()\n\n self.SMPP_SERVER = None\n self.SMPP_PORT = None\n\n self.SYSTEM_ID = None\n self.PASSWORD = None\n\n # Setup some good defaults for TON, NPI and source (from) address\n # TON (Type of Number), NPI (Number Plan Indicator)\n self.SRC_ADDR_TON = TypeOfNumber.ALPHANUMERIC # Alphanumeric\n self.SRC_ADDR_NPI = NumberingPlanIndicator.ISDN # ISDN (E163/E164)\n self.SRC_ADDR = \"Janssen OTP\"\n\n # Don't touch these unless you know what your doing, we don't handle number reformatting for\n # any other type than international.\n self.DST_ADDR_TON = TypeOfNumber.INTERNATIONAL # International\n self.DST_ADDR_NPI = NumberingPlanIndicator.ISDN # ISDN (E163/E164)\n\n # Priority flag and data_coding bits\n self.PRIORITY_FLAG = 3 # Very Urgent (ANSI-136), Emergency (IS-95)\n self.DATA_CODING_ALPHABET = Alphabet.ALPHA_DEFAULT # SMS default alphabet\n self.DATA_CODING_MESSAGE_CLASS = MessageClass.CLASS1 # EM (Mobile Equipment (mobile memory), normal message\n\n # Required server settings\n try:\n self.SMPP_SERVER = self.get_and_parse_smpp_config(configurationAttributes, \"smpp_server\")\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SMPP_PORT = self.get_and_parse_smpp_config(configurationAttributes, \"smpp_port\", convert = True)\n except SmppAttributeError as e:\n print(e)\n\n if None in (self.SMPP_SERVER, self.SMPP_PORT):\n print(\"SMPP smpp_server and smpp_port is empty, will not enable SMPP service\")\n return False\n\n # Optional system_id and password for bind auth\n try:\n self.SYSTEM_ID = self.get_and_parse_smpp_config(configurationAttributes, \"system_id\", optional = True)\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.PASSWORD = self.get_and_parse_smpp_config(configurationAttributes, \"password\", optional = True)\n except SmppAttributeError as e:\n print(e)\n\n if None in (self.SYSTEM_ID, self.PASSWORD):\n print(\"SMPP Authentication disabled\")\n\n # From number and to number settings\n try:\n self.SRC_ADDR_TON = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr_ton\",\n _type = TypeOfNumber,\n optional = True,\n default_desc = self.SRC_ADDR_TON\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SRC_ADDR_NPI = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr_npi\",\n _type = NumberingPlanIndicator,\n optional = True,\n default_desc = self.SRC_ADDR_NPI\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.SRC_ADDR = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"source_addr\",\n optional = True,\n default_desc = self.SRC_ADDR\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DST_ADDR_TON = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"dest_addr_ton\",\n _type = TypeOfNumber,\n optional = True,\n default_desc = self.DST_ADDR_TON\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DST_ADDR_NPI = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"dest_addr_npi\",\n _type = NumberingPlanIndicator,\n optional = True,\n default_desc = self.DST_ADDR_NPI\n )\n except SmppAttributeError as e:\n print(e)\n\n # Priority flag and data coding, don't touch these unless you know what your doing...\n try:\n self.PRIORITY_FLAG = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"priority_flag\",\n convert = True,\n optional = True,\n default_desc = \"3 (Very Urgent, Emergency)\"\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DATA_CODING_ALPHABET = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"data_coding_alphabet\",\n _type = Alphabet,\n optional = True,\n default_desc = self.DATA_CODING_ALPHABET\n )\n except SmppAttributeError as e:\n print(e)\n\n try:\n self.DATA_CODING_MESSAGE_CLASS = self.get_and_parse_smpp_config(\n configurationAttributes,\n \"data_coding_alphabet\",\n _type = MessageClass,\n optional = True,\n default_desc = self.DATA_CODING_MESSAGE_CLASS\n )\n except SmppAttributeError as e:\n print(e)\n\n print(\"SMPP Initialized successfully\")\n return True\n\n def destroy(self, configurationAttributes):\n print(\"SMPP Destroy\")\n print(\"SMPP Destroyed successfully\")\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n\n print(\"SMPP form_response_passcode: {}\".format(str(form_passcode)))\n\n if step == 1:\n print(\"SMPP Step 1 Password Authentication\")\n credentials = self.identity.getCredentials()\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print(\"SMPP Error retrieving user {} from LDAP\".format(user_name))\n return False\n\n mobile_number = None\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if not mobile_number:\n mobile_number = foundUser.getAttribute(\"mobile\")\n if not mobile_number:\n mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if not mobile_number:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print(\"SMPP Error finding mobile number for user '{}'\".format(user_name))\n return False\n except Exception as e:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print(\"SMPP Error finding mobile number for {}: {}\".format(user_name, e))\n return False\n\n # Generate Random six digit code\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n\n self.identity.setWorkingParameter(\"mobile_number\", mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\", mobile_number)\n if not self.sendMessage(mobile_number, str(code)):\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n return False\n\n return True\n elif step == 2:\n # Retrieve the session attribute\n print(\"SMPP Step 2 SMS/OTP Authentication\")\n code = session_attributes.get(\"code\")\n print(\"SMPP Code: {}\".format(str(code)))\n\n if code is None:\n print(\"SMPP Failed to find previously sent code\")\n return False\n\n if form_passcode is None:\n print(\"SMPP Passcode is empty\")\n return False\n\n if len(form_passcode) != 6:\n print(\"SMPP Passcode from response is not 6 digits: {}\".format(form_passcode))\n return False\n\n if form_passcode == code:\n print(\"SMPP SUCCESS! User entered the same code!\")\n return True\n\n print(\"SMPP failed, user entered the wrong code! {} != {}\".format(form_passcode, code))\n facesMessages.add(facesMessage.SEVERITY_ERROR, \"Incorrect SMS code, please try again.\")\n return False\n\n print(\"SMPP ERROR: step param not found or != (1|2)\")\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print(\"SMPP Prepare for Step 1\")\n return True\n elif step == 2:\n print(\"SMPP Prepare for Step 2\")\n return True\n\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def sendMessage(self, number, code):\n status = False\n session = SMPPSession()\n session.setTransactionTimer(10000)\n\n # We only handle international destination number reformatting.\n # All others may vary by configuration decisions taken on SMPP\n # server side which we have no clue about.\n if self.DST_ADDR_TON == TypeOfNumber.INTERNATIONAL and number.startswith(\"+\"):\n number = number[1:]\n\n try:\n print(\"SMPP Connecting\")\n reference_id = session.connectAndBind(\n self.SMPP_SERVER,\n self.SMPP_PORT,\n BindParameter(\n BindType.BIND_TX,\n self.SYSTEM_ID,\n self.PASSWORD,\n None,\n self.SRC_ADDR_TON,\n self.SRC_ADDR_NPI,\n None\n )\n )\n print(\"SMPP Connected to server with system id {}\".format(reference_id))\n\n try:\n message_id = session.submitShortMessage(\n \"CMT\",\n self.SRC_ADDR_TON,\n self.SRC_ADDR_NPI,\n self.SRC_ADDR,\n self.DST_ADDR_TON,\n self.DST_ADDR_NPI,\n number,\n ESMClass(),\n 0,\n self.PRIORITY_FLAG,\n self.TIME_FORMATTER.format(Date()),\n None,\n RegisteredDelivery(SMSCDeliveryReceipt.DEFAULT),\n 0,\n GeneralDataCoding(\n self.DATA_CODING_ALPHABET,\n self.DATA_CODING_MESSAGE_CLASS,\n False\n ),\n 0,\n code\n )\n print(\"SMPP Message '{}' sent to #{} with message id {}\".format(code, number, message_id))\n status = True\n except PDUException as e:\n print(\"SMPP Invalid PDU parameter: {}\".format(e))\n except ResponseTimeoutException as e:\n print(\"SMPP Response timeout: {}\".format(e))\n except InvalidResponseException as e:\n print(\"SMPP Receive invalid response: {}\".format(e))\n except NegativeResponseException as e:\n print(\"SMPP Receive negative response: {}\".format(e))\n except IOException as e:\n print(\"SMPP IO error occured: {}\".format(e))\n finally:\n session.unbindAndClose()\n except IOException as e:\n print(\"SMPP Failed connect and bind to host: {}\".format(e))\n\n return status\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "smpp", "modified": false, "configurationProperties": [ { "hide": false, "value1": "smpp_server", "description": "IP or FQDN of SMPP server" }, { "hide": false, "value1": "smpp_port", "description": "TCP port of the SMPP server" }, { "hide": false, "value1": "system_id", "description": "Use if SMPP server requires authentication" }, { "hide": false, "value1": "password", "description": "Use if SMPP server requires authentication" }, { "hide": false, "value1": "source_addr_ton", "description": "Type of number, eg ALPHANUMERIC, INTERNATIONAL" }, { "hide": false, "value1": "source_addr", "description": "From number/name" } ], "baseDn": "inum=09A0-93D7,ou=scripts,o=jans" }, { "internal": false, "level": 30, "programmingLanguage": "python", "description": "Cert authentication module", "locationType": "ldap", "dn": "inum=2124-0CF1,ou=scripts,o=jans", "inum": "2124-0CF1", "script": "#\n# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom jakarta.faces.context import FacesContext\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.as.common.service.common import EncryptionService\nfrom java.util import Arrays\nfrom io.jans.as.common.cert.fingerprint import FingerprintHelper\nfrom io.jans.as.common.cert.validation import GenericCertificateVerifier\nfrom io.jans.as.common.cert.validation import PathCertificateVerifier\nfrom io.jans.as.common.cert.validation import OCSPCertificateVerifier\nfrom io.jans.as.common.cert.validation import CRLCertificateVerifier\nfrom io.jans.as.common.cert.validation.model import ValidationStatus\nfrom io.jans.as.server.util import CertUtil\nfrom io.jans.as.model.util import CertUtils\nfrom io.jans.as.server.service.net import HttpService\nfrom org.apache.http.params import CoreConnectionPNames\n\nimport sys\nimport base64\nimport urllib\n\nimport java\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Cert. Initialization\"\n\n if not (configurationAttributes.containsKey(\"chain_cert_file_path\")):\n print \"Cert. Initialization. Property chain_cert_file_path is mandatory\"\n return False\n\n if not (configurationAttributes.containsKey(\"map_user_cert\")):\n print \"Cert. Initialization. Property map_user_cert is mandatory\"\n return False\n\n chain_cert_file_path = configurationAttributes.get(\"chain_cert_file_path\").getValue2()\n\n self.chain_certs = CertUtil.loadX509CertificateFromFile(chain_cert_file_path)\n if self.chain_certs == None:\n print \"Cert. Initialization. Failed to load chain certificates from '%s'\" % chain_cert_file_path\n return False\n\n print \"Cert. Initialization. Loaded '%d' chain certificates\" % self.chain_certs.size()\n \n crl_max_response_size = 5 * 1024 * 1024 # 10Mb\n if configurationAttributes.containsKey(\"crl_max_response_size\"):\n crl_max_response_size = StringHelper.toInteger(configurationAttributes.get(\"crl_max_response_size\").getValue2(), crl_max_response_size)\n print \"Cert. Initialization. CRL max response size is '%d'\" % crl_max_response_size\n\n # Define array to order methods correctly\n self.validator_types = [ 'generic', 'path', 'ocsp', 'crl']\n self.validators = { 'generic' : [GenericCertificateVerifier(), False],\n 'path' : [PathCertificateVerifier(False), False],\n 'ocsp' : [OCSPCertificateVerifier(), False],\n 'crl' : [CRLCertificateVerifier(crl_max_response_size), False] }\n\n for type in self.validator_types:\n validator_param_name = \"use_%s_validator\" % type\n if configurationAttributes.containsKey(validator_param_name):\n validator_status = StringHelper.toBoolean(configurationAttributes.get(validator_param_name).getValue2(), False)\n self.validators[type][1] = validator_status\n\n print \"Cert. Initialization. Validation method '%s' status: '%s'\" % (type, self.validators[type][1])\n\n self.map_user_cert = StringHelper.toBoolean(configurationAttributes.get(\"map_user_cert\").getValue2(), False)\n print \"Cert. Initialization. map_user_cert: '%s'\" % self.map_user_cert\n\n self.enabled_recaptcha = self.initRecaptcha(configurationAttributes)\n print \"Cert. Initialization. enabled_recaptcha: '%s'\" % self.enabled_recaptcha\n\n print \"Cert. Initialized successfully\"\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Cert. Destroy\"\n\n for type in self.validator_types:\n self.validators[type][0].destroy()\n\n print \"Cert. Destroyed successfully\"\n\n return True\n\n def getApiVersion(self):\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n print \"Cert. Authenticate for step 1\"\n login_button = ServerUtil.getFirstValue(requestParameters, \"loginForm:loginButton\")\n if StringHelper.isEmpty(login_button):\n print \"Cert. Authenticate for step 1. Form were submitted incorrectly\"\n return False\n if self.enabled_recaptcha:\n print \"Cert. Authenticate for step 1. Validating recaptcha response\"\n recaptcha_response = ServerUtil.getFirstValue(requestParameters, \"g-recaptcha-response\")\n\n recaptcha_result = self.validateRecaptcha(recaptcha_response)\n print \"Cert. Authenticate for step 1. recaptcha_result: '%s'\" % recaptcha_result\n \n return recaptcha_result\n\n return True\n elif step == 2:\n print \"Cert. Authenticate for step 2\"\n\n # Validate if user selected certificate\n cert_x509 = self.getSessionAttribute(\"cert_x509\")\n if cert_x509 == None:\n print \"Cert. Authenticate for step 2. User not selected any certs\"\n identity.setWorkingParameter(\"cert_selected\", False)\n \n # Return True to inform user how to reset workflow\n return True\n else:\n identity.setWorkingParameter(\"cert_selected\", True)\n x509Certificate = self.certFromString(cert_x509)\n\n subjectX500Principal = x509Certificate.getSubjectX500Principal()\n print \"Cert. Authenticate for step 2. User selected certificate with DN '%s'\" % subjectX500Principal\n \n # Validate certificates which user selected\n valid = self.validateCertificate(x509Certificate)\n if not valid:\n print \"Cert. Authenticate for step 2. Certificate DN '%s' is not valid\" % subjectX500Principal\n identity.setWorkingParameter(\"cert_valid\", False)\n \n # Return True to inform user how to reset workflow\n return True\n\n identity.setWorkingParameter(\"cert_valid\", True)\n \n # Calculate certificate fingerprint\n x509CertificateFingerprint = self.calculateCertificateFingerprint(x509Certificate)\n identity.setWorkingParameter(\"cert_x509_fingerprint\", x509CertificateFingerprint)\n print \"Cert. Authenticate for step 2. Fingerprint is '%s' of certificate with DN '%s'\" % (x509CertificateFingerprint, subjectX500Principal)\n \n # Attempt to find user by certificate fingerprint\n cert_user_external_uid = \"cert:%s\" % x509CertificateFingerprint\n print \"Cert. Authenticate for step 2. Attempting to find user by jansExtUid attribute value %s\" % cert_user_external_uid\n\n find_user_by_external_uid = userService.getUserByAttribute(\"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n print \"Cert. Authenticate for step 2. Failed to find user\"\n \n if self.map_user_cert:\n print \"Cert. Authenticate for step 2. Storing cert_user_external_uid for step 3\"\n identity.setWorkingParameter(\"cert_user_external_uid\", cert_user_external_uid)\n return True\n else:\n print \"Cert. Authenticate for step 2. Mapping cert to user account is not allowed\"\n identity.setWorkingParameter(\"cert_count_login_steps\", 2)\n return False\n\n foundUserName = find_user_by_external_uid.getUserId()\n print \"Cert. Authenticate for step 2. foundUserName: \" + foundUserName\n\n logged_in = False\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(foundUserName)\n \n print \"Cert. Authenticate for step 2. Setting count steps to 2\"\n identity.setWorkingParameter(\"cert_count_login_steps\", 2)\n\n return logged_in\n elif step == 3:\n print \"Cert. Authenticate for step 3\"\n\n cert_user_external_uid = self.getSessionAttribute(\"cert_user_external_uid\")\n if cert_user_external_uid == None:\n print \"Cert. Authenticate for step 3. cert_user_external_uid is empty\"\n return False\n\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return False\n\n # Double check just to make sure. We did checking in previous step\n # Check if there is user which has cert_user_external_uid\n # Avoid mapping user cert to more than one IDP account\n find_user_by_external_uid = userService.getUserByAttribute(\"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n # Add cert_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", cert_user_external_uid)\n if find_user_by_external_uid == None:\n print \"Cert. Authenticate for step 3. Failed to update current user\"\n return False\n\n return True\n \n return True\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n print \"Cert. Prepare for step %d\" % step\n identity = CdiUtil.bean(Identity)\n \n if step == 1:\n if self.enabled_recaptcha:\n identity.setWorkingParameter(\"recaptcha_site_key\", self.recaptcha_creds['site_key'])\n elif step == 2:\n # Store certificate in session\n facesContext = CdiUtil.bean(FacesContext)\n externalContext = facesContext.getExternalContext()\n request = externalContext.getRequest()\n\n # Try to get certificate from header X-ClientCert\n clientCertificate = externalContext.getRequestHeaderMap().get(\"X-ClientCert\")\n if clientCertificate != None:\n x509Certificate = self.certFromPemString(clientCertificate)\n identity.setWorkingParameter(\"cert_x509\", self.certToString(x509Certificate))\n print \"Cert. Prepare for step 2. Storing user certificate obtained from 'X-ClientCert' header\"\n return True\n\n # Try to get certificate from attribute jakarta.servlet.request.X509Certificate\n x509Certificates = request.getAttribute('jakarta.servlet.request.X509Certificate')\n if (x509Certificates != None) and (len(x509Certificates) > 0):\n identity.setWorkingParameter(\"cert_x509\", self.certToString(x509Certificates[0]))\n print \"Cert. Prepare for step 2. Storing user certificate obtained from 'jakarta.servlet.request.X509Certificate' attribute\"\n return True\n\n if step < 4:\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"cert_selected\", \"cert_valid\", \"cert_x509\", \"cert_x509_fingerprint\", \"cert_count_login_steps\", \"cert_user_external_uid\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n cert_count_login_steps = self.getSessionAttribute(\"cert_count_login_steps\")\n if cert_count_login_steps != None:\n return cert_count_login_steps\n else:\n return 3\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n return \"/auth/cert/login.xhtml\"\n if step == 2:\n return \"/auth/cert/cert-login.xhtml\"\n elif step == 3:\n cert_selected = self.getSessionAttribute(\"cert_selected\")\n if True != cert_selected:\n return \"/auth/cert/cert-not-selected.xhtml\"\n\n cert_valid = self.getSessionAttribute(\"cert_valid\")\n if True != cert_valid:\n return \"/auth/cert/cert-invalid.xhtml\"\n \n return \"/login.xhtml\"\n\n return \"\"\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def processBasicAuthentication(self, credentials):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if (find_user_by_uid == None):\n print \"Cert. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def getSessionAttribute(self, attribute_name):\n identity = CdiUtil.bean(Identity)\n\n # Try to get attribute value from Seam event context\n if identity.isSetWorkingParameter(attribute_name):\n return identity.getWorkingParameter(attribute_name)\n \n # Try to get attribute from persistent session\n session_id = identity.getSessionId()\n if session_id == None:\n return None\n\n session_attributes = session_id.getSessionAttributes()\n if session_attributes == None:\n return None\n\n if session_attributes.containsKey(attribute_name):\n return session_attributes.get(attribute_name)\n\n return None\n\n def calculateCertificateFingerprint(self, x509Certificate):\n print \"Cert. Calculate fingerprint for certificate DN '%s'\" % x509Certificate.getSubjectX500Principal()\n \n publicKey = x509Certificate.getPublicKey()\n \n # Use oxAuth implementation\n fingerprint = FingerprintHelper.getPublicKeySshFingerprint(publicKey)\n \n return fingerprint \n\n def validateCertificate(self, x509Certificate):\n subjectX500Principal = x509Certificate.getSubjectX500Principal()\n\n print \"Cert. Validating certificate with DN '%s'\" % subjectX500Principal\n \n validation_date = java.util.Date()\n\n for type in self.validator_types:\n if self.validators[type][1]:\n result = self.validators[type][0].validate(x509Certificate, self.chain_certs, validation_date)\n print \"Cert. Validate certificate: '%s'. Validation method '%s' result: '%s'\" % (subjectX500Principal, type, result)\n \n if (result.getValidity() != ValidationStatus.CertificateValidity.VALID):\n print \"Cert. Certificate: '%s' is invalid\" % subjectX500Principal\n return False\n \n return True\n\n def certToString(self, x509Certificate):\n if x509Certificate == None:\n return None\n return base64.b64encode(x509Certificate.getEncoded())\n\n def certFromString(self, x509CertificateEncoded):\n x509CertificateDecoded = base64.b64decode(x509CertificateEncoded)\n return CertUtils.x509CertificateFromBytes(x509CertificateDecoded)\n\n def certFromPemString(self, pemCertificate):\n x509CertificateEncoded = pemCertificate.replace(\"-----BEGIN CERTIFICATE-----\", \"\").replace(\"-----END CERTIFICATE-----\", \"\").strip()\n return self.certFromString(x509CertificateEncoded)\n\n def initRecaptcha(self, configurationAttributes):\n print \"Cert. Initialize recaptcha\"\n if not configurationAttributes.containsKey(\"credentials_file\"):\n return False\n\n cert_creds_file = configurationAttributes.get(\"credentials_file\").getValue2()\n\n # Load credentials from file\n f = open(cert_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n except:\n print \"Cert. Initialize recaptcha. Failed to load credentials from file: %s\" % cert_creds_file\n return False\n finally:\n f.close()\n \n try:\n recaptcha_creds = creds[\"recaptcha\"]\n except:\n print \"Cert. Initialize recaptcha. Invalid credentials file '%s' format:\" % cert_creds_file\n return False\n \n self.recaptcha_creds = None\n if recaptcha_creds[\"enabled\"]:\n print \"Cert. Initialize recaptcha. Recaptcha is enabled\"\n\n encryptionService = CdiUtil.bean(EncryptionService)\n\n site_key = recaptcha_creds[\"site_key\"]\n secret_key = recaptcha_creds[\"secret_key\"]\n\n try:\n site_key = encryptionService.decrypt(site_key)\n except:\n # Ignore exception. Value is not encrypted\n print \"Cert. Initialize recaptcha. Assuming that 'site_key' in not encrypted\"\n\n try:\n secret_key = encryptionService.decrypt(secret_key)\n except:\n # Ignore exception. Value is not encrypted\n print \"Cert. Initialize recaptcha. Assuming that 'secret_key' in not encrypted\"\n\n \n self.recaptcha_creds = { 'site_key' : site_key, \"secret_key\" : secret_key }\n print \"Cert. Initialize recaptcha. Recaptcha is configured correctly\"\n\n return True\n else:\n print \"Cert. Initialize recaptcha. Recaptcha is disabled\"\n\n return False\n\n def validateRecaptcha(self, recaptcha_response):\n print \"Cert. Validate recaptcha response\"\n\n facesContext = CdiUtil.bean(FacesContext)\n request = facesContext.getExternalContext().getRequest()\n\n remoteip = ServerUtil.getIpAddress(request)\n print \"Cert. Validate recaptcha response. remoteip: '%s'\" % remoteip\n\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n http_client_params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15 * 1000)\n \n recaptcha_validation_url = \"https://www.google.com/recaptcha/api/siteverify\"\n recaptcha_validation_request = urllib.urlencode({ \"secret\" : self.recaptcha_creds['secret_key'], \"response\" : recaptcha_response, \"remoteip\" : remoteip })\n recaptcha_validation_headers = { \"Content-type\" : \"application/x-www-form-urlencoded\", \"Accept\" : \"application/json\" }\n\n try:\n http_service_response = httpService.executePost(http_client, recaptcha_validation_url, None, recaptcha_validation_headers, recaptcha_validation_request)\n http_response = http_service_response.getHttpResponse()\n except:\n print \"Cert. Validate recaptcha response. Exception: \", sys.exc_info()[1]\n return False\n\n try:\n if not httpService.isResponseStastusCodeOk(http_response):\n print \"Cert. Validate recaptcha response. Get invalid response from validation server: \", str(http_response.getStatusLine().getStatusCode())\n httpService.consume(http_response)\n return False\n \n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes)\n httpService.consume(http_response)\n finally:\n http_service_response.closeConnection()\n\n if response_string == None:\n print \"Cert. Validate recaptcha response. Get empty response from validation server\"\n return False\n \n response = json.loads(response_string)\n \n return response[\"success\"]\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "cert", "modified": false, "configurationProperties": [ { "hide": false, "value2": "/etc/certs/chain_cert.pem", "value1": "chain_cert_file_path" }, { "hide": false, "value2": "/etc/certs/cert_creds.json", "value1": "credentials_file" }, { "hide": false, "value2": "true", "value1": "map_user_cert" }, { "hide": false, "value2": "true", "value1": "use_generic_validator" }, { "hide": false, "value2": "true", "value1": "use_path_validator" }, { "hide": false, "value2": "false", "value1": "use_ocsp_validator" }, { "hide": false, "value2": "false", "value1": "use_crl_validator" }, { "hide": false, "value2": "10485760", "value1": "crl_max_response_size" } ], "baseDn": "inum=2124-0CF1,ou=scripts,o=jans" }, { "internal": false, "level": 40, "programmingLanguage": "python", "description": "OTP Validation of passwords using Yubicloud authentication module", "locationType": "ldap", "dn": "inum=24FD-B96E,ou=scripts,o=jans", "inum": "24FD-B96E", "script": "# Janssen Project software is available under the Apache License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan, Arunmozhi\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import UserService\nfrom io.jans.util import StringHelper\n\nimport java\n\nimport urllib2\nimport urllib\nimport uuid\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Yubicloud. Initialization\"\n\n self.api_server = configurationAttributes.get(\"yubicloud_uri\").getValue2()\n self.api_key = configurationAttributes.get(\"yubicloud_api_key\").getValue2()\n self.client_id = configurationAttributes.get(\"yubicloud_id\").getValue2()\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"Yubicloud. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Yubicloud. Authenticate for step 1\"\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n username = credentials.getUsername()\n otp = credentials.getPassword()\n\n # Validate otp length\n if len(otp) < 32 or len(otp) > 48:\n print \"Yubicloud. Invalid OTP length\"\n return False\n\n user_service = CdiUtil.bean(UserService)\n user = user_service.getUser(username)\n\n public_key = user.getAttribute('yubikeyId')\n\n # Match the user with the yubikey\n if public_key not in otp:\n print \"Yubicloud. Public Key not matching OTP\"\n return False\n\n data = \"\"\n try:\n nonce = str(uuid.uuid4()).replace(\"-\", \"\")\n params = urllib.urlencode({\"id\": self.client_id, \"otp\": otp, \"nonce\": nonce})\n url = \"https://\" + self.api_server + \"/wsapi/2.0/verify/?\" + params\n f = urllib2.urlopen(url)\n data = f.read()\n except Exception as e:\n print \"Yubicloud. Exception \", e\n\n if 'status=OK' in data:\n user_service.authenticate(username)\n print \"Yubicloud. Authentication Successful\"\n return True\n\n print \"Yubicloud. End of Step 1. Returning False.\"\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Yubicloud. Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "yubicloud", "modified": false, "configurationProperties": [ { "hide": false, "value2": "api.yubico.com", "value1": "yubicloud_uri" }, { "hide": false, "value1": "yubicloud_api_key" }, { "hide": false, "value1": "yubicloud_id" } ], "baseDn": "inum=24FD-B96E,ou=scripts,o=jans" }, { "internal": false, "level": 20, "programmingLanguage": "python", "description": "Basic (with user locking) authentication module", "locationType": "ldap", "dn": "inum=4BBE-C6A8,ou=scripts,o=jans", "inum": "4BBE-C6A8", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n# Author: Gasmyr Mougang\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.service import CacheService\nfrom io.jans.util import StringHelper\nfrom io.jans.orm.exception import AuthenticationException\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\nfrom java.time import LocalDateTime, Duration\nfrom java.time.format import DateTimeFormatter\n\nimport java\nimport datetime\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Basic (lock account). Initialization\"\n\n self.invalidLoginCountAttribute = \"jansCountInvalidLogin\"\n if configurationAttributes.containsKey(\"invalid_login_count_attribute\"):\n self.invalidLoginCountAttribute = configurationAttributes.get(\"invalid_login_count_attribute\").getValue2()\n else:\n print \"Basic (lock account). Initialization. Using default attribute\"\n\n self.maximumInvalidLoginAttemps = 3\n if configurationAttributes.containsKey(\"maximum_invalid_login_attemps\"):\n self.maximumInvalidLoginAttemps = StringHelper.toInteger(configurationAttributes.get(\"maximum_invalid_login_attemps\").getValue2())\n else:\n print \"Basic (lock account). Initialization. Using default number attempts\"\n\n self.lockExpirationTime = 180\n if configurationAttributes.containsKey(\"lock_expiration_time\"):\n self.lockExpirationTime = StringHelper.toInteger(configurationAttributes.get(\"lock_expiration_time\").getValue2())\n else:\n print \"Basic (lock account). Initialization. Using default lock expiration time\"\n\n\n print \"Basic (lock account). Initialized successfully. invalid_login_count_attribute: '%s', maximum_invalid_login_attemps: '%s', lock_expiration_time: '%s'\" % (self.invalidLoginCountAttribute, self.maximumInvalidLoginAttemps, self.lockExpirationTime)\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Basic (lock account). Destroy\"\n print \"Basic (lock account). Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n print \"Basic (lock account). Authenticate for step 1\"\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n cacheService = CdiUtil.bean(CacheService)\n userService = CdiUtil.bean(UserService)\n\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n try:\n logged_in = authenticationService.authenticate(user_name, user_password)\n except AuthenticationException:\n print \"Basic (lock account). Authenticate. Failed to authenticate user '%s'\" % user_name\n\n if logged_in:\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(0))\n else:\n countInvalidLoginArributeValue = self.getUserAttributeValue(user_name, self.invalidLoginCountAttribute)\n userSatus = self.getUserAttributeValue(user_name, \"jansStatus\")\n print \"Current user '%s' status is '%s'\" % ( user_name, userSatus )\n\n countInvalidLogin = StringHelper.toInteger(countInvalidLoginArributeValue, 0)\n\n if countInvalidLogin < self.maximumInvalidLoginAttemps:\n countInvalidLogin = countInvalidLogin + 1\n remainingAttempts = self.maximumInvalidLoginAttemps - countInvalidLogin\n\n print \"Remaining login count attempts '%s' for user '%s'\" % ( remainingAttempts, user_name )\n\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(countInvalidLogin))\n if remainingAttempts > 0 and userSatus == \"active\":\n facesMessages.add(FacesMessage.SEVERITY_INFO, StringHelper.toString(remainingAttempts)+\" more attempt(s) before account is LOCKED!\")\n\n if (countInvalidLogin >= self.maximumInvalidLoginAttemps) and ((userSatus == None) or (userSatus == \"active\")):\n print \"Basic (lock account). Locking '%s' for '%s' seconds\" % ( user_name, self.lockExpirationTime)\n self.lockUser(user_name)\n return False\n\n if (countInvalidLogin >= self.maximumInvalidLoginAttemps) and userSatus == \"inactive\":\n print \"Basic (lock account). User '%s' is locked. Checking if we can unlock him\" % user_name\n \n unlock_and_authenticate = False\n\n object_from_store = cacheService.get(None, \"lock_user_\" + user_name)\n if object_from_store == None:\n # Object in cache was expired. We need to unlock user\n print \"Basic (lock account). User locking details for user '%s' not exists\" % user_name\n unlock_and_authenticate = True\n else:\n # Analyze object from cache\n user_lock_details = json.loads(object_from_store)\n\n user_lock_details_locked = user_lock_details['locked']\n user_lock_details_created = user_lock_details['created']\n user_lock_details_created_date = LocalDateTime.parse(user_lock_details_created, DateTimeFormatter.ISO_LOCAL_DATE_TIME)\n user_lock_details_created_diff = Duration.between(user_lock_details_created_date, LocalDateTime.now()).getSeconds()\n print \"Basic (lock account). Get user '%s' locking details. locked: '%s', Created: '%s', Difference in seconds: '%s'\" % ( user_name, user_lock_details_locked, user_lock_details_created, user_lock_details_created_diff )\n\n if user_lock_details_locked and user_lock_details_created_diff >= self.lockExpirationTime:\n print \"Basic (lock account). Unlocking user '%s' after lock expiration\" % user_name\n unlock_and_authenticate = True\n\n if unlock_and_authenticate:\n self.unLockUser(user_name)\n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(0))\n logged_in = authenticationService.authenticate(user_name, user_password)\n if not logged_in:\n # Update number of attempts \n self.setUserAttributeValue(user_name, self.invalidLoginCountAttribute, StringHelper.toString(1))\n if self.maximumInvalidLoginAttemps == 1:\n # Lock user if maximum count login attempts is 1 \n self.lockUser(user_name)\n return False\n\n\n return logged_in\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"Basic (lock account). Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def getUserAttributeValue(self, user_name, attribute_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n\n find_user_by_uid = userService.getUser(user_name, attribute_name)\n if find_user_by_uid == None:\n return None\n\n custom_attribute_value = userService.getCustomAttribute(find_user_by_uid, attribute_name)\n if custom_attribute_value == None:\n return None\n \n attribute_value = custom_attribute_value.getValue()\n\n print \"Basic (lock account). Get user attribute. User's '%s' attribute '%s' value is '%s'\" % (user_name, attribute_name, attribute_value)\n\n return attribute_value\n\n def setUserAttributeValue(self, user_name, attribute_name, attribute_value):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n\n find_user_by_uid = userService.getUser(user_name)\n if find_user_by_uid == None:\n return None\n \n userService.setCustomAttribute(find_user_by_uid, attribute_name, attribute_value)\n updated_user = userService.updateUser(find_user_by_uid)\n\n print \"Basic (lock account). Set user attribute. User's '%s' attribute '%s' value is '%s'\" % (user_name, attribute_name, attribute_value)\n\n return updated_user\n\n def lockUser(self, user_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n cacheService= CdiUtil.bean(CacheService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n find_user_by_uid = userService.getUser(user_name)\n if (find_user_by_uid == None):\n return None\n\n status_attribute_value = userService.getCustomAttribute(find_user_by_uid, \"gluuStatus\")\n if status_attribute_value != None:\n user_status = status_attribute_value.getValue()\n if StringHelper.equals(user_status, \"inactive\"):\n print \"Basic (lock account). Lock user. User '%s' locked already\" % user_name\n return\n \n userService.setCustomAttribute(find_user_by_uid, \"gluuStatus\", \"inactive\")\n updated_user = userService.updateUser(find_user_by_uid)\n\n object_to_store = json.dumps({'locked': True, 'created': LocalDateTime.now().toString()}, separators=(',',':'))\n\n cacheService.put(StringHelper.toString(self.lockExpirationTime), \"lock_user_\"+user_name, object_to_store);\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Your account is locked. Please try again after \" + StringHelper.toString(self.lockExpirationTime) + \" secs\")\n\n print \"Basic (lock account). Lock user. User '%s' locked\" % user_name\n\n def unLockUser(self, user_name):\n if StringHelper.isEmpty(user_name):\n return None\n\n userService = CdiUtil.bean(UserService)\n cacheService= CdiUtil.bean(CacheService)\n\n find_user_by_uid = userService.getUser(user_name)\n if (find_user_by_uid == None):\n return None\n\n object_to_store = json.dumps({'locked': False, 'created': LocalDateTime.now().toString()}, separators=(',',':'))\n cacheService.put(StringHelper.toString(self.lockExpirationTime), \"lock_user_\"+user_name, object_to_store);\n\n userService.setCustomAttribute(find_user_by_uid, \"jansStatus\", \"active\")\n userService.setCustomAttribute(find_user_by_uid, self.invalidLoginCountAttribute, None)\n updated_user = userService.updateUser(find_user_by_uid)\n\n\n print \"Basic (lock account). Lock user. User '%s' unlocked\" % user_name\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "basic_lock", "modified": false, "configurationProperties": [ { "hide": false, "value2": "oxCountInvalidLogin", "value1": "invalid_login_count_attribute" }, { "hide": false, "value2": "3", "value1": "maximum_invalid_login_attemps" }, { "hide": false, "value2": "120", "value1": "lock_expiration_time" } ], "baseDn": "inum=4BBE-C6A8,ou=scripts,o=jans" }, { "internal": false, "level": 40, "programmingLanguage": "python", "description": "HOTP/TOPT authentication module", "locationType": "ldap", "dn": "inum=5018-D4BF,ou=scripts,o=jans", "inum": "5018-D4BF", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\n# Requires the following custom properties and values:\n# otp_type: totp/hotp\n# issuer: Janssen Inc\n# otp_conf_file: /etc/certs/otp_configuration.json\n#\n# These are non mandatory custom properties and values:\n# label: Janssen OTP\n# qr_options: { width: 400, height: 400 }\n# registration_uri: https://ce-dev.jans.org/identity/register\n\nimport jarray\nimport json\nimport sys\nfrom com.google.common.io import BaseEncoding\nfrom com.lochbridge.oath.otp import HOTP\nfrom com.lochbridge.oath.otp import HOTPValidator\nfrom com.lochbridge.oath.otp import HmacShaAlgorithm\nfrom com.lochbridge.oath.otp import TOTP\nfrom com.lochbridge.oath.otp.keyprovisioning import OTPAuthURIBuilder\nfrom com.lochbridge.oath.otp.keyprovisioning import OTPKey\nfrom com.lochbridge.oath.otp.keyprovisioning.OTPKey import OTPType\nfrom java.security import SecureRandom\nfrom java.util import Arrays\nfrom java.util.concurrent import TimeUnit\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"OTP. Initialization\"\n\n if not configurationAttributes.containsKey(\"otp_type\"):\n print \"OTP. Initialization. Property otp_type is mandatory\"\n return False\n self.otpType = configurationAttributes.get(\"otp_type\").getValue2()\n\n if not self.otpType in [\"hotp\", \"totp\"]:\n print \"OTP. Initialization. Property value otp_type is invalid\"\n return False\n\n if not configurationAttributes.containsKey(\"issuer\"):\n print \"OTP. Initialization. Property issuer is mandatory\"\n return False\n self.otpIssuer = configurationAttributes.get(\"issuer\").getValue2()\n\n self.customLabel = None\n if configurationAttributes.containsKey(\"label\"):\n self.customLabel = configurationAttributes.get(\"label\").getValue2()\n\n self.customQrOptions = {}\n if configurationAttributes.containsKey(\"qr_options\"):\n self.customQrOptions = configurationAttributes.get(\"qr_options\").getValue2()\n\n self.registrationUri = None\n if configurationAttributes.containsKey(\"registration_uri\"):\n self.registrationUri = configurationAttributes.get(\"registration_uri\").getValue2()\n\n validOtpConfiguration = self.loadOtpConfiguration(configurationAttributes)\n if not validOtpConfiguration:\n return False\n\n print \"OTP. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"OTP. Destroy\"\n print \"OTP. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n print \"getNextStep Invoked\"\n # If user not pass current step change step to previous\n identity = CdiUtil.bean(Identity)\n retry_current_step = identity.getWorkingParameter(\"retry_current_step\")\n if retry_current_step:\n print \"OTP. Get next step. Retrying current step %s\" % step\n # Remove old QR code\n #identity.setWorkingParameter(\"super_gluu_request\", \"timeout\")\n resultStep = step\n return resultStep\n return -1\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n self.setRequestScopedParameters(identity)\n\n if step == 1:\n print \"OTP. Authenticate for step 1\"\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n otp_auth_method = \"authenticate\"\n # Uncomment this block if you need to allow user second OTP registration\n #enrollment_mode = ServerUtil.getFirstValue(requestParameters, \"loginForm:registerButton\")\n #if StringHelper.isNotEmpty(enrollment_mode):\n # otp_auth_method = \"enroll\"\n\n if otp_auth_method == \"authenticate\":\n user_enrollments = self.findEnrollments(authenticated_user.getUserId())\n if len(user_enrollments) == 0:\n otp_auth_method = \"enroll\"\n print \"OTP. Authenticate for step 1. There is no OTP enrollment for user '%s'. Changing otp_auth_method to '%s'\" % (authenticated_user.getUserId(), otp_auth_method)\n\n if otp_auth_method == \"enroll\":\n print \"OTP. Authenticate for step 1. Setting count steps: '%s'\" % 3\n identity.setWorkingParameter(\"otp_count_login_steps\", 3)\n\n print \"OTP. Authenticate for step 1. otp_auth_method: '%s'\" % otp_auth_method\n identity.setWorkingParameter(\"otp_auth_method\", otp_auth_method)\n\n return True\n elif step == 2:\n print \"OTP. Authenticate for step 2\"\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Authenticate for step 2. Failed to determine user name\"\n return False\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n # Restore state from session\n identity.setWorkingParameter(\"retry_current_step\", False)\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if otp_auth_method == 'enroll':\n auth_result = ServerUtil.getFirstValue(requestParameters, \"auth_result\")\n if not StringHelper.isEmpty(auth_result):\n # defect fix #1225 - Retry the step, show QR code again\n if auth_result == 'timeout':\n\t\t\t\t\t\tprint \"OTP. QR-code timeout. Authenticate for step %s. Reinitializing current step\" % step\n\t\t\t\t\t\tidentity.setWorkingParameter(\"retry_current_step\", True)\n\t\t\t\t\t\treturn True\n\n print \"OTP. Authenticate for step 2. User not enrolled OTP\"\n return False\n\n print \"OTP. Authenticate for step 2. Skipping this step during enrollment\"\n return True\n\n otp_auth_result = self.processOtpAuthentication(requestParameters, user.getUserId(), identity, otp_auth_method)\n print \"OTP. Authenticate for step 2. OTP authentication result: '%s'\" % otp_auth_result\n\n return otp_auth_result\n elif step == 3:\n print \"OTP. Authenticate for step 3\"\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Authenticate for step 2. Failed to determine user name\"\n return False\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n # Restore state from session\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if otp_auth_method != 'enroll':\n return False\n\n otp_auth_result = self.processOtpAuthentication(requestParameters, user.getUserId(), identity, otp_auth_method)\n print \"OTP. Authenticate for step 3. OTP authentication result: '%s'\" % otp_auth_result\n\n return otp_auth_result\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n self.setRequestScopedParameters(identity)\n\n if step == 1:\n print \"OTP. Prepare for step 1\"\n\n return True\n elif step == 2:\n print \"OTP. Prepare for step 2\"\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Prepare for step 2. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"OTP. Prepare for step 2. Failed to load user enty\"\n return False\n\n if self.otpType == \"hotp\":\n otp_secret_key = self.generateSecretHotpKey()\n otp_enrollment_request = self.generateHotpSecretKeyUri(otp_secret_key, self.otpIssuer, user.getAttribute(\"displayName\"))\n elif self.otpType == \"totp\":\n otp_secret_key = self.generateSecretTotpKey()\n otp_enrollment_request = self.generateTotpSecretKeyUri(otp_secret_key, self.otpIssuer, user.getAttribute(\"displayName\"))\n else:\n print \"OTP. Prepare for step 2. Unknown OTP type: '%s'\" % self.otpType\n return False\n\n print \"OTP. Prepare for step 2. Prepared enrollment request for user: '%s'\" % user.getUserId()\n identity.setWorkingParameter(\"otp_secret_key\", self.toBase64Url(otp_secret_key))\n identity.setWorkingParameter(\"otp_enrollment_request\", otp_enrollment_request)\n\n return True\n elif step == 3:\n print \"OTP. Prepare for step 3\"\n\n session_id_validation = self.validateSessionId(identity)\n if not session_id_validation:\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Prepare for step 3. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n return True\n\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"otp_auth_method\", \"otp_count_login_steps\", \"otp_secret_key\", \"otp_enrollment_request\",\"retry_current_step\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n identity = CdiUtil.bean(Identity)\n\n if identity.isSetWorkingParameter(\"otp_count_login_steps\"):\n return StringHelper.toInteger(\"%s\" % identity.getWorkingParameter(\"otp_count_login_steps\"))\n else:\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n identity = CdiUtil.bean(Identity)\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n print \"OTP. Gep page for step 2. otp_auth_method: '%s'\" % otp_auth_method\n\n if otp_auth_method == 'enroll':\n return \"/auth/otp/enroll.xhtml\"\n else:\n return \"/auth/otp/otplogin.xhtml\"\n elif step == 3:\n return \"/auth/otp/otplogin.xhtml\"\n\n return \"\"\n\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def setRequestScopedParameters(self, identity):\n if self.registrationUri != None:\n identity.setWorkingParameter(\"external_registration_uri\", self.registrationUri)\n\n if self.customLabel != None:\n identity.setWorkingParameter(\"qr_label\", self.customLabel)\n\n identity.setWorkingParameter(\"qr_options\", self.customQrOptions)\n\n def loadOtpConfiguration(self, configurationAttributes):\n print \"OTP. Load OTP configuration\"\n if not configurationAttributes.containsKey(\"otp_conf_file\"):\n return False\n\n otp_conf_file = configurationAttributes.get(\"otp_conf_file\").getValue2()\n\n # Load configuration from file\n f = open(otp_conf_file, 'r')\n try:\n otpConfiguration = json.loads(f.read())\n except:\n print \"OTP. Load OTP configuration. Failed to load configuration from file:\", otp_conf_file\n return False\n finally:\n f.close()\n\n # Check configuration file settings\n try:\n self.hotpConfiguration = otpConfiguration[\"hotp\"]\n self.totpConfiguration = otpConfiguration[\"totp\"]\n \n hmacShaAlgorithm = self.totpConfiguration[\"hmacShaAlgorithm\"]\n hmacShaAlgorithmType = None\n\n if StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha1\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_1\n elif StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha256\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_256\n elif StringHelper.equalsIgnoreCase(hmacShaAlgorithm, \"sha512\"):\n hmacShaAlgorithmType = HmacShaAlgorithm.HMAC_SHA_512\n else:\n print \"OTP. Load OTP configuration. Invalid TOTP HMAC SHA algorithm: '%s'\" % hmacShaAlgorithm\n \n self.totpConfiguration[\"hmacShaAlgorithmType\"] = hmacShaAlgorithmType\n except:\n print \"OTP. Load OTP configuration. Invalid configuration file '%s' format. Exception: '%s'\" % (otp_conf_file, sys.exc_info()[1])\n return False\n \n\n return True\n\n def processBasicAuthentication(self, credentials):\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if find_user_by_uid == None:\n print \"OTP. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def findEnrollments(self, user_name, skipPrefix = True):\n result = []\n\n userService = CdiUtil.bean(UserService)\n user = userService.getUser(user_name, \"jansExtUid\")\n if user == None:\n print \"OTP. Find enrollments. Failed to find user\"\n return result\n \n user_custom_ext_attribute = userService.getCustomAttribute(user, \"jansExtUid\")\n if user_custom_ext_attribute == None:\n return result\n\n otp_prefix = \"%s:\" % self.otpType\n \n otp_prefix_length = len(otp_prefix) \n for user_external_uid in user_custom_ext_attribute.getValues():\n index = user_external_uid.find(otp_prefix)\n if index != -1:\n if skipPrefix:\n enrollment_uid = user_external_uid[otp_prefix_length:]\n else:\n enrollment_uid = user_external_uid\n\n result.append(enrollment_uid)\n \n return result\n\n def validateSessionId(self, identity):\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"OTP. Validate session id. Failed to determine session_id\"\n return False\n\n otp_auth_method = identity.getWorkingParameter(\"otp_auth_method\")\n if not otp_auth_method in ['enroll', 'authenticate']:\n print \"OTP. Validate session id. Failed to authenticate user. otp_auth_method: '%s'\" % otp_auth_method\n return False\n\n return True\n\n def processOtpAuthentication(self, requestParameters, user_name, identity, otp_auth_method):\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n userService = CdiUtil.bean(UserService)\n\n otpCode = ServerUtil.getFirstValue(requestParameters, \"loginForm:otpCode\")\n if StringHelper.isEmpty(otpCode):\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to authenticate. OTP code is empty\")\n print \"OTP. Process OTP authentication. otpCode is empty\"\n\n return False\n \n if otp_auth_method == \"enroll\":\n # Get key from session\n otp_secret_key_encoded = identity.getWorkingParameter(\"otp_secret_key\")\n if otp_secret_key_encoded == None:\n print \"OTP. Process OTP authentication. OTP secret key is invalid\"\n return False\n \n otp_secret_key = self.fromBase64Url(otp_secret_key_encoded)\n\n if self.otpType == \"hotp\":\n validation_result = self.validateHotpKey(otp_secret_key, 1, otpCode)\n \n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process HOTP authentication during enrollment. otpCode is valid\"\n # Store HOTP Secret Key and moving factor in user entry\n otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, validation_result[\"movingFactor\"] )\n\n # Add otp_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n\n print \"OTP. Process HOTP authentication during enrollment. Failed to update user entry\"\n elif self.otpType == \"totp\":\n validation_result = self.validateTotpKey(otp_secret_key, otpCode,user_name)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process TOTP authentication during enrollment. otpCode is valid\"\n # Store TOTP Secret Key and moving factor in user entry\n otp_user_external_uid = \"totp:%s\" % otp_secret_key_encoded\n\n # Add otp_user_external_uid to user's external GUID list\n find_user_by_external_uid = userService.addUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n\n print \"OTP. Process TOTP authentication during enrollment. Failed to update user entry\"\n elif otp_auth_method == \"authenticate\":\n user_enrollments = self.findEnrollments(user_name)\n\n if len(user_enrollments) == 0:\n print \"OTP. Process OTP authentication. There is no OTP enrollment for user '%s'\" % user_name\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"There is no valid OTP user enrollments\")\n return False\n\n if self.otpType == \"hotp\":\n for user_enrollment in user_enrollments:\n user_enrollment_data = user_enrollment.split(\";\")\n otp_secret_key_encoded = user_enrollment_data[0]\n\n # Get current moving factor from user entry\n moving_factor = StringHelper.toInteger(user_enrollment_data[1])\n otp_secret_key = self.fromBase64Url(otp_secret_key_encoded)\n\n # Validate TOTP\n validation_result = self.validateHotpKey(otp_secret_key, moving_factor, otpCode)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process HOTP authentication during authentication. otpCode is valid\"\n otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, moving_factor )\n new_otp_user_external_uid = \"hotp:%s;%s\" % ( otp_secret_key_encoded, validation_result[\"movingFactor\"] )\n \n # Update moving factor in user entry\n find_user_by_external_uid = userService.replaceUserAttribute(user_name, \"jansExtUid\", otp_user_external_uid, new_otp_user_external_uid, True)\n if find_user_by_external_uid != None:\n return True\n \n print \"OTP. Process HOTP authentication during authentication. Failed to update user entry\"\n elif self.otpType == \"totp\":\n for user_enrollment in user_enrollments:\n otp_secret_key = self.fromBase64Url(user_enrollment)\n\n # Validate TOTP\n validation_result = self.validateTotpKey(otp_secret_key, otpCode, user_name)\n if (validation_result != None) and validation_result[\"result\"]:\n print \"OTP. Process TOTP authentication during authentication. otpCode is valid\"\n return True\n\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to authenticate. OTP code is invalid\")\n print \"OTP. Process OTP authentication. OTP code is invalid\"\n\n return False\n\n # Shared HOTP/TOTP methods\n def generateSecretKey(self, keyLength):\n bytes = jarray.zeros(keyLength, \"b\")\n secureRandom = SecureRandom()\n secureRandom.nextBytes(bytes)\n \n return bytes\n \n # HOTP methods\n def generateSecretHotpKey(self):\n keyLength = self.hotpConfiguration[\"keyLength\"]\n \n return self.generateSecretKey(keyLength)\n\n def generateHotpKey(self, secretKey, movingFactor):\n digits = self.hotpConfiguration[\"digits\"]\n\n hotp = HOTP.key(secretKey).digits(digits).movingFactor(movingFactor).build()\n \n return hotp.value()\n\n def validateHotpKey(self, secretKey, movingFactor, totpKey):\n lookAheadWindow = self.hotpConfiguration[\"lookAheadWindow\"]\n digits = self.hotpConfiguration[\"digits\"]\n\n htopValidationResult = HOTPValidator.lookAheadWindow(lookAheadWindow).validate(secretKey, movingFactor, digits, totpKey)\n if htopValidationResult.isValid():\n return { \"result\": True, \"movingFactor\": htopValidationResult.getNewMovingFactor() }\n\n return { \"result\": False, \"movingFactor\": None }\n\n def generateHotpSecretKeyUri(self, secretKey, issuer, userDisplayName):\n digits = self.hotpConfiguration[\"digits\"]\n\n secretKeyBase32 = self.toBase32(secretKey)\n otpKey = OTPKey(secretKeyBase32, OTPType.HOTP)\n label = issuer + \" %s\" % userDisplayName\n\n otpAuthURI = OTPAuthURIBuilder.fromKey(otpKey).label(label).issuer(issuer).digits(digits).build()\n\n return otpAuthURI.toUriString()\n\n # TOTP methods\n def generateSecretTotpKey(self):\n keyLength = self.totpConfiguration[\"keyLength\"]\n \n return self.generateSecretKey(keyLength)\n\n def generateTotpKey(self, secretKey):\n digits = self.totpConfiguration[\"digits\"]\n timeStep = self.totpConfiguration[\"timeStep\"]\n hmacShaAlgorithmType = self.totpConfiguration[\"hmacShaAlgorithmType\"]\n\n totp = TOTP.key(secretKey).digits(digits).timeStep(TimeUnit.SECONDS.toMillis(timeStep)).hmacSha(hmacShaAlgorithmType).build()\n \n return totp.value()\n\n def validateTotpKey(self, secretKey, totpKey, user_name):\n localTotpKey = self.generateTotpKey(secretKey)\n cachedOTP = self.getCachedOTP(user_name)\n\n if StringHelper.equals(localTotpKey, totpKey) and not StringHelper.equals(localTotpKey, cachedOTP):\n userService = CdiUtil.bean(UserService)\n if cachedOTP is None:\n userService.addUserAttribute(user_name, \"jansOTPCache\",localTotpKey)\n else :\n userService.replaceUserAttribute(user_name, \"jansOTPCache\", cachedOTP, localTotpKey)\n print \"OTP. Caching OTP: '%s'\" % localTotpKey\n return { \"result\": True }\n return { \"result\": False }\n\t\n def getCachedOTP(self, user_name):\n userService = CdiUtil.bean(UserService)\n user = userService.getUser(user_name, \"jansOTPCache\")\n if user is None:\n print \"OTP. Get Cached OTP. Failed to find OTP\"\n return None\n customAttribute = userService.getCustomAttribute(user, \"jansOTPCache\")\n \n if customAttribute is None:\n print \"OTP. Custom attribute is null\"\n return None\n user_cached_OTP = customAttribute.getValue()\n if user_cached_OTP is None:\n print \"OTP. no OTP is present in LDAP\"\n return None\n \n print \"OTP.Cached OTP: '%s'\" % user_cached_OTP\n return user_cached_OTP\n \n def generateTotpSecretKeyUri(self, secretKey, issuer, userDisplayName):\n digits = self.totpConfiguration[\"digits\"]\n timeStep = self.totpConfiguration[\"timeStep\"]\n\n secretKeyBase32 = self.toBase32(secretKey)\n otpKey = OTPKey(secretKeyBase32, OTPType.TOTP)\n label = issuer + \" %s\" % userDisplayName\n\n otpAuthURI = OTPAuthURIBuilder.fromKey(otpKey).label(label).issuer(issuer).digits(digits).timeStep(TimeUnit.SECONDS.toMillis(timeStep)).build()\n\n return otpAuthURI.toUriString()\n\n # Utility methods\n def toBase32(self, bytes):\n return BaseEncoding.base32().omitPadding().encode(bytes)\n\n def toBase64Url(self, bytes):\n return BaseEncoding.base64Url().encode(bytes)\n\n def fromBase64Url(self, chars):\n return BaseEncoding.base64Url().decode(chars)\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "otp", "modified": false, "configurationProperties": [ { "hide": false, "value2": "totp", "value1": "otp_type" }, { "hide": false, "value2": "/etc/certs/otp_configuration.json", "value1": "otp_conf_file" }, { "hide": false, "value2": "Gluu Inc", "value1": "issuer" }, { "hide": false, "value2": "Gluu OTP", "value1": "label" }, { "hide": false, "value2": "{ size: 400, mSize: 0.05 }", "value1": "qr_options" }, { "hide": false, "value2": "https://jenkins-build.jans.io/identity/register", "value1": "registration_uri" } ], "baseDn": "inum=5018-D4BF,ou=scripts,o=jans" }, { "internal": false, "level": 50, "programmingLanguage": "python", "description": "DUO authentication module", "locationType": "ldap", "dn": "inum=5018-F9CF,ou=scripts,o=jans", "inum": "5018-F9CF", "script": "from io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService, SessionIdService\nfrom io.jans.as.server.service.common import UserService\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom io.jans.as.server.service.net import HttpService\nimport os\nimport java\nimport sys\nfrom com.duosecurity import Client\nfrom com.duosecurity.exception import DuoException\nfrom com.duosecurity.model import Token\nfrom io.jans.jsf2.service import FacesService\nfrom jakarta.faces.context import FacesContext\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.as.server.util import ServerUtil\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Duo-Universal. Initialization\"\n \n if (not configurationAttributes.containsKey(\"client_id\")):\n\t print \"Duo Universal. Initialization. Property client_id is not specified\"\n\t return False\n else: \n \tself.client_id = configurationAttributes.get(\"client_id\").getValue2() \n \t\n if (not configurationAttributes.containsKey(\"client_secret\")):\n\t print \"Duo Universal. Initialization. Property client_secret is not specified\"\n\t return False\n else: \n \tself.client_secret = configurationAttributes.get(\"client_secret\").getValue2() \n \t\n if (not configurationAttributes.containsKey(\"api_hostname\")):\n\t print \"Duo Universal. Initialization. Property api_hostname is not specified\"\n\t return False\n else: \n \tself.api_hostname = configurationAttributes.get(\"api_hostname\").getValue2() \n \n print \"Duo-Universal. Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Duo-Universal. Destroy\"\n print \"Duo-Universal. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"Duo-Universal. Authenticate for step %s\" % step\n \n identity = CdiUtil.bean(Identity)\n if (step == 1):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n # Check if user authenticated already in another custom script\n user = authenticationService.getAuthenticatedUser()\n \n if user == None:\n print \"user is none\"\n credentials = identity.getCredentials()\n \n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n \n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n \t\t\t\t\n if (not logged_in):\n print \"return false\"\n return False\n identity.setWorkingParameter('username',user_name)\n return True\n \n elif (step == 2):\n \n identity = CdiUtil.bean(Identity)\n \n state = ServerUtil.getFirstValue(requestParameters, \"state\")\n \t\t\t# Get state to verify consistency and originality\n if identity.getWorkingParameter('state_duo') == state :\n \t\n \t# Get authorization token to trade for 2FA\n \tduoCode = ServerUtil.getFirstValue(requestParameters, \"duo_code\")\n\t \ttry:\n\t token = self.duo_client.exchangeAuthorizationCodeFor2FAResult(duoCode, identity.getWorkingParameter('username'))\n print \"token status %s \" % token.getAuth_result().getStatus()\n\t \texcept:\n\t # Handle authentication failure.\n\t print \"authentication failure\", sys.exc_info()[1]\n\t return False\n\t \n\t # User successfully passed Duo authentication.\n\t \n\t if \"allow\" == token.getAuth_result().getStatus():\n\t return True\n\t \n\t return False\n \n else:\n print \"Neither step 1 or 2\" \n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \tprint \"Duo-Universal. Prepare for step %s\" % step\n \n if (step == 1):\n return True\n elif (step == 2):\n \tidentity = CdiUtil.bean(Identity)\n user_name = identity.getWorkingParameter('username')\n \tfacesContext = CdiUtil.bean(FacesContext)\n \trequest = facesContext.getExternalContext().getRequest()\n \thttpService = CdiUtil.bean(HttpService)\n \turl = httpService.constructServerUrl(request) + \"/postlogin.htm\"\n \t\n \ttry:\n\t \tself.duo_client = Client(self.client_id,self.client_secret,self.api_hostname,url)\n\t \tself.duo_client.healthCheck()\n\t \texcept:\n print \"Duo-Universal. Duo config error. Verify the values in Duo-Universal.conf are correct \", sys.exc_info()[1]\n \n state = self.duo_client.generateState()\n identity.setWorkingParameter(\"state_duo\",state)\n prompt_uri = self.duo_client.createAuthUrl(user_name, state)\n \n facesService = CdiUtil.bean(FacesService)\n facesService.redirectToExternalURL(prompt_uri )\n\n return True\n \n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"state_duo\", \"username\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n print \"Duo-Universal. getPageForStep - %s \" % step\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n ", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "duo", "modified": false, "configurationProperties": [ { "hide": false, "value2": "/etc/certs/duo_creds.json", "value1": "duo_creds_file" }, { "hide": false, "value2": "api-random.duosecurity.com", "value1": "duo_host" } ], "baseDn": "inum=5018-F9CF,ou=scripts,o=jans" }, { "internal": false, "level": 70, "programmingLanguage": "python", "description": "Fido2 authentication module", "locationType": "ldap", "dn": "inum=8BAF-80D7,ou=scripts,o=jans", "inum": "8BAF-80D7", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.fido2.client import Fido2ClientFactory\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\nfrom java.util import Arrays\nfrom java.util.concurrent.locks import ReentrantLock\nfrom jakarta.ws.rs import ClientErrorException\nfrom jakarta.ws.rs.core import Response\n\nimport java\nimport sys\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Fido2. Initialization\"\n\n if not configurationAttributes.containsKey(\"fido2_server_uri\"):\n print \"fido2_server_uri. Initialization. Property fido2_server_uri is not specified\"\n return False\n\n self.fido2_server_uri = configurationAttributes.get(\"fido2_server_uri\").getValue2()\n\n self.fido2_domain = None\n if configurationAttributes.containsKey(\"fido2_domain\"):\n self.fido2_domain = configurationAttributes.get(\"fido2_domain\").getValue2()\n\n self.metaDataLoaderLock = ReentrantLock()\n self.metaDataConfiguration = None\n\n print \"Fido2. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Fido2. Destroy\"\n print \"Fido2. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n\n if step == 1:\n print \"Fido2. Authenticate for step 1\"\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\",ServerUtil.getFirstValue(requestParameters, \"loginForm:platformAuthenticator\"))\n\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n userService = CdiUtil.bean(UserService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n return True\n elif step == 2:\n print \"Fido2. Authenticate for step 2\"\n\n token_response = ServerUtil.getFirstValue(requestParameters, \"tokenResponse\")\n if token_response == None:\n print \"Fido2. Authenticate for step 2. tokenResponse is empty\"\n return False\n\n auth_method = ServerUtil.getFirstValue(requestParameters, \"authMethod\")\n if auth_method == None:\n print \"Fido2. Authenticate for step 2. authMethod is empty\"\n return False\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Fido2. Prepare for step 2. Failed to determine user name\"\n return False\n\n if auth_method == 'authenticate':\n print \"Fido2. Prepare for step 2. Call Fido2 in order to finish authentication flow\"\n assertionService = Fido2ClientFactory.instance().createAssertionService(self.metaDataConfiguration)\n assertionStatus = assertionService.verify(token_response)\n authenticationStatusEntity = assertionStatus.readEntity(java.lang.String)\n\n if assertionStatus.getStatus() != Response.Status.OK.getStatusCode():\n print \"Fido2. Authenticate for step 2. Get invalid authentication status from Fido2 server\"\n return False\n\n return True\n elif auth_method == 'enroll':\n print \"Fido2. Prepare for step 2. Call Fido2 in order to finish registration flow\"\n attestationService = Fido2ClientFactory.instance().createAttestationService(self.metaDataConfiguration)\n attestationStatus = attestationService.verify(token_response)\n\n if attestationStatus.getStatus() != Response.Status.OK.getStatusCode():\n print \"Fido2. Authenticate for step 2. Get invalid registration status from Fido2 server\"\n return False\n\n return True\n else:\n print \"Fido2. Prepare for step 2. Authentication method is invalid\"\n return False\n\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n\n if step == 1:\n return True\n elif step == 2:\n print \"Fido2. Prepare for step 2\"\n\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Fido2. Prepare for step 2. Failed to determine session_id\"\n return False\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Fido2. Prepare for step 2. Failed to determine user name\"\n return False\n\n userName = user.getUserId()\n\n metaDataConfiguration = self.getMetaDataConfiguration()\n\n assertionResponse = None\n attestationResponse = None\n\n # Check if user have registered devices\n count = CdiUtil.bean(UserService).countFido2RegisteredDevices(userName, self.fido2_domain)\n if count > 0:\n print \"Fido2. Prepare for step 2. Call Fido2 endpoint in order to start assertion flow\"\n\n try:\n assertionService = Fido2ClientFactory.instance().createAssertionService(metaDataConfiguration)\n assertionRequest = json.dumps({'username': userName}, separators=(',', ':'))\n assertionResponse = assertionService.authenticate(assertionRequest).readEntity(java.lang.String)\n # if device has only platform authenticator and assertion is expecting a security key\n if \"internal\" in assertionResponse:\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\", \"true\")\n else:\n identity.setWorkingParameter(\"platformAuthenticatorAvailable\", \"false\")\n\n except ClientErrorException, ex:\n print \"Fido2. Prepare for step 2. Failed to start assertion flow. Exception:\", sys.exc_info()[1]\n return False\n else:\n print \"Fido2. Prepare for step 2. Call Fido2 endpoint in order to start attestation flow\"\n\n try:\n attestationService = Fido2ClientFactory.instance().createAttestationService(metaDataConfiguration)\n platformAuthenticatorAvailable = identity.getWorkingParameter(\"platformAuthenticatorAvailable\") == \"true\"\n basic_json = {'username': userName, 'displayName': userName, 'attestation' : 'direct'}\n print \"% s\" % identity.getWorkingParameter(\"platformAuthenticatorAvailable\")\n if platformAuthenticatorAvailable is True:\n # the reason behind userVerification = discouraged --> https://chromium.googlesource.com/chromium/src/+/master/content/browser/webauth/uv_preferred.md\n platform_json = {\"authenticatorSelection\":{\"authenticatorAttachment\":\"platform\",\"requireResidentKey\" : \"false\", \"userVerification\" : \"discouraged\" } }\n basic_json.update(platform_json)\n\n # also need to add this --> excludeCredentials : [//registered ids]\n print \" basic_json %s\" % basic_json\n\n attestationRequest = json.dumps(basic_json)\n #, separators=(',', ':'))\n\n attestationResponse = attestationService.register(attestationRequest).readEntity(java.lang.String)\n except ClientErrorException, ex:\n print \"Fido2. Prepare for step 2. Failed to start attestation flow. Exception:\", sys.exc_info()[1]\n return False\n\n identity.setWorkingParameter(\"fido2_assertion_request\", ServerUtil.asJson(assertionResponse))\n identity.setWorkingParameter(\"fido2_attestation_request\", ServerUtil.asJson(attestationResponse))\n print \"Fido2. Prepare for step 2. Successfully start flow with next requests.\\nfido2_assertion_request: '%s'\\nfido2_attestation_request: '%s'\" % ( assertionResponse, attestationResponse )\n\n return True\n elif step == 3:\n print \"Fido2. Prepare for step 3\"\n\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList( \"platformAuthenticatorAvailable\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n return \"/auth/fido2/step1.xhtml\"\n elif step == 2:\n identity = CdiUtil.bean(Identity)\n if identity.getWorkingParameter(\"platformAuthenticatorAvailable\") == \"true\":\n return \"/auth/fido2/platform.xhtml\"\n else:\n return \"/auth/fido2/secKeys.xhtml\"\n return \"\"\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def getMetaDataConfiguration(self):\n if self.metaDataConfiguration != None:\n return self.metaDataConfiguration\n\n self.metaDataLoaderLock.lock()\n # Make sure that another thread not loaded configuration already\n if self.metaDataConfiguration != None:\n return self.metaDataConfiguration\n\n try:\n print \"Fido2. Initialization. Downloading Fido2 metadata\"\n self.fido2_server_metadata_uri = self.fido2_server_uri + \"/.well-known/fido2-configuration\"\n\n metaDataConfigurationService = Fido2ClientFactory.instance().createMetaDataConfigurationService(self.fido2_server_metadata_uri)\n\n max_attempts = 10\n for attempt in range(1, max_attempts + 1):\n try:\n self.metaDataConfiguration = metaDataConfigurationService.getMetadataConfiguration().readEntity(java.lang.String)\n return self.metaDataConfiguration\n except ClientErrorException, ex:\n # Detect if last try or we still get Service Unavailable HTTP error\n if (attempt == max_attempts) or (ex.getResponse().getResponseStatus() != Response.Status.SERVICE_UNAVAILABLE):\n raise ex\n\n java.lang.Thread.sleep(3000)\n print \"Attempting to load metadata: %d\" % attempt\n finally:\n self.metaDataLoaderLock.unlock()\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "fido2", "modified": false, "configurationProperties": [ { "hide": false, "value2": "https://jenkins-build.jans.io", "value1": "fido2_server_uri" } ], "baseDn": "inum=8BAF-80D7,ou=scripts,o=jans" }, { "internal": false, "level": 60, "programmingLanguage": "python", "description": "Super Gluu authentication module", "locationType": "ldap", "dn": "inum=92F0-BF9E,ou=scripts,o=jans", "inum": "92F0-BF9E", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom com.google.android.gcm.server import Sender, Message\nfrom com.notnoop.apns import APNS\nfrom java.util import Arrays\nfrom org.apache.http.params import CoreConnectionPNames\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.model.config import ConfigurationFactory\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.service.fido.u2f import DeviceRegistrationService\nfrom io.jans.as.server.service.net import HttpService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.as.common.service.common import EncryptionService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.service import MailService\nfrom io.jans.as.server.service.push.sns import PushPlatform\nfrom io.jans.as.server.service.push.sns import PushSnsService\nfrom io.jans.notify.client import NotifyClientFactory \nfrom java.util import Arrays, HashMap, IdentityHashMap, Date\nfrom java.time import ZonedDateTime\nfrom java.time.format import DateTimeFormatter\n\nimport datetime\nimport urllib\n\nimport sys\nimport json\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Super-Gluu. Initialization\"\n\n if not configurationAttributes.containsKey(\"authentication_mode\"):\n print \"Super-Gluu. Initialization. Property authentication_mode is mandatory\"\n return False\n\n self.applicationId = None\n if configurationAttributes.containsKey(\"application_id\"):\n self.applicationId = configurationAttributes.get(\"application_id\").getValue2()\n\n self.registrationUri = None\n if configurationAttributes.containsKey(\"registration_uri\"):\n self.registrationUri = configurationAttributes.get(\"registration_uri\").getValue2()\n\n authentication_mode = configurationAttributes.get(\"authentication_mode\").getValue2()\n if StringHelper.isEmpty(authentication_mode):\n print \"Super-Gluu. Initialization. Failed to determine authentication_mode. authentication_mode configuration parameter is empty\"\n return False\n \n self.oneStep = StringHelper.equalsIgnoreCase(authentication_mode, \"one_step\")\n self.twoStep = StringHelper.equalsIgnoreCase(authentication_mode, \"two_step\")\n\n if not (self.oneStep or self.twoStep):\n print \"Super-Gluu. Initialization. Valid authentication_mode values are one_step and two_step\"\n return False\n \n self.enabledPushNotifications = self.initPushNotificationService(configurationAttributes)\n\n self.androidUrl = None\n if configurationAttributes.containsKey(\"supergluu_android_download_url\"):\n self.androidUrl = configurationAttributes.get(\"supergluu_android_download_url\").getValue2()\n\n self.IOSUrl = None\n if configurationAttributes.containsKey(\"supergluu_ios_download_url\"):\n self.IOSUrl = configurationAttributes.get(\"supergluu_ios_download_url\").getValue2()\n\n self.customLabel = None\n if configurationAttributes.containsKey(\"label\"):\n self.customLabel = configurationAttributes.get(\"label\").getValue2()\n\n self.customQrOptions = {}\n if configurationAttributes.containsKey(\"qr_options\"):\n self.customQrOptions = configurationAttributes.get(\"qr_options\").getValue2()\n\n self.use_super_gluu_group = False\n if configurationAttributes.containsKey(\"super_gluu_group\"):\n self.super_gluu_group = configurationAttributes.get(\"super_gluu_group\").getValue2()\n self.use_super_gluu_group = True\n print \"Super-Gluu. Initialization. Using super_gluu only if user belong to group: %s\" % self.super_gluu_group\n\n self.use_audit_group = False\n if configurationAttributes.containsKey(\"audit_group\"):\n self.audit_group = configurationAttributes.get(\"audit_group\").getValue2()\n\n if (not configurationAttributes.containsKey(\"audit_group_email\")):\n print \"Super-Gluu. Initialization. Property audit_group_email is not specified\"\n return False\n\n self.audit_email = configurationAttributes.get(\"audit_group_email\").getValue2()\n self.use_audit_group = True\n\n print \"Super-Gluu. Initialization. Using audit group: %s\" % self.audit_group\n \n if self.use_super_gluu_group or self.use_audit_group:\n if not configurationAttributes.containsKey(\"audit_attribute\"):\n print \"Super-Gluu. Initialization. Property audit_attribute is not specified\"\n return False\n else:\n self.audit_attribute = configurationAttributes.get(\"audit_attribute\").getValue2()\n\n print \"Super-Gluu. Initialized successfully. oneStep: '%s', twoStep: '%s', pushNotifications: '%s', customLabel: '%s'\" % (self.oneStep, self.twoStep, self.enabledPushNotifications, self.customLabel)\n\n return True \n\n def destroy(self, configurationAttributes):\n print \"Super-Gluu. Destroy\"\n\n self.pushAndroidService = None\n self.pushAppleService = None\n\n print \"Super-Gluu. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n client_redirect_uri = self.getApplicationUri(session_attributes)\n if client_redirect_uri == None:\n print \"Super-Gluu. Authenticate. redirect_uri is not set\"\n return False\n\n self.setRequestScopedParameters(identity, step)\n\n # Validate form result code and initialize QR code regeneration if needed (retry_current_step = True)\n identity.setWorkingParameter(\"retry_current_step\", False)\n form_auth_result = ServerUtil.getFirstValue(requestParameters, \"auth_result\")\n if StringHelper.isNotEmpty(form_auth_result):\n print \"Super-Gluu. Authenticate for step %s. Get auth_result: '%s'\" % (step, form_auth_result)\n if form_auth_result in ['error']:\n return False\n\n if form_auth_result in ['timeout']:\n if ((step == 1) and self.oneStep) or ((step == 2) and self.twoStep): \n print \"Super-Gluu. Authenticate for step %s. Reinitializing current step\" % step\n identity.setWorkingParameter(\"retry_current_step\", True)\n return False\n\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n if step == 1:\n print \"Super-Gluu. Authenticate for step 1\"\n\n user_name = credentials.getUsername()\n if self.oneStep:\n session_device_status = self.getSessionDeviceStatus(session_attributes, user_name)\n if session_device_status == None:\n return False\n\n u2f_device_id = session_device_status['device_id']\n\n validation_result = self.validateSessionDeviceStatus(client_redirect_uri, session_device_status)\n if validation_result:\n print \"Super-Gluu. Authenticate for step 1. User successfully authenticated with u2f_device '%s'\" % u2f_device_id\n else:\n return False\n \n if not session_device_status['one_step']:\n print \"Super-Gluu. Authenticate for step 1. u2f_device '%s' is not one step device\" % u2f_device_id\n return False\n \n # There are two steps only in enrollment mode\n if session_device_status['enroll']:\n return validation_result\n\n identity.setWorkingParameter(\"super_gluu_count_login_steps\", 1)\n\n user_inum = session_device_status['user_inum']\n\n u2f_device = deviceRegistrationService.findUserDeviceRegistration(user_inum, u2f_device_id, \"jansId\")\n if u2f_device == None:\n print \"Super-Gluu. Authenticate for step 1. Failed to load u2f_device '%s'\" % u2f_device_id\n return False\n\n logged_in = authenticationService.authenticate(user_name)\n if not logged_in:\n print \"Super-Gluu. Authenticate for step 1. Failed to authenticate user '%s'\" % user_name\n return False\n\n print \"Super-Gluu. Authenticate for step 1. User '%s' successfully authenticated with u2f_device '%s'\" % (user_name, u2f_device_id)\n \n return True\n elif self.twoStep:\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n if (self.use_super_gluu_group):\n print \"Super-Gluu. Authenticate for step 1. Checking if user belong to super_gluu group\"\n is_member_super_gluu_group = self.isUserMemberOfGroup(authenticated_user, self.audit_attribute, self.super_gluu_group)\n if (is_member_super_gluu_group):\n print \"Super-Gluu. Authenticate for step 1. User '%s' member of super_gluu group\" % authenticated_user.getUserId()\n super_gluu_count_login_steps = 2\n else:\n if self.use_audit_group:\n self.processAuditGroup(authenticated_user, self.audit_attribute, self.audit_group)\n super_gluu_count_login_steps = 1\n \n identity.setWorkingParameter(\"super_gluu_count_login_steps\", super_gluu_count_login_steps)\n \n if super_gluu_count_login_steps == 1:\n return True\n \n auth_method = 'authenticate'\n enrollment_mode = ServerUtil.getFirstValue(requestParameters, \"loginForm:registerButton\")\n if StringHelper.isNotEmpty(enrollment_mode):\n auth_method = 'enroll'\n \n if auth_method == 'authenticate':\n user_inum = userService.getUserInum(authenticated_user)\n u2f_devices_list = deviceRegistrationService.findUserDeviceRegistrations(user_inum, client_redirect_uri, \"jansId\")\n if u2f_devices_list.size() == 0:\n auth_method = 'enroll'\n print \"Super-Gluu. Authenticate for step 1. There is no U2F '%s' user devices associated with application '%s'. Changing auth_method to '%s'\" % (user_name, client_redirect_uri, auth_method)\n \n print \"Super-Gluu. Authenticate for step 1. auth_method: '%s'\" % auth_method\n \n identity.setWorkingParameter(\"super_gluu_auth_method\", auth_method)\n\n return True\n\n return False\n elif step == 2:\n print \"Super-Gluu. Authenticate for step 2\"\n\n user = authenticationService.getAuthenticatedUser()\n if (user == None):\n print \"Super-Gluu. Authenticate for step 2. Failed to determine user name\"\n return False\n user_name = user.getUserId()\n\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n session_device_status = self.getSessionDeviceStatus(session_attributes, user_name)\n if session_device_status == None:\n return False\n\n u2f_device_id = session_device_status['device_id']\n\n # There are two steps only in enrollment mode\n if self.oneStep and session_device_status['enroll']:\n authenticated_user = self.processBasicAuthentication(credentials)\n if authenticated_user == None:\n return False\n\n user_inum = userService.getUserInum(authenticated_user)\n \n attach_result = deviceRegistrationService.attachUserDeviceRegistration(user_inum, u2f_device_id)\n\n print \"Super-Gluu. Authenticate for step 2. Result after attaching u2f_device '%s' to user '%s': '%s'\" % (u2f_device_id, user_name, attach_result) \n\n return attach_result\n elif self.twoStep:\n if user_name == None:\n print \"Super-Gluu. Authenticate for step 2. Failed to determine user name\"\n return False\n\n validation_result = self.validateSessionDeviceStatus(client_redirect_uri, session_device_status, user_name)\n if validation_result:\n print \"Super-Gluu. Authenticate for step 2. User '%s' successfully authenticated with u2f_device '%s'\" % (user_name, u2f_device_id)\n else:\n return False\n \n super_gluu_request = json.loads(session_device_status['super_gluu_request'])\n auth_method = super_gluu_request['method']\n if auth_method in ['enroll', 'authenticate']:\n if validation_result and self.use_audit_group:\n user = authenticationService.getAuthenticatedUser()\n self.processAuditGroup(user, self.audit_attribute, self.audit_group)\n\n return validation_result\n\n print \"Super-Gluu. Authenticate for step 2. U2F auth_method is invalid\"\n\n return False\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n identity = CdiUtil.bean(Identity)\n session_attributes = identity.getSessionId().getSessionAttributes()\n\n client_redirect_uri = self.getApplicationUri(session_attributes)\n if client_redirect_uri == None:\n print \"Super-Gluu. Prepare for step. redirect_uri is not set\"\n return False\n\n self.setRequestScopedParameters(identity, step)\n\n if step == 1:\n print \"Super-Gluu. Prepare for step 1\"\n if self.oneStep:\n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine session_id\"\n return False\n\n issuer = CdiUtil.bean(ConfigurationFactory).getConfiguration().getIssuer()\n super_gluu_request_dictionary = {'app': client_redirect_uri,\n 'issuer': issuer,\n 'state': session.getId(),\n 'created': DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now().withNano(0))}\n\n self.addGeolocationData(session_attributes, super_gluu_request_dictionary)\n\n super_gluu_request = json.dumps(super_gluu_request_dictionary, separators=(',',':'))\n print \"Super-Gluu. Prepare for step 1. Prepared super_gluu_request:\", super_gluu_request\n \n identity.setWorkingParameter(\"super_gluu_request\", super_gluu_request)\n elif self.twoStep:\n identity.setWorkingParameter(\"display_register_action\", True)\n\n return True\n elif step == 2:\n print \"Super-Gluu. Prepare for step 2\"\n if self.oneStep:\n return True\n\n authenticationService = CdiUtil.bean(AuthenticationService)\n user = authenticationService.getAuthenticatedUser()\n if user == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine user name\"\n return False\n\n if session_attributes.containsKey(\"super_gluu_request\"):\n super_gluu_request = session_attributes.get(\"super_gluu_request\")\n if not StringHelper.equalsIgnoreCase(super_gluu_request, \"timeout\"):\n print \"Super-Gluu. Prepare for step 2. Request was generated already\"\n return True\n \n session = CdiUtil.bean(SessionIdService).getSessionId()\n if session == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine session_id\"\n return False\n\n auth_method = session_attributes.get(\"super_gluu_auth_method\")\n if StringHelper.isEmpty(auth_method):\n print \"Super-Gluu. Prepare for step 2. Failed to determine auth_method\"\n return False\n\n print \"Super-Gluu. Prepare for step 2. auth_method: '%s'\" % auth_method\n \n issuer = CdiUtil.bean(ConfigurationFactory).getAppConfiguration().getIssuer()\n super_gluu_request_dictionary = {'username': user.getUserId(),\n 'app': client_redirect_uri,\n 'issuer': issuer,\n 'method': auth_method,\n 'state': session.getId(),\n 'created': DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now().withNano(0))}\n\n self.addGeolocationData(session_attributes, super_gluu_request_dictionary)\n\n super_gluu_request = json.dumps(super_gluu_request_dictionary, separators=(',',':'))\n print \"Super-Gluu. Prepare for step 2. Prepared super_gluu_request:\", super_gluu_request\n\n identity.setWorkingParameter(\"super_gluu_request\", super_gluu_request)\n identity.setWorkingParameter(\"super_gluu_auth_method\", auth_method)\n\n if auth_method in ['authenticate']:\n self.sendPushNotification(client_redirect_uri, user, super_gluu_request)\n\n return True\n else:\n return False\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n # If user not pass current step change step to previous\n identity = CdiUtil.bean(Identity)\n retry_current_step = identity.getWorkingParameter(\"retry_current_step\")\n if retry_current_step:\n print \"Super-Gluu. Get next step. Retrying current step\"\n\n # Remove old QR code\n identity.setWorkingParameter(\"super_gluu_request\", \"timeout\")\n\n resultStep = step\n return resultStep\n\n return -1\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 1:\n if self.oneStep: \n return Arrays.asList(\"super_gluu_request\")\n elif self.twoStep:\n return Arrays.asList(\"display_register_action\")\n elif step == 2:\n return Arrays.asList(\"super_gluu_auth_method\", \"super_gluu_request\")\n \n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n identity = CdiUtil.bean(Identity)\n if identity.isSetWorkingParameter(\"super_gluu_count_login_steps\"):\n return identity.getWorkingParameter(\"super_gluu_count_login_steps\")\n else:\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 1:\n if self.oneStep: \n return \"/auth/super-gluu/login.xhtml\"\n elif step == 2:\n if self.oneStep:\n return \"/login.xhtml\"\n else:\n identity = CdiUtil.bean(Identity)\n authmethod = identity.getWorkingParameter(\"super_gluu_auth_method\")\n print \"Super-Gluu. authmethod '%s'\" % authmethod\n if authmethod == \"enroll\":\n return \"/auth/super-gluu/login.xhtml\"\n else:\n return \"/auth/super-gluu/login.xhtml\"\n\n return \"\"\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def processBasicAuthentication(self, credentials):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return None\n\n find_user_by_uid = authenticationService.getAuthenticatedUser()\n if find_user_by_uid == None:\n print \"Super-Gluu. Process basic authentication. Failed to find user '%s'\" % user_name\n return None\n \n return find_user_by_uid\n\n def validateSessionDeviceStatus(self, client_redirect_uri, session_device_status, user_name = None):\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n\n u2f_device_id = session_device_status['device_id']\n\n u2f_device = None\n if session_device_status['enroll'] and session_device_status['one_step']:\n u2f_device = deviceRegistrationService.findOneStepUserDeviceRegistration(u2f_device_id)\n if u2f_device == None:\n print \"Super-Gluu. Validate session device status. There is no one step u2f_device '%s'\" % u2f_device_id\n return False\n else:\n # Validate if user has specified device_id enrollment\n user_inum = userService.getUserInum(user_name)\n\n if session_device_status['one_step']:\n user_inum = session_device_status['user_inum']\n \n u2f_device = deviceRegistrationService.findUserDeviceRegistration(user_inum, u2f_device_id)\n if u2f_device == None:\n print \"Super-Gluu. Validate session device status. There is no u2f_device '%s' associated with user '%s'\" % (u2f_device_id, user_inum)\n return False\n\n if not StringHelper.equalsIgnoreCase(client_redirect_uri, u2f_device.application):\n print \"Super-Gluu. Validate session device status. u2f_device '%s' associated with other application '%s'\" % (u2f_device_id, u2f_device.application)\n return False\n \n return True\n\n def getSessionDeviceStatus(self, session_attributes, user_name):\n print \"Super-Gluu. Get session device status\"\n\n if not session_attributes.containsKey(\"super_gluu_request\"):\n print \"Super-Gluu. Get session device status. There is no Super-Gluu request in session attributes\"\n return None\n\n # Check session state extended\n if not session_attributes.containsKey(\"session_custom_state\"):\n print \"Super-Gluu. Get session device status. There is no session_custom_state in session attributes\"\n return None\n\n session_custom_state = session_attributes.get(\"session_custom_state\")\n if not StringHelper.equalsIgnoreCase(\"approved\", session_custom_state):\n print \"Super-Gluu. Get session device status. User '%s' not approve or not pass U2F authentication. session_custom_state: '%s'\" % (user_name, session_custom_state)\n return None\n\n # Try to find device_id in session attribute\n if not session_attributes.containsKey(\"oxpush2_u2f_device_id\"):\n print \"Super-Gluu. Get session device status. There is no u2f_device associated with this request\"\n return None\n\n # Try to find user_inum in session attribute\n if not session_attributes.containsKey(\"oxpush2_u2f_device_user_inum\"):\n print \"Super-Gluu. Get session device status. There is no user_inum associated with this request\"\n return None\n \n enroll = False\n if session_attributes.containsKey(\"oxpush2_u2f_device_enroll\"):\n enroll = StringHelper.equalsIgnoreCase(\"true\", session_attributes.get(\"oxpush2_u2f_device_enroll\"))\n\n one_step = False\n if session_attributes.containsKey(\"oxpush2_u2f_device_one_step\"):\n one_step = StringHelper.equalsIgnoreCase(\"true\", session_attributes.get(\"oxpush2_u2f_device_one_step\"))\n \n super_gluu_request = session_attributes.get(\"super_gluu_request\")\n u2f_device_id = session_attributes.get(\"oxpush2_u2f_device_id\")\n user_inum = session_attributes.get(\"oxpush2_u2f_device_user_inum\")\n\n session_device_status = {\"super_gluu_request\": super_gluu_request, \"device_id\": u2f_device_id, \"user_inum\" : user_inum, \"enroll\" : enroll, \"one_step\" : one_step}\n print \"Super-Gluu. Get session device status. session_device_status: '%s'\" % (session_device_status)\n \n return session_device_status\n\n def initPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize Native/SNS/Gluu notification services\"\n\n self.pushSnsMode = False\n self.pushGluuMode = False\n if configurationAttributes.containsKey(\"notification_service_mode\"):\n notificationServiceMode = configurationAttributes.get(\"notification_service_mode\").getValue2()\n if StringHelper.equalsIgnoreCase(notificationServiceMode, \"sns\"):\n return self.initSnsPushNotificationService(configurationAttributes)\n elif StringHelper.equalsIgnoreCase(notificationServiceMode, \"gluu\"):\n return self.initGluuPushNotificationService(configurationAttributes)\n\n return self.initNativePushNotificationService(configurationAttributes)\n\n def initNativePushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize native notification services\"\n \n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n android_creds = creds[\"android\"][\"gcm\"]\n ios_creds = creds[\"ios\"][\"apns\"]\n except:\n print \"Super-Gluu. Initialize native notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if android_creds[\"enabled\"]:\n self.pushAndroidService = Sender(android_creds[\"api_key\"]) \n print \"Super-Gluu. Initialize native notification services. Created Android notification service\"\n \n if ios_creds[\"enabled\"]:\n p12_file_path = ios_creds[\"p12_file_path\"]\n p12_password = ios_creds[\"p12_password\"]\n\n try:\n encryptionService = CdiUtil.bean(EncryptionService)\n p12_password = encryptionService.decrypt(p12_password)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize native notification services. Assuming that 'p12_password' password in not encrypted\"\n\n apnsServiceBuilder = APNS.newService().withCert(p12_file_path, p12_password)\n if ios_creds[\"production\"]:\n self.pushAppleService = apnsServiceBuilder.withProductionDestination().build()\n else:\n self.pushAppleService = apnsServiceBuilder.withSandboxDestination().build()\n\n self.pushAppleServiceProduction = ios_creds[\"production\"]\n\n print \"Super-Gluu. Initialize native notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def initSnsPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize SNS notification services\"\n self.pushSnsMode = True\n\n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n sns_creds = creds[\"sns\"]\n android_creds = creds[\"android\"][\"sns\"]\n ios_creds = creds[\"ios\"][\"sns\"]\n except:\n print \"Super-Gluu. Initialize SNS notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if not (android_creds[\"enabled\"] or ios_creds[\"enabled\"]):\n print \"Super-Gluu. Initialize SNS notification services. SNS disabled for all platforms\"\n return False\n\n sns_access_key = sns_creds[\"access_key\"]\n sns_secret_access_key = sns_creds[\"secret_access_key\"]\n sns_region = sns_creds[\"region\"]\n\n encryptionService = CdiUtil.bean(EncryptionService)\n\n try:\n sns_secret_access_key = encryptionService.decrypt(sns_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize SNS notification services. Assuming that 'sns_secret_access_key' in not encrypted\"\n \n pushSnsService = CdiUtil.bean(PushSnsService)\n pushClient = pushSnsService.createSnsClient(sns_access_key, sns_secret_access_key, sns_region)\n\n if android_creds[\"enabled\"]:\n self.pushAndroidService = pushClient\n self.pushAndroidPlatformArn = android_creds[\"platform_arn\"]\n print \"Super-Gluu. Initialize SNS notification services. Created Android notification service\"\n\n if ios_creds[\"enabled\"]:\n self.pushAppleService = pushClient \n self.pushApplePlatformArn = ios_creds[\"platform_arn\"]\n self.pushAppleServiceProduction = ios_creds[\"production\"]\n print \"Super-Gluu. Initialize SNS notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def initGluuPushNotificationService(self, configurationAttributes):\n print \"Super-Gluu. Initialize Gluu notification services\"\n\n self.pushGluuMode = True\n\n creds = self.loadPushNotificationCreds(configurationAttributes)\n if creds == None:\n return False\n \n try:\n gluu_conf = creds[\"gluu\"]\n android_creds = creds[\"android\"][\"gluu\"]\n ios_creds = creds[\"ios\"][\"gluu\"]\n except:\n print \"Super-Gluu. Initialize Gluu notification services. Invalid credentials file format\"\n return False\n \n self.pushAndroidService = None\n self.pushAppleService = None\n if not (android_creds[\"enabled\"] or ios_creds[\"enabled\"]):\n print \"Super-Gluu. Initialize Gluu notification services. Gluu disabled for all platforms\"\n return False\n\n gluu_server_uri = gluu_conf[\"server_uri\"]\n notifyClientFactory = NotifyClientFactory.instance()\n metadataConfiguration = None\n try:\n metadataConfiguration = notifyClientFactory.createMetaDataConfigurationService(gluu_server_uri).getMetadataConfiguration()\n except:\n print \"Super-Gluu. Initialize Gluu notification services. Failed to load metadata. Exception: \", sys.exc_info()[1]\n return False\n\n gluuClient = notifyClientFactory.createNotifyService(metadataConfiguration)\n encryptionService = CdiUtil.bean(EncryptionService)\n\n if android_creds[\"enabled\"]:\n gluu_access_key = android_creds[\"access_key\"]\n gluu_secret_access_key = android_creds[\"secret_access_key\"]\n \n try:\n gluu_secret_access_key = encryptionService.decrypt(gluu_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize Gluu notification services. Assuming that 'gluu_secret_access_key' in not encrypted\"\n \n self.pushAndroidService = gluuClient \n self.pushAndroidServiceAuth = notifyClientFactory.getAuthorization(gluu_access_key, gluu_secret_access_key);\n print \"Super-Gluu. Initialize Gluu notification services. Created Android notification service\"\n\n if ios_creds[\"enabled\"]:\n gluu_access_key = ios_creds[\"access_key\"]\n gluu_secret_access_key = ios_creds[\"secret_access_key\"]\n \n try:\n gluu_secret_access_key = encryptionService.decrypt(gluu_secret_access_key)\n except:\n # Ignore exception. Password is not encrypted\n print \"Super-Gluu. Initialize Gluu notification services. Assuming that 'gluu_secret_access_key' in not encrypted\"\n \n self.pushAppleService = gluuClient \n self.pushAppleServiceAuth = notifyClientFactory.getAuthorization(gluu_access_key, gluu_secret_access_key);\n print \"Super-Gluu. Initialize Gluu notification services. Created iOS notification service\"\n\n enabled = self.pushAndroidService != None or self.pushAppleService != None\n\n return enabled\n\n def loadPushNotificationCreds(self, configurationAttributes):\n print \"Super-Gluu. Initialize notification services\"\n if not configurationAttributes.containsKey(\"credentials_file\"):\n return None\n\n super_gluu_creds_file = configurationAttributes.get(\"credentials_file\").getValue2()\n\n # Load credentials from file\n f = open(super_gluu_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n except:\n print \"Super-Gluu. Initialize notification services. Failed to load credentials from file:\", super_gluu_creds_file\n return None\n finally:\n f.close()\n\n return creds\n\n def sendPushNotification(self, client_redirect_uri, user, super_gluu_request):\n try:\n self.sendPushNotificationImpl(client_redirect_uri, user, super_gluu_request)\n except:\n print \"Super-Gluu. Send push notification. Failed to send push notification: \", sys.exc_info()[1]\n\n def sendPushNotificationImpl(self, client_redirect_uri, user, super_gluu_request):\n if not self.enabledPushNotifications:\n return\n\n user_name = user.getUserId()\n print \"Super-Gluu. Send push notification. Loading user '%s' devices\" % user_name\n\n send_notification = False\n send_notification_result = True\n\n userService = CdiUtil.bean(UserService)\n deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)\n\n user_inum = userService.getUserInum(user_name)\n\n send_android = 0\n send_ios = 0\n u2f_devices_list = deviceRegistrationService.findUserDeviceRegistrations(user_inum, client_redirect_uri, \"jansId\", \"jansDeviceData\", \"jansDeviceNotificationConf\")\n if u2f_devices_list.size() > 0:\n for u2f_device in u2f_devices_list:\n device_data = u2f_device.getDeviceData()\n\n # Device data which Super-Gluu gets during enrollment\n if device_data == None:\n continue\n\n platform = device_data.getPlatform()\n push_token = device_data.getPushToken()\n debug = False\n\n if StringHelper.equalsIgnoreCase(platform, \"ios\") and StringHelper.isNotEmpty(push_token):\n # Sending notification to iOS user's device\n if self.pushAppleService == None:\n print \"Super-Gluu. Send push notification. Apple native push notification service is not enabled\"\n else:\n send_notification = True\n \n title = \"Super Gluu\"\n message = \"Confirm your sign in request to: %s\" % client_redirect_uri\n\n if self.pushSnsMode or self.pushGluuMode:\n pushSnsService = CdiUtil.bean(PushSnsService)\n targetEndpointArn = self.getTargetEndpointArn(deviceRegistrationService, pushSnsService, PushPlatform.APNS, user, u2f_device)\n if targetEndpointArn == None:\n \treturn\n\n send_notification = True\n \n sns_push_request_dictionary = { \"aps\": \n { \"badge\": 0,\n \"alert\" : {\"body\": message, \"title\" : title},\n \"category\": \"ACTIONABLE\",\n \"content-available\": \"1\",\n \"sound\": 'default'\n },\n \"request\" : super_gluu_request\n }\n push_message = json.dumps(sns_push_request_dictionary, separators=(',',':'))\n \n if self.pushSnsMode:\n apple_push_platform = PushPlatform.APNS\n if not self.pushAppleServiceProduction:\n apple_push_platform = PushPlatform.APNS_SANDBOX\n \n send_notification_result = pushSnsService.sendPushMessage(self.pushAppleService, apple_push_platform, targetEndpointArn, push_message, None)\n if debug:\n print \"Super-Gluu. Send iOS SNS push notification. token: '%s', message: '%s', send_notification_result: '%s', apple_push_platform: '%s'\" % (push_token, push_message, send_notification_result, apple_push_platform)\n elif self.pushGluuMode:\n send_notification_result = self.pushAppleService.sendNotification(self.pushAppleServiceAuth, targetEndpointArn, push_message)\n if debug:\n print \"Super-Gluu. Send iOS Gluu push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n else:\n additional_fields = { \"request\" : super_gluu_request }\n \n msgBuilder = APNS.newPayload().alertBody(message).alertTitle(title).sound(\"default\")\n msgBuilder.category('ACTIONABLE').badge(0)\n msgBuilder.forNewsstand()\n msgBuilder.customFields(additional_fields)\n push_message = msgBuilder.build()\n \n send_notification_result = self.pushAppleService.push(push_token, push_message)\n if debug:\n print \"Super-Gluu. Send iOS Native push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n send_ios = send_ios + 1\n\n if StringHelper.equalsIgnoreCase(platform, \"android\") and StringHelper.isNotEmpty(push_token):\n # Sending notification to Android user's device\n if self.pushAndroidService == None:\n print \"Super-Gluu. Send native push notification. Android native push notification service is not enabled\"\n else:\n send_notification = True\n\n title = \"Super-Gluu\"\n if self.pushSnsMode or self.pushGluuMode:\n pushSnsService = CdiUtil.bean(PushSnsService)\n targetEndpointArn = self.getTargetEndpointArn(deviceRegistrationService, pushSnsService, PushPlatform.GCM, user, u2f_device)\n if targetEndpointArn == None:\n \treturn\n\n send_notification = True\n \n sns_push_request_dictionary = { \"collapse_key\": \"single\",\n \"content_available\": True,\n \"time_to_live\": 60,\n \"data\": \n { \"message\" : super_gluu_request,\n \"title\" : title }\n }\n push_message = json.dumps(sns_push_request_dictionary, separators=(',',':'))\n \n if self.pushSnsMode:\n send_notification_result = pushSnsService.sendPushMessage(self.pushAndroidService, PushPlatform.GCM, targetEndpointArn, push_message, None)\n if debug:\n print \"Super-Gluu. Send Android SNS push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n elif self.pushGluuMode:\n send_notification_result = self.pushAndroidService.sendNotification(self.pushAndroidServiceAuth, targetEndpointArn, push_message)\n if debug:\n print \"Super-Gluu. Send Android Gluu push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n else:\n msgBuilder = Message.Builder().addData(\"message\", super_gluu_request).addData(\"title\", title).collapseKey(\"single\").contentAvailable(True)\n push_message = msgBuilder.build()\n \n send_notification_result = self.pushAndroidService.send(push_message, push_token, 3)\n if debug:\n print \"Super-Gluu. Send Android Native push notification. token: '%s', message: '%s', send_notification_result: '%s'\" % (push_token, push_message, send_notification_result)\n send_android = send_android + 1\n\n print \"Super-Gluu. Send push notification. send_android: '%s', send_ios: '%s'\" % (send_android, send_ios)\n\n def getTargetEndpointArn(self, deviceRegistrationService, pushSnsService, platform, user, u2fDevice):\n targetEndpointArn = None\n \n # Return endpoint ARN if it created already\n notificationConf = u2fDevice.getDeviceNotificationConf()\n if StringHelper.isNotEmpty(notificationConf):\n notificationConfJson = json.loads(notificationConf)\n targetEndpointArn = notificationConfJson['sns_endpoint_arn']\n if StringHelper.isNotEmpty(targetEndpointArn):\n print \"Super-Gluu. Get target endpoint ARN. There is already created target endpoint ARN\"\n return targetEndpointArn\n\n # Create endpoint ARN \n pushClient = None\n pushClientAuth = None\n platformApplicationArn = None\n if platform == PushPlatform.GCM:\n pushClient = self.pushAndroidService\n if self.pushSnsMode:\n platformApplicationArn = self.pushAndroidPlatformArn\n if self.pushGluuMode:\n pushClientAuth = self.pushAndroidServiceAuth\n elif platform == PushPlatform.APNS:\n pushClient = self.pushAppleService\n if self.pushSnsMode:\n platformApplicationArn = self.pushApplePlatformArn\n if self.pushGluuMode:\n pushClientAuth = self.pushAppleServiceAuth\n else:\n return None\n\n deviceData = u2fDevice.getDeviceData()\n pushToken = deviceData.getPushToken()\n \n print \"Super-Gluu. Get target endpoint ARN. Attempting to create target endpoint ARN for user: '%s'\" % user.getUserId()\n if self.pushSnsMode:\n targetEndpointArn = pushSnsService.createPlatformArn(pushClient, platformApplicationArn, pushToken, user)\n else:\n customUserData = pushSnsService.getCustomUserData(user)\n registerDeviceResponse = pushClient.registerDevice(pushClientAuth, pushToken, customUserData);\n if registerDeviceResponse != None and registerDeviceResponse.getStatusCode() == 200:\n targetEndpointArn = registerDeviceResponse.getEndpointArn()\n \n if StringHelper.isEmpty(targetEndpointArn):\n\t print \"Super-Gluu. Failed to get endpoint ARN for user: '%s'\" % user.getUserId()\n \treturn None\n\n print \"Super-Gluu. Get target endpoint ARN. Create target endpoint ARN '%s' for user: '%s'\" % (targetEndpointArn, user.getUserId())\n \n # Store created endpoint ARN in device entry\n userInum = user.getAttribute(\"inum\")\n u2fDeviceUpdate = deviceRegistrationService.findUserDeviceRegistration(userInum, u2fDevice.getId())\n u2fDeviceUpdate.setDeviceNotificationConf('{\"sns_endpoint_arn\" : \"%s\"}' % targetEndpointArn)\n deviceRegistrationService.updateDeviceRegistration(userInum, u2fDeviceUpdate)\n\n return targetEndpointArn\n\n def getApplicationUri(self, session_attributes):\n if self.applicationId != None:\n return self.applicationId\n \n if not session_attributes.containsKey(\"redirect_uri\"):\n return None\n\n return session_attributes.get(\"redirect_uri\")\n\n def setRequestScopedParameters(self, identity, step):\n downloadMap = HashMap()\n if self.registrationUri != None:\n identity.setWorkingParameter(\"external_registration_uri\", self.registrationUri)\n\n if self.androidUrl!= None and step == 1:\n downloadMap.put(\"android\", self.androidUrl)\n\n if self.IOSUrl != None and step == 1:\n downloadMap.put(\"ios\", self.IOSUrl)\n \n if self.customLabel != None:\n identity.setWorkingParameter(\"super_gluu_label\", self.customLabel)\n \n identity.setWorkingParameter(\"download_url\", downloadMap)\n identity.setWorkingParameter(\"super_gluu_qr_options\", self.customQrOptions)\n\n def addGeolocationData(self, session_attributes, super_gluu_request_dictionary):\n if session_attributes.containsKey(\"remote_ip\"):\n remote_ip = session_attributes.get(\"remote_ip\")\n if StringHelper.isNotEmpty(remote_ip):\n print \"Super-Gluu. Prepare for step 2. Adding req_ip and req_loc to super_gluu_request\"\n super_gluu_request_dictionary['req_ip'] = remote_ip\n\n remote_loc_dic = self.determineGeolocationData(remote_ip)\n if remote_loc_dic == None:\n print \"Super-Gluu. Prepare for step 2. Failed to determine remote location by remote IP '%s'\" % remote_ip\n return\n\n remote_loc = \"%s, %s, %s\" % ( remote_loc_dic['country'], remote_loc_dic['regionName'], remote_loc_dic['city'] )\n remote_loc_encoded = urllib.quote(remote_loc.encode('utf-8'))\n super_gluu_request_dictionary['req_loc'] = remote_loc_encoded\n\n def determineGeolocationData(self, remote_ip):\n print \"Super-Gluu. Determine remote location. remote_ip: '%s'\" % remote_ip\n httpService = CdiUtil.bean(HttpService)\n\n http_client = httpService.getHttpsClient()\n http_client_params = http_client.getParams()\n http_client_params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15 * 1000)\n \n geolocation_service_url = \"http://ip-api.com/json/%s?fields=49177\" % remote_ip\n geolocation_service_headers = { \"Accept\" : \"application/json\" }\n\n try:\n http_service_response = httpService.executeGet(http_client, geolocation_service_url, geolocation_service_headers)\n http_response = http_service_response.getHttpResponse()\n except:\n print \"Super-Gluu. Determine remote location. Exception: \", sys.exc_info()[1]\n return None\n\n try:\n if not httpService.isResponseStastusCodeOk(http_response):\n print \"Super-Gluu. Determine remote location. Get invalid response from validation server: \", str(http_response.getStatusLine().getStatusCode())\n httpService.consume(http_response)\n return None\n \n response_bytes = httpService.getResponseContent(http_response)\n response_string = httpService.convertEntityToString(response_bytes)\n httpService.consume(http_response)\n finally:\n http_service_response.closeConnection()\n\n if response_string == None:\n print \"Super-Gluu. Determine remote location. Get empty response from location server\"\n return None\n \n response = json.loads(response_string)\n \n if not StringHelper.equalsIgnoreCase(response['status'], \"success\"):\n print \"Super-Gluu. Determine remote location. Get response with status: '%s'\" % response['status']\n return None\n\n return response\n\n def isUserMemberOfGroup(self, user, attribute, group):\n is_member = False\n member_of_list = user.getAttributeValues(attribute)\n if (member_of_list != None):\n for member_of in member_of_list:\n if StringHelper.equalsIgnoreCase(group, member_of) or member_of.endswith(group):\n is_member = True\n break\n\n return is_member\n\n def processAuditGroup(self, user, attribute, group):\n is_member = self.isUserMemberOfGroup(user, attribute, group)\n if (is_member):\n print \"Super-Gluu. Authenticate for processAuditGroup. User '%s' member of audit group\" % user.getUserId()\n print \"Super-Gluu. Authenticate for processAuditGroup. Sending e-mail about user '%s' login to %s\" % (user.getUserId(), self.audit_email)\n \n # Send e-mail to administrator\n user_id = user.getUserId()\n mailService = CdiUtil.bean(MailService)\n subject = \"User log in: %s\" % user_id\n body = \"User log in: %s\" % user_id\n mailService.sendMail(self.audit_email, subject, body)\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "super_gluu", "modified": false, "configurationProperties": [ { "hide": false, "value2": "{ size: 500, mSize: 0.05 }", "value1": "qr_options" }, { "hide": false, "value2": "Super Gluu", "value1": "label" }, { "hide": false, "value2": "https://jenkins-build.jans.io/identity/register", "value1": "registration_uri" }, { "hide": false, "value2": "two_step", "value1": "authentication_mode" }, { "hide": false, "value2": "gluu", "value1": "notification_service_mode" }, { "hide": false, "value2": "/etc/certs/super_gluu_creds.json", "value1": "credentials_file" }, { "hide": false, "value2": "https://play.google.com/store/apps/details?id=gluu.org.super.gluu&hl=en_US", "value1": "supergluu_android_download_url" }, { "hide": false, "value2": "https://itunes.apple.com/us/app/super-gluu/id1093479646", "value1": "supergluu_ios_download_url" } ], "baseDn": "inum=92F0-BF9E,ou=scripts,o=jans" }, { "internal": false, "aliases": [ "basic_alias1", "basic_alias2" ], "level": 10, "programmingLanguage": "python", "description": "Sample authentication module", "locationType": "ldap", "dn": "inum=A51E-76DA,ou=scripts,o=jans", "inum": "A51E-76DA", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.util import StringHelper\n\nimport java\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Basic. Initialization\"\n print \"Basic. Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Basic. Destroy\"\n print \"Basic. Destroyed successfully\"\n return True\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if (step == 1):\n print \"Basic. Authenticate for step 1\"\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if (not logged_in):\n return False\n\n return True\n else:\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if (step == 1):\n print \"Basic. Prepare for Step 1\"\n return True\n else:\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "basic", "modified": false, "baseDn": "inum=A51E-76DA,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "This script is a 2 in 1. It can be used to enable user to reset its password or to enable 2FA sending a token to user's email", "dn": "inum=B270-381E,ou=scripts,o=jans", "inum": "B270-381E", "script": "# coding: utf-8\n# Janssen Project software is available under the Apache License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Christian Eland\n\n\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\n# from org.gluu.oxauth.auth import Authenticator\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.as.common.service.common import ConfigurationService\nfrom io.jans.as.common.service.common import EncryptionService\nfrom io.jans.jsf2.message import FacesMessages\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.orm.exception import AuthenticationException\n\n#dealing with smtp server\nimport smtplib\n\n#dealing with emails\nfrom email.mime.multipart import MIMEMultipart\nfrom email.mime.text import MIMEText\n\n# This one is from core Java\nfrom java.util import Arrays\n\n# to generate string token\nimport random\nimport string\n\n# regex\nimport re\n\nimport urllib\n\nimport java\n\nclass EmailValidator():\n '''\n Class to check e-mail format\n '''\n regex = '^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$'\n\n def check(self, email):\n '''\n Check if email format is valid\n returns: boolean\n '''\n\n if(re.search(self.regex,email)):\n print \"Forgot Password - %s is a valid email format\" % email\n return True\n else:\n print \"Forgot Password - %s is an invalid email format\" % email\n return False\n\nclass Token:\n #class that deals with string token\n\n def generateToken(self):\n ''' method to generate token string\n returns: String\n '''\n letters = string.ascii_lowercase\n\n #token lenght\n lenght = 20\n\n #generate token\n token = ''.join(random.choice(letters) for i in range(lenght))\n print \"Forgot Password - Generating token\"\n\n return token\n\n\nclass EmailSender():\n #class that sends e-mail through smtp\n\n def getSmtpConfig(self):\n '''\n get SMTP config from Gluu Server\n return dict\n '''\n \n smtpconfig = CdiUtil.bean(ConfigurationService).getConfiguration().getSmtpConfiguration()\n \n if smtpconfig is None:\n print \"Forgot Password - SMTP CONFIG DOESN'T EXIST - Please configure\"\n\n else:\n print \"Forgot Password - SMTP CONFIG FOUND\"\n encryptionService = CdiUtil.bean(EncryptionService)\n smtp_config = {\n 'host' : smtpconfig.getHost(),\n 'port' : smtpconfig.getPort(),\n 'user' : smtpconfig.getUserName(),\n 'from' : smtpconfig.getFromEmailAddress(),\n 'pwd_decrypted' : encryptionService.decrypt(smtpconfig.getPassword()),\n 'req_ssl' : smtpconfig.isRequiresSsl(),\n 'requires_authentication' : smtpconfig.isRequiresAuthentication(),\n 'server_trust' : smtpconfig.isServerTrust()\n }\n\n return smtp_config\n\n \n\n def sendEmail(self,useremail,token):\n '''\n send token by e-mail to useremail\n '''\n\n # server connection \n smtpconfig = self.getSmtpConfig()\n \n try:\n s = smtplib.SMTP(smtpconfig['host'], port=smtpconfig['port'])\n \n\n if smtpconfig['requires_authentication']:\n \n if smtpconfig['req_ssl']:\n s.starttls()\n \n s.login(smtpconfig['user'], smtpconfig['pwd_decrypted'])\n\n \n #message setup\n msg = MIMEMultipart() #create message\n \n message = \"Here is your token: %s\" % token\n\n msg['From'] = smtpconfig['from'] #sender\n msg['To'] = useremail #recipient\n msg['Subject'] = \"Password Reset Request\" #subject\n\n #attach message body\n msg.attach(MIMEText(message, 'plain'))\n\n #send message via smtp server\n # send_message method is for python3 only s.send_message(msg)\n\n #send email (python2)\n s.sendmail(msg['From'],msg['To'],msg.as_string())\n \n #after sent, delete\n del msg\n\n except smtplib.SMTPAuthenticationError as err:\n print \"Forgot Password - SMTPAuthenticationError - %s - %s\" % (MY_ADDRESS,PASSWORD)\n print err\n\n except smtplib.smtplib.SMTPSenderRefused as err:\n print \"Forgot Password - SMTPSenderRefused - \" + err\n\n\nclass PersonAuthentication(PersonAuthenticationType):\n\n\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n\n print \"Forgot Password - Initialized successfully\"\n return True \n\n def destroy(self, configurationAttributes):\n print \"Forgot Password - Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n # I'm not sure why is 11 and not 2\n return 11\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n '''\n Authenticates user\n Step 1 will be defined according to SCRIPT_FUNCTION custom attribute\n returns: boolean\n '''\n\n #gets custom attribute\n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n\n print \"Forgot Password - %s - Authenticate for step %s\" % (sf, step)\n\n identity = CdiUtil.bean(Identity)\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n\n if step == 1:\n\n if sf == \"forgot_password\":\n\n \n authenticationService = CdiUtil.bean(AuthenticationService)\n\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n \n if not logged_in:\n\n \n email = ServerUtil.getFirstValue(requestParameters, \"ForgotPasswordForm:useremail\")\n validator = EmailValidator()\n if not validator.check(email):\n print \"Forgot Password - Email format invalid\"\n return False\n\n else:\n print \"Forgot Password -Email format valid\"\n \n print \"Forgot Password - Entered email is %s\" % email\n identity.setWorkingParameter(\"useremail\",email)\n \n # Just trying to get the user by the email\n user_service = CdiUtil.bean(UserService)\n user2 = user_service.getUserByAttribute(\"mail\", email)\n\n if user2 is not None:\n \n print user2\n print \"Forgot Password - User with e-mail %s found.\" % user2.getAttribute(\"mail\")\n \n # send email\n new_token = Token()\n token = new_token.generateToken() \n sender = EmailSender()\n print \"Email: \" + email\n print \"Token: \" + token\n sender.sendEmail(email,token)\n\n \n identity.setWorkingParameter(\"token\", token)\n print identity.getWorkingParameter(\"token\")\n \n \n \n else:\n print \"Forgot Password - User with e-mail %s not found\" % email\n\n return True\n\n\n else:\n # if user is already authenticated, returns true.\n\n user = authenticationService.getAuthenticatedUser()\n print \"Forgot Password - User %s is authenticated\" % user.getUserId()\n\n return True\n\n if sf == \"email_2FA\":\n\n try:\n # Just trying to get the user by the uid\n authenticationService = CdiUtil.bean(AuthenticationService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n \n print 'email_2FA user_name: ' + str(user_name)\n \n user_service = CdiUtil.bean(UserService)\n user2 = user_service.getUserByAttribute(\"uid\", user_name)\n\n if user2 is not None:\n print \"user:\"\n print user2\n print \"Forgot Password - User with e-mail %s found.\" % user2.getAttribute(\"mail\")\n email = user2.getAttribute(\"mail\")\n uid = user2.getAttribute(\"uid\")\n\n # send token\n # send email\n new_token = Token()\n token = new_token.generateToken() \n sender = EmailSender()\n print \"Email: \" + email\n print \"Token: \" + token\n sender.sendEmail(email,token)\n\n identity.setWorkingParameter(\"token\", token)\n\n return True\n\n except AuthenticationException as err:\n print err\n return False\n\n \n \n\n if step == 2:\n # step 2 user enters token\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n \n authenticationService = CdiUtil.bean(AuthenticationService)\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n # retrieves token typed by user\n input_token = ServerUtil.getFirstValue(requestParameters, \"ResetTokenForm:inputToken\")\n\n print \"Forgot Password - Token inputed by user is %s\" % input_token\n\n token = identity.getWorkingParameter(\"token\")\n print \"Forgot Password - Retrieved token\"\n email = identity.getWorkingParameter(\"useremail\")\n print \"Forgot Password - Retrieved email\" \n\n # compares token sent and token entered by user\n if input_token == token:\n print \"Forgot Password - token entered correctly\"\n identity.setWorkingParameter(\"token_valid\", True)\n \n return True\n\n else:\n print \"Forgot Password - wrong token\"\n return False\n\n \n if step == 3:\n # step 3 enters new password (only runs if custom attibute is forgot_password\n\n user_service = CdiUtil.bean(UserService)\n\n email = identity.getWorkingParameter(\"useremail\")\n user2 = user_service.getUserByAttribute(\"mail\", email)\n\n\n user_name = user2.getUserId()\n \n new_password = ServerUtil.getFirstValue(requestParameters, \"UpdatePasswordForm:newPassword\")\n \n print \"Forgot Password - New password submited\"\n \n # update user info with new password\n user2.setAttribute(\"userPassword\",new_password)\n print \"Forgot Password - user uid is %s\" % user_name\n print \"Forgot Password - Updating user with new password...\"\n user_service.updateUser(user2)\n print \"Forgot Password - User updated with new password\"\n # authenticates and login user\n print \"Forgot Password - Loading authentication service...\"\n authenticationService2 = CdiUtil.bean(AuthenticationService)\n\n print \"Forgot Password - Trying to authenticate user...\"\n login = authenticationService2.authenticate(user_name, new_password)\n \n return True\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \n print \"Forgot Password - Preparing for step %s\" % step\n \n return True\n\n\n # Return value is a java.util.List \n def getExtraParametersForStep(self, configurationAttributes, step):\n return Arrays.asList(\"token\",\"useremail\",\"token_valid\")\n\n\n # This method determines how many steps the authentication flow may have\n # It doesn't have to be a constant value\n def getCountAuthenticationSteps(self, configurationAttributes):\n \n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n \n\n # if option is forgot_token\n if sf == \"forgot_password\":\n print \"Entered sf == forgot_password\"\n return 3\n \n # if ption is email_2FA\n if sf == \"email_2FA\":\n print \"Entered if sf=email_2FA\"\n return 2\n\n else:\n print \"Forgot Password - Custom Script Custom Property Incorrect, please check\"\n\n\n # The xhtml page to render upon each step of the flow\n # returns a string relative to oxAuth webapp root\n def getPageForStep(self, configurationAttributes, step):\n \n sf = configurationAttributes.get(\"SCRIPT_FUNCTION\").getValue2()\n\n if step == 1:\n\n if sf == \"forgot_password\":\n return \"/auth/forgot_password/forgot.xhtml\"\n\n if sf == 'email_2FA':\n return \"\"\n\n if step == 2:\n return \"/auth/forgot_password/entertoken.xhtml\"\n\n if step == 3:\n if sf == \"forgot_password\":\n return \"/auth/forgot_password/newpassword.xhtml\"\n\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n # Method used on version 2 (11?)\n return -1\n \n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "ldap", "value1": "SCRIPT_FUNCTION" } ], "scriptType": "person_authentication", "name": "Forgot_Password_2FA_Token", "modified": false, "configurationProperties": [ { "hide": false, "value2": "forgot_password", "value1": "SCRIPT_FUNCTION" } ], "baseDn": "inum=B270-381E,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "Agama Script", "locationType": "ldap", "dn": "inum=BADA-BADA,ou=scripts,o=jans", "inum": "BADA-BADA", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\nfrom io.jans.agama import NativeJansFlowBridge\nfrom io.jans.agama.engine.misc import FlowUtils\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.jsf2.service import FacesService\nfrom io.jans.jsf2.message import FacesMessages\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nfrom jakarta.faces.application import FacesMessage\n\nimport java\nimport sys\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"Agama. Initialization\" \n prop = \"cust_param_name\"\n self.cust_param_name = self.configProperty(configurationAttributes, prop)\n \n if self.cust_param_name == None:\n print \"Agama. Custom parameter name not referenced via property '%s'\" % prop\n return False\n \n print \"Agama. Request param '%s' will be used to pass flow inputs\" % self.cust_param_name\n print \"Agama. Initialized successfully\"\n return True\n\n def destroy(self, configurationAttributes):\n print \"Agama. Destroy\"\n print \"Agama. Destroyed successfully\"\n return True\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n\n if step == 1:\n print \"Agama. Authenticate for step 1\"\n \n try:\n bridge = CdiUtil.bean(NativeJansFlowBridge)\n result = bridge.close()\n \n if result == None or not result.isSuccess():\n print \"Agama. Flow DID NOT finished successfully\"\n return False\n else:\n print \"Agama. Flow finished successfully\"\n data = result.getData()\n userId = data.get(\"userId\") if data != None else None\n \n if userId == None:\n print \"Agama. No userId provided in flow result.\" \n self.setMessageError(FacesMessage.SEVERITY_ERROR, \"Unable to determine identity of user\")\n return False\n \n authenticated = CdiUtil.bean(AuthenticationService).authenticate(userId)\n \n if not authenticated:\n print \"Agama. Unable to authenticate %s\" % userId\n return False\n except:\n print \"Agama. Exception: \", sys.exc_info()[1]\n return False\n\n return True\n\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n \n if not CdiUtil.bean(FlowUtils).serviceEnabled():\n print \"Agama. Please ENABLE Agama engine in auth-server configuration\"\n return False\n\n if step == 1:\n print \"Agama. Prepare for Step 1\"\n\n session = CdiUtil.bean(Identity).getSessionId()\n if session == None:\n print \"Agama. Failed to retrieve session_id\"\n return False\n \n param = session.getSessionAttributes().get(self.cust_param_name) \n if param == None:\n print \"Agama. Request param '%s' is missing or has no value\" % self.cust_param_name\n return False\n \n (qn, ins) = self.extractParams(param)\n if qn == None:\n print \"Agama. Param '%s' is missing the name of the flow to be launched\" % self.cust_param_name\n return False\n \n try:\n bridge = CdiUtil.bean(NativeJansFlowBridge)\n running = bridge.prepareFlow(session.getId(), qn, ins)\n \n if running == None:\n print \"Agama. Flow '%s' does not exist!\" % qn\n return False\n elif running:\n print \"Agama. A flow is already in course\"\n \n print \"Agama. Redirecting to start/resume agama flow '%s'...\" % qn\n \n CdiUtil.bean(FacesService).redirectToExternalURL(bridge.getTriggerUrl())\n except:\n print \"Agama. An error occurred when launching flow '%s'. Check jans-auth logs\" % qn\n print \"Agama. Exception: \", sys.exc_info()[1]\n return False\n #except java.lang.Throwable, ex:\n # ex.printStackTrace() \n # return False \n return True\n \n def getExtraParametersForStep(self, configurationAttributes, step):\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n # page referenced here is only used when a flow is restarted\n return \"/\" + CdiUtil.bean(NativeJansFlowBridge).scriptPageUrl()\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n# Misc routines\n\n def configProperty(self, configProperties, name):\n prop = configProperties.get(name)\n return None if prop == None else prop.getValue2()\n\n def setMessageError(self, severity, msg):\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n facesMessages.clear()\n facesMessages.add(severity, msg)\n \n def extractParams(self, param):\n\n # param must be of the form QN-INPUT where QN is the qualified name of the flow to launch\n # INPUT is a JSON object that contains the arguments to use for the flow call.\n # The keys of this object should match the already defined flow inputs. Ideally, and \n # depending on the actual flow implementation, some keys may not even be required \n # QN and INPUTS are separated by a hyphen\n # INPUT must be properly URL-encoded when HTTP GET is used\n \n i = param.find(\"-\")\n if i == 0:\n return (None, None)\n elif i == -1:\n return (param, None)\n else:\n return (param[:i], param[i+1:])\n", "enabled": true, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "agama", "modified": false, "configurationProperties": [ { "hide": false, "value2": "agama_flow", "value1": "cust_param_name" } ], "baseDn": "inum=BADA-BADA,ou=scripts,o=jans" }, { "internal": false, "level": 10, "programmingLanguage": "python", "description": "GitHub Inbound Authentication script", "locationType": "ldap", "dn": "inum=E706-F8A8,ou=scripts,o=jans", "inum": "E706-F8A8", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Yuriy Movchan\n#\n\nfrom io.jans.as.common.model.common import User\nfrom io.jans.as.model.jwt import Jwt\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.common.service.common import UserService\nfrom io.jans.as.server.service.net import HttpService\nfrom io.jans.as.server.security import Identity\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.orm import PersistenceEntryManager\nfrom io.jans.as.persistence.model.configuration import GluuConfiguration\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.util import StringHelper\n\nfrom io.jans.jsf2.service import FacesService\nfrom java.util import Arrays, UUID\n\nimport json\nimport sys\nimport datetime\nimport urllib\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n\n def init(self, customScript, configurationAttributes):\n print \"GitHub. Initialization\"\n\n # read config from github_creds_file\n github_creds_file = configurationAttributes.get(\"github_creds_file\").getValue2()\n f = open(github_creds_file, 'r')\n try:\n creds = json.loads(f.read())\n print creds\n except:\n print \"GitHub: Initialization. Failed to load creds from file:\", github_creds_file\n print \"Exception: \", sys.exc_info()[1]\n return False\n finally:\n f.close()\n\n self.op_server = str(creds[\"op_server\"])\n self.client_id = str(creds[\"client_id\"])\n self.client_secret = str(creds[\"client_secret\"])\n self.authorization_uri = str(creds[\"authorization_uri\"])\n self.token_uri = str(creds[\"token_uri\"])\n self.userinfo_uri = str(creds[\"userinfo_uri\"])\n self.redirect_uri = str(creds[\"redirect_uri\"])\n self.scope = str(creds[\"scope\"])\n self.title = str(creds[\"title\"])\n self.auto_redirect = creds[\"auto_redirect\"]\n\n print \"GitHub: Initialized successfully\"\n\n return True\n\n def destroy(self, configurationAttributes):\n print \"GitHub. Destroy\"\n print \"GitHub. Destroyed successfully\"\n return True\n\n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n\n def getApiVersion(self):\n return 11\n\n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"GitHub: authenticate called for step %s\" % str(step)\n identity = CdiUtil.bean(Identity)\n authenticationService = CdiUtil.bean(AuthenticationService)\n\n if step == 1:\n # Get Access Token\n tokenResponse = self.getToken(requestParameters)\n if tokenResponse is None:\n return False\n\n # Get User Info\n userInfo = self.getUserInfo(tokenResponse[\"access_token\"])\n foundUser = self.addUser(userInfo)\n if foundUser is None:\n return False\n\n identity.setWorkingParameter(\"gihub_username\", userInfo[\"login\"])\n identity.setWorkingParameter(\"gihub_access_token\", tokenResponse[\"access_token\"])\n\n print \"GitHub: Successfully authenticated\"\n\n loggedIn = authenticationService.authenticate(foundUser.getUserId())\n print \"GitHub: Authentication: %s\" % str(loggedIn)\n return loggedIn\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n print \"GitHub: prepareForStep called for step %s\" % str(step)\n if step == 1:\n # redirect to external OIDC server\n\n redirect_url_elements = [self.authorization_uri,\n \"?response_type=code id_token\",\n \"&client_id=\", self.client_id,\n \"&scope=\", self.scope,\n \"&redirect_uri=\", self.redirect_uri]\n redirect_url = \"\".join(redirect_url_elements)\n\n identity = CdiUtil.bean(Identity)\n\n if self.auto_redirect:\n facesService = CdiUtil.bean(FacesService)\n facesService.redirectToExternalURL(redirect_url)\n else:\n identity.setWorkingParameter(\"oidc_redirect_uri\", redirect_url)\n identity.setWorkingParameter(\"oidc_title\", self.title)\n\n return True\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n print \"GitHub: getExtraParametersForStep called for step %s\" % str(step)\n return Arrays.asList(\"gihub_username\", \"gihub_access_token\")\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n print \"GitHub: getCountAuthenticationSteps called\"\n return 1\n\n def getPageForStep(self, configurationAttributes, step):\n print \"GitHub: getPageForStep called for step %s\" % str(step)\n if(step == 1):\n return \"/auth/github/github.xhtml\"\n return \"\"\n\n def getNextStep(self, configurationAttributes, requestParameters, step):\n print \"GitHub: getNextStep called for step %s\" % str(step)\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"GitHub: Get external logout URL call\"\n return None\n\n def logout(self, configurationAttributes, requestParameters):\n return True\n\n def generalLogin(self, identity, authenticationService):\n print \"GitHub: general login\"\n credentials = identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n\n logged_in = False\n if (StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password)):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n return logged_in\n\n def getLocalPrimaryKey(self):\n entryManager = CdiUtil.bean(PersistenceEntryManager)\n config = GluuConfiguration()\n config = entryManager.find(config.getClass(), \"ou=configuration,o=jans\")\n # Pick (one) attribute where user id is stored (e.g. uid/mail)\n # primaryKey is the primary key on the backend AD / LDAP Server\n # localPrimaryKey is the primary key on Janssen. This attr value has been mapped with the primary key attr of the backend AD / LDAP when configuring cache refresh\n uid_attr = config.getIdpAuthn().get(0).getConfig().findValue(\"localPrimaryKey\").asText()\n print \"GitHub: init. uid attribute is '%s'\" % uid_attr\n return uid_attr\n\n def getToken(self, requestParameters):\n print \"GitHub: Get Access Token\"\n oidcCode = ServerUtil.getFirstValue(requestParameters, \"code\")\n httpService = CdiUtil.bean(HttpService)\n httpclient = httpService.getHttpsClient()\n tokenRequestData = urllib.urlencode({\n \"code\" : oidcCode,\n \"grant_type\" : \"authorization_code\",\n \"redirect_uri\": self.redirect_uri,\n \"client_id\": self.client_id,\n \"client_secret\": self.client_secret\n })\n\n tokenRequestHeaders = { \"Content-type\" : \"application/x-www-form-urlencoded\", \"Accept\" : \"application/json\" }\n\n resultResponse = httpService.executePost(httpclient, self.token_uri, None, tokenRequestHeaders, tokenRequestData)\n httpResponse = resultResponse.getHttpResponse()\n httpResponseStatusCode = httpResponse.getStatusLine().getStatusCode()\n print \"OIDC: token response status code: %s\" % httpResponseStatusCode\n if str(httpResponseStatusCode) != \"200\":\n print \"OIDC: Failed to get token, status code %s\" % httpResponseStatusCode\n return None\n\n responseBytes = httpService.getResponseContent(httpResponse)\n responseString = httpService.convertEntityToString(responseBytes)\n tokenResponse = json.loads(responseString)\n\n return tokenResponse\n\n def addUser(self, user):\n try:\n print \"GitHub: Adding user\"\n userId = user[\"login\"]\n userService = CdiUtil.bean(UserService)\n foundUser = userService.getUserByAttribute(\"jansExtUid\", \"github:\"+userId)\n\n if foundUser is None:\n print \"GitHub: User not found, adding new\"\n foundUser = User()\n foundUser.setAttribute(\"jansExtUid\", \"github:\"+userId)\n foundUser.setAttribute(\"jansEmail\", user[\"email\"])\n foundUser.setAttribute(\"mail\", user[\"email\"])\n foundUser.setAttribute(\"displayName\", \"github:\"+userId)\n foundUser.setAttribute(\"givenName\", \"github:\"+userId)\n foundUser.setAttribute(self.getLocalPrimaryKey(), userId)\n foundUser = userService.addUser(foundUser, True)\n\n return foundUser\n except Exception as e:\n print e\n print \"GitHub: Add user Exception: \", sys.exc_info()[1]\n return None\n\n def getUserInfo(self, accessToken):\n try:\n print \"GitHub: Get Userinfo\"\n httpService = CdiUtil.bean(HttpService)\n httpclient = httpService.getHttpsClient()\n tokenRequestHeaders = { \"Authorization\" : \"Bearer %s\" % accessToken, \"Accept\" : \"application/json\" }\n\n resultResponse = httpService.executeGet(httpclient, self.userinfo_uri, tokenRequestHeaders)\n httpResponse = resultResponse.getHttpResponse()\n httpResponseStatusCode = httpResponse.getStatusLine().getStatusCode()\n print \"GitHub: userinfo response status code: %s\" % httpResponseStatusCode\n if str(httpResponseStatusCode) != \"200\":\n print \"GitHub: Failed to get userinfo, status code %s\" % httpResponseStatusCode\n return None\n\n responseBytes = httpService.getResponseContent(httpResponse)\n responseString = httpService.convertEntityToString(responseBytes)\n userinfoResponse = json.loads(responseString)\n\n print userinfoResponse\n\n return userinfoResponse\n except Exception as e:\n print e\n return None\n", "enabled": false, "revision": 0, "moduleProperties": [ { "value2": "ldap", "value1": "location_type" }, { "value2": "interactive", "value1": "usage_type" } ], "scriptType": "person_authentication", "name": "github", "modified": false, "configurationProperties": [ { "hide": false, "value2": "true", "value1": "hide" }, { "hide": false, "value2": "/etc/jans/conf/github.json", "value1": "github_creds_file" }, { "hide": false, "value2": "GitHub Login", "value1": "description" } ], "baseDn": "inum=E706-F8A8,ou=scripts,o=jans" } ], "start": 0, "totalEntriesCount": 13 } 24-11 09:33:45.629 INFO com.intuit.karate.Logger Logger.java:104- [print] 09A0-93D6 24-11 09:33:45.636 INFO com.intuit.karate.Logger Logger.java:104- [print] 24-11 09:33:45.848 INFO com.intuit.karate.Logger Logger.java:104- [print] { "internal": false, "level": 50, "programmingLanguage": "python", "description": "Twilio SMS authentication module", "locationType": "ldap", "dn": "inum=09A0-93D6,ou=scripts,o=jans", "inum": "09A0-93D6", "script": "# Janssen Project software is available under the Apache 2.0 License (2004). See http://www.apache.org/licenses/ for full text.\n# Copyright (c) 2020, Janssen Project\n#\n# Author: Gasmyr Mougang\n\nfrom io.jans.service.cdi.util import CdiUtil\nfrom io.jans.as.server.security import Identity\nfrom io.jans.model.custom.script.type.auth import PersonAuthenticationType\nfrom io.jans.as.server.service import AuthenticationService\nfrom io.jans.as.server.service import UserService\nfrom io.jans.as.server.service import SessionIdService\nfrom io.jans.as.server.util import ServerUtil\nfrom io.jans.util import StringHelper\nfrom io.jans.util import ArrayHelper\nfrom java.util import Arrays\nfrom jakarta.faces.application import FacesMessage\nfrom io.jans.jsf2.message import FacesMessages\n\nimport com.twilio.Twilio as Twilio\nimport com.twilio.rest.api.v2010.account.Message as Message\nimport com.twilio.type.PhoneNumber as PhoneNumber\nimport org.codehaus.jettison.json.JSONArray as JSONArray\n\n\nimport java\nimport random\nimport jarray\n\nclass PersonAuthentication(PersonAuthenticationType):\n def __init__(self, currentTimeMillis):\n self.currentTimeMillis = currentTimeMillis\n self.mobile_number = None\n self.identity = CdiUtil.bean(Identity)\n\n def init(self, customScript, configurationAttributes):\n print \"==============================================\"\n print \"===TWILIO SMS INITIALIZATION==================\"\n print \"==============================================\"\n self.ACCOUNT_SID = None\n self.AUTH_TOKEN = None\n self.FROM_NUMBER = None\n\n # Get Custom Properties\n try:\n self.ACCOUNT_SID = configurationAttributes.get(\"twilio_sid\").getValue2()\n except:\n print 'TwilioSMS, Missing required configuration attribute \"twilio_sid\"'\n\n try:\n self.AUTH_TOKEN = configurationAttributes.get(\"twilio_token\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"twilio_token\"'\n try:\n self.FROM_NUMBER = configurationAttributes.get(\"from_number\").getValue2()\n except:\n print'TwilioSMS, Missing required configuration attribute \"from_number\"'\n\n if None in (self.ACCOUNT_SID, self.AUTH_TOKEN, self.FROM_NUMBER):\n print \"twilio_sid, twilio_token, from_number is empty ... returning False\"\n return False\n\n print \"===TWILIO SMS INITIALIZATION DONE PROPERLY=====\" \n return True\n\n def destroy(self, configurationAttributes):\n print \"Twilio SMS. Destroy\"\n print \"Twilio SMS. Destroyed successfully\"\n return True\n\n def getApiVersion(self):\n return 11\n \n def getAuthenticationMethodClaims(self, requestParameters):\n return None\n \n def isValidAuthenticationMethod(self, usageType, configurationAttributes):\n return True\n\n def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):\n return None\n\n def authenticate(self, configurationAttributes, requestParameters, step):\n print \"==============================================\"\n print \"====TWILIO SMS AUTHENCATION===================\"\n print \"==============================================\"\n userService = CdiUtil.bean(UserService)\n authenticationService = CdiUtil.bean(AuthenticationService)\n sessionIdService = CdiUtil.bean(SessionIdService)\n facesMessages = CdiUtil.bean(FacesMessages)\n facesMessages.setKeepMessages()\n\n session_attributes = self.identity.getSessionId().getSessionAttributes()\n form_passcode = ServerUtil.getFirstValue(requestParameters, \"passcode\")\n form_name = ServerUtil.getFirstValue(requestParameters, \"TwilioSmsloginForm\")\n\n print \"TwilioSMS. form_response_passcode: %s\" % str(form_passcode)\n\n if step == 1:\n print \"==============================================\"\n print \"=TWILIO SMS STEP 1 | Password Authentication==\"\n print \"==============================================\"\n credentials = self.identity.getCredentials()\n user_name = credentials.getUsername()\n user_password = credentials.getPassword()\n logged_in = False\n if StringHelper.isNotEmptyString(user_name) and StringHelper.isNotEmptyString(user_password):\n logged_in = authenticationService.authenticate(user_name, user_password)\n\n if not logged_in:\n return False\n\n # Get the Person's number and generate a code\n foundUser = None\n try:\n foundUser = authenticationService.getAuthenticatedUser()\n except:\n print 'TwilioSMS, Error retrieving user %s from LDAP' % (user_name)\n return False\n\n try:\n isVerified = foundUser.getAttribute(\"phoneNumberVerified\")\n if isVerified:\n self.mobile_number = foundUser.getAttribute(\"employeeNumber\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"mobile\")\n if self.mobile_number == None:\n self.mobile_number = foundUser.getAttribute(\"telephoneNumber\")\n if self.mobile_number == None:\n print \"TwilioSMS, Error finding mobile number for user '%s'\" % user_name \n \n except:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to determine mobile phone number\")\n print 'TwilioSMS, Error finding mobile number for \"%s\". Exception: %s` % (user_name, sys.exc_info()[1])`'\n return False\n\n # Generate Random six digit code and store it in array\n code = random.randint(100000, 999999)\n\n # Get code and save it in LDAP temporarily with special session entry\n self.identity.setWorkingParameter(\"code\", code)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n sessionId.getSessionAttributes().put(\"code\", code)\n\n try:\n Twilio.init(self.ACCOUNT_SID, self.AUTH_TOKEN);\n message = Message.creator(PhoneNumber(self.mobile_number), PhoneNumber(self.FROM_NUMBER), str(code)).create();\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print 'TwilioSMs, Message Sid: %s' % (message.getSid())\n print 'TwilioSMs, User phone: %s' % (self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n sessionId.getSessionAttributes().put(\"mobile_number\", self.mobile_number)\n sessionId.getSessionAttributes().put(\"mobile\", self.mobile_number)\n sessionIdService.updateSessionId(sessionId)\n self.identity.setWorkingParameter(\"mobile_number\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile_number\",self.mobile_number)\n self.identity.setWorkingParameter(\"mobile\", self.mobile_number)\n self.identity.getSessionId().getSessionAttributes().put(\"mobile\",self.mobile_number)\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"Number: %s\" % (self.identity.getWorkingParameter(\"mobile_number\"))\n print \"Mobile: %s\" % (self.identity.getWorkingParameter(\"mobile\"))\n print \"++++++++++++++++++++++++++++++++++++++++++++++\"\n print \"========================================\"\n print \"===TWILIO SMS FIRST STEP DONE PROPERLY==\"\n print \"========================================\"\n return True\n except Exception, ex:\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Failed to send message to mobile phone\")\n print \"TwilioSMS. Error sending message to Twilio\"\n print \"TwilioSMS. Unexpected error:\", ex\n\n return False\n elif step == 2:\n # Retrieve the session attribute\n print \"==============================================\"\n print \"=TWILIO SMS STEP 2 | Password Authentication==\"\n print \"==============================================\"\n code = session_attributes.get(\"code\")\n print '=======> Session code is \"%s\"' % str(code)\n sessionIdService = CdiUtil.bean(SessionIdService)\n sessionId = sessionIdService.getSessionId() # fetch from persistence\n code = sessionId.getSessionAttributes().get(\"code\")\n print '=======> Database code is \"%s\"' % str(code)\n self.identity.setSessionId(sessionId)\n print \"==============================================\"\n print \"TwilioSMS. Code: %s\" % str(code)\n print \"==============================================\"\n if code is None:\n print \"TwilioSMS. Failed to find previously sent code\"\n return False\n\n if form_passcode is None:\n print \"TwilioSMS. Passcode is empty\"\n return False\n\n if len(form_passcode) != 6:\n print \"TwilioSMS. Passcode from response is not 6 digits: %s\" % form_passcode\n return False\n\n if form_passcode == code:\n print \"TiwlioSMS, SUCCESS! User entered the same code!\"\n print \"========================================\"\n print \"===TWILIO SMS SECOND STEP DONE PROPERLY\"\n print \"========================================\"\n return True\n\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n print \"TwilioSMS. FAIL! User entered the wrong code! %s != %s\" % (form_passcode, code)\n print \"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\" \n facesMessages.add(FacesMessage.SEVERITY_ERROR, \"Incorrect Twilio code, please try again.\")\n print \"================================================\"\n print \"===TWILIO SMS SECOND STEP FAILED: INCORRECT CODE\"\n print \"================================================\"\n return False\n\n print \"TwilioSMS. ERROR: step param not found or != (1|2)\"\n\n return False\n\n def prepareForStep(self, configurationAttributes, requestParameters, step):\n if step == 1:\n print \"TwilioSMS. Prepare for Step 1\"\n return True\n elif step == 2:\n print \"TwilioSMS. Prepare for Step 2\"\n return True\n return False\n\n def getExtraParametersForStep(self, configurationAttributes, step):\n if step == 2:\n return Arrays.asList(\"code\")\n\n return None\n\n def getCountAuthenticationSteps(self, configurationAttributes):\n return 2\n\n def getPageForStep(self, configurationAttributes, step):\n if step == 2:\n return \"/auth/otp_sms/otp_sms.xhtml\"\n\n return \"\"\n \n def getNextStep(self, configurationAttributes, requestParameters, step):\n return -1\n\n def getLogoutExternalUrl(self, configurationAttributes, requestParameters):\n print \"Get external logout URL call\"\n return None\n \n def logout(self, configurationAttributes, requestParameters):\n return True\n", "enabled": false, "revision": 1, "moduleProperties": [ { "value2": "interactive", "value1": "usage_type" }, { "value2": "ldap", "value1": "location_type" } ], "scriptType": "person_authentication", "name": "twilio_sms", "modified": false, "configurationProperties": [ { "hide": false, "value1": "twilio_sid", "description": "Twilio account SID" }, { "hide": false, "value1": "twilio_token", "description": "Twilio API token" }, { "hide": false, "value1": "from_number", "description": "Twilio phone number with SMS capabilities" } ], "baseDn": "inum=09A0-93D6,ou=scripts,o=jans" } 24-11 09:33:45.902 INFO com.intuit.karate.Runner Runner.java:264- <> feature 8 of 47: src/test/resources/feature/config/scripts/custom/persons/person-scripts.feature --------------------------------------------------------- feature: src/test/resources/feature/config/scripts/custom/persons/person-scripts.feature report: target/surefire-reports/src.test.resources.feature.config.scripts.custom.persons.person-scripts.json scenarios: 8 | passed: 8 | failed: 0 | time: 2.9005 --------------------------------------------------------- 24-11 09:33:45.916 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:45.916 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:45.916 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:45.917 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:45.917 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:45.918 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:45.918 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:45.918 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:45.918 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:45.918 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:45.920 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:45.921 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:45.921 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:45.921 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:45.921 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:45.921 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:45.922 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:45.922 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:45.922 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:45.922 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:45.962 INFO com.intuit.karate.Logger Logger.java:104- [print] ONLY TOKEN BASED AUTHORIZATION IS SUPPORTED! 24-11 09:33:45.973 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:45.973 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:45.973 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:45.973 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:45.974 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:45.975 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:45.975 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:45.975 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:45.975 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:45.975 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:45.977 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:45.977 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:45.978 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:45.978 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:45.978 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:45.978 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:45.978 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:45.978 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:45.979 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:45.979 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:46.228 INFO com.intuit.karate.Logger Logger.java:104- [print] { "tokenRevocationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/revoke", "dynamicRegistrationPasswordGrantTypeEnabled": true, "requirePar": false, "trustedClientEnabled": true, "includeSidInResponse": false, "introspectionResponseScopesBackwardCompatibility": false, "deviceAuthzEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/device_authorization", "umaGrantAccessIfNoPolicies": true, "statTimerIntervalInSeconds": 0, "deviceAuthzTokenPollInterval": 5, "returnDeviceSecretFromAuthzEndpoint": false, "responseModesSupported": [ "form_post.jwt", "query", "query.jwt", "jwt", "fragment", "fragment.jwt", "form_post" ], "umaConfigurationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/uma2-configuration", "idTokenFilterClaimsBasedOnAccessToken": false, "keyStoreFile": "/etc/certs/jans-auth-keys.p12", "requireRequestUriRegistration": false, "defaultSignatureAlgorithm": "RS256", "idTokenSigningAlgValuesSupported": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "sessionIdRequestParameterEnabled": true, "idTokenLifetime": 3600, "sessionIdPersistInCache": false, "backchannelTokenDeliveryModesSupported": [ "poll", "ping", "push" ], "dcrAuthorizationWithClientCredentials": false, "useNestedJwtDuringEncryption": true, "shareSubjectIdBetweenClientsWithSameSectorId": true, "clientWhiteList": [ "*" ], "errorReasonEnabled": false, "displayValuesSupported": [ "page", "popup" ], "subjectIdentifiersPerClientSupported": [ "mail", "uid" ], "tokenEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/token", "configurationUpdateInterval": 3600, "cibaEndUserNotificationConfig": { }, "errorHandlingMethod": "internal", "allResponseTypesSupported": [ "id_token", "token", "code" ], "oxOpenIdConnectVersion": "openidconnect-1.0", "cibaGrantLifeExtraTimeSec": 180, "defaultSubjectType": "pairwise", "oxElevenSignEndpoint": "https://jenkins-build.jans.io/oxeleven/rest/oxeleven/sign", "backchannelAuthenticationResponseExpiresIn": 3600, "useLocalCache": true, "claimTypesSupported": [ "normal" ], "pairwiseCalculationSalt": "6gzEK3vkAQxMNbGwZs8rwyo9W2bPdj", "requestUriParameterSupported": true, "httpLoggingEnabled": false, "forceSignedRequestObject": false, "clientInfoEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/clientinfo", "backchannelAuthenticationRequestSigningAlgValuesSupported": [ "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "dcrSignatureValidationEnabled": false, "clientAuthenticationFilters": [ { "filter": "myCustomAttr1={0}", "baseDn": "ou=clients,o=jans" } ], "returnClientSecretOnRead": true, "idGenerationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/id", "updateUserLastLogonTime": false, "redirectUrisRegexEnabled": true, "refreshTokenExtendLifetimeOnRotation": false, "deviceAuthzResponseTypeToProcessAuthz": "code", "keepAuthenticatorAttributesOnAcrChange": false, "umaRptAsJwt": false, "authorizationEncryptionEncValuesSupported": [ "A128CBC+HS256", "A256CBC+HS512", "A128GCM", "A256GCM" ], "introspectionEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/introspection", "umaValidateClaimToken": false, "fapiCompatibility": false, "logClientIdOnClientAuthentication": true, "softwareStatementValidationClaimName": "jwks_uri", "grantTypesSupported": [ "authorization_code", "implicit", "refresh_token", "urn:ietf:params:oauth:grant-type:uma-ticket", "urn:ietf:params:oauth:grant-type:device_code", "urn:ietf:params:oauth:grant-type:token-exchange", "urn:openid:params:grant-type:ciba", "client_credentials", "password" ], "backchannelRequestsProcessorJobChunkSize": 100, "backchannelClientId": "123-123-123", "discoveryCacheLifetimeInMinutes": 60, "legacyIdTokenClaims": true, "consentGatheringScriptBackwardCompatibility": false, "serviceDocumentation": "http://jans.org/docs", "umaRptLifetime": 3600, "forceIdTokenHintPrecense": false, "metricReporterInterval": 300, "uiLocalesSupported": [ "en", "bg", "de", "es", "fr", "it", "ru", "tr" ], "idTokenEncryptionAlgValuesSupported": [ "RSA1_5", "RSA-OAEP", "A128KW", "A256KW" ], "parEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/par", "authorizationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/authorize", "sessionIdPersistOnPromptNone": true, "opPolicyUri": "http://www.jans.io/doku.php?id=jans:policy", "authorizationRequestCustomAllowedParameters": [ { "returnInResponse": true, "paramName": "customParam4" }, { "returnInResponse": true, "paramName": "customParam5" }, { "returnInResponse": false, "paramName": "customParam3" }, { "returnInResponse": false, "paramName": "customParam2" }, { "returnInResponse": false, "paramName": "agama_flow" }, { "returnInResponse": false, "paramName": "customParam1" } ], "responseTypesSupported": [ [ "token", "code" ], [ "id_token", "token" ], [ "id_token" ], [ "token" ], [ "id_token", "token", "code" ], [ "code" ], [ "id_token", "code" ] ], "introspectionAccessTokenMustHaveUmaProtectionScope": false, "authenticationFiltersEnabled": true, "cibaMaxExpirationTimeAllowedSec": 1800, "openIdDiscoveryEndpoint": "https://jenkins-build.jans.io/.well-known/webfinger", "openIdConfigurationEndpoint": "https://jenkins-build.jans.io/.well-known/openid-configuration", "rejectEndSessionIfIdTokenExpired": false, "persistIdTokenInLdap": false, "openidSubAttribute": "inum", "tokenEndpointAuthSigningAlgValuesSupported": [ "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "enabledFeatureFlags": [ "JANS_CONFIGURATION", "STATUS_SESSION", "END_SESSION", "CIBA", "HEALTH_CHECK", "REVOKE_SESSION", "USERINFO", "REGISTRATION", "DEVICE_AUTHZ", "PAR", "REVOKE_TOKEN", "STAT", "CLIENTINFO", "SSA", "ID_GENERATION", "INTROSPECTION", "U2F", "UMA" ], "dynamicGrantTypeDefault": [ "authorization_code", "implicit", "refresh_token", "urn:ietf:params:oauth:grant-type:uma-ticket", "urn:ietf:params:oauth:grant-type:device_code", "urn:ietf:params:oauth:grant-type:token-exchange", "urn:openid:params:grant-type:ciba", "client_credentials", "password" ], "publicSubjectIdentifierPerClientEnabled": true, "oxId": "https://jenkins-build.jans.io/oxid/service/jans/inum", "invalidateSessionCookiesAfterAuthorizationFlow": false, "pairwiseIdType": "algorithmic", "webKeysStorage": "keystore", "clientAuthenticationFiltersEnabled": true, "keySignWithSameKeyButDiffAlg": false, "dpopJtiCacheTime": 3600, "dnName": "CN=Jans Auth CA Certificates", "keyStoreSecret": "2SnfwkRVq14Q", "sessionIdLifetime": 86400, "cleanServiceInterval": 7200, "skipAuthorizationForOpenIdScopeAndPairwiseId": false, "dpopSigningAlgValuesSupported": [ "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "ES512", "PS256", "PS384", "PS512" ], "clientRegDefaultToCodeFlowWithRefresh": true, "requireRequestObjectEncryption": false, "disableJdkLogger": true, "requestUriHashVerificationEnabled": false, "dynamicRegistrationPersistClientAuthorizations": true, "tokenEndpointAuthMethodsSupported": [ "client_secret_basic", "client_secret_post", "client_secret_jwt", "private_key_jwt", "tls_client_auth", "self_signed_tls_client_auth", "none" ], "authorizationEncryptionAlgValuesSupported": [ "RSA1_5", "RSA-OAEP", "A128KW", "A256KW" ], "loggingLayout": "text", "loggingLevel": "TRACE", "userInfoEncryptionAlgValuesSupported": [ "RSA1_5", "RSA-OAEP", "A128KW", "A256KW" ], "claimsLocalesSupported": [ "en" ], "logClientNameOnClientAuthentication": false, "expirationNotificatorMapSizeLimit": 100000, "rotateDeviceSecret": false, "issuer": "https://jenkins-build.jans.io", "customHeadersWithAuthorizationResponse": true, "clientBlackList": [ "*.attacker.com/*" ], "authorizationSigningAlgValuesSupported": [ "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "ES512", "PS256", "PS384", "PS512" ], "authorizationCodeLifetime": 60, "pairwiseCalculationKey": "PMvHaIV4EpsaI1DgnhvyS1pj5sg", "idTokenEncryptionEncValuesSupported": [ "A128CBC+HS256", "A256CBC+HS512", "A128GCM", "A256GCM" ], "backchannelRequestsProcessorJobIntervalSec": 5, "endSessionWithAccessToken": false, "claimsParameterSupported": true, "expirationNotificatorEnabled": false, "sessionIdUnauthenticatedUnusedLifetime": 120, "opTosUri": "http://www.jans.io/doku.php?id=jans:tos", "backchannelUserCodeParameterSupported": true, "umaPctLifetime": 1728000, "cleanServiceBatchChunkSize": 10000, "allowPostLogoutRedirectWithoutValidation": false, "requirePkce": false, "oxElevenGenerateKeyEndpoint": "https://jenkins-build.jans.io/oxeleven/rest/oxeleven/generateKey", "umaRestrictResourceToAssociatedClient": false, "umaAddScopesAutomatically": true, "sectorIdentifierCacheLifetimeInMinutes": 1440, "agamaConfiguration": { "maxItemsLoggedInCollections": 9, "crashErrorPage": "crash.ftlh", "serializerType": "KRYO", "rootDir": "/opt/jans/jetty/jans-config-api/agama", "interruptionErrorPage": "timeout.ftlh", "bridgeScriptPage": "agama.xhtml", "disableTCHV": true, "finishedFlowPage": "finished.ftlh", "enabled": true, "templatesPath": "/ftl", "scriptsPath": "/scripts", "defaultResponseHeaders": { "Cache-Control": "max-age=0, no-store" }, "pageMismatchErrorPage": "mismatch.ftlh" }, "sessionAsJwt": false, "dynamicRegistrationScopesParamEnabled": true, "changeSessionIdOnAuthentication": true, "discoveryDenyKeys": [ "id_generation_endpoint", "auth_level_mapping", "scope_to_claims_mapping", "op_policy_uri" ], "backchannelLoginHintClaims": [ "inum", "uid", "mail" ], "userInfoEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/userinfo", "registrationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/register", "idTokenTokenBindingCnfValuesSupported": [ "tbh" ], "accessTokenLifetime": 300, "frontChannelLogoutSessionSupported": true, "dcrAuthorizationWithMTLS": false, "statAuthorizationScope": "jans_stat", "updateClientAccessTime": false, "requestObjectEncryptionAlgValuesSupported": [ "RSA1_5", "RSA-OAEP", "A128KW", "A256KW" ], "userInfoEncryptionEncValuesSupported": [ "A128CBC+HS256", "A256CBC+HS512", "A128GCM", "A256GCM" ], "backchannelAuthenticationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/bc-authorize", "endSessionEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/end_session", "persistRefreshTokenInLdap": true, "dynamicRegistrationCustomObjectClass": "jansClntCustomAttributes", "umaResourceLifetime": 1728000, "requestObjectSigningAlgValuesSupported": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "useHighestLevelScriptIfAcrScriptNotFound": true, "checkSessionIFrame": "https://jenkins-build.jans.io/jans-auth/opiframe.htm", "ssaConfiguration": { "ssaExpirationInDays": 30, "ssaSigningAlg": "RS256", "ssaEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/ssa" }, "removeRefreshTokensForClientOnLogout": true, "introspectionSkipAuthorization": false, "oxElevenDeleteKeyEndpoint": "https://jenkins-build.jans.io/oxeleven/rest/oxeleven/deleteKey", "authenticationFilters": [ { "filter": "(&(mail=*{0}*)(inum={1}))", "bind": false, "baseDn": "ou=people,o=jans" }, { "filter": "uid={0}", "bind": true, "bindPasswordAttribute": "pwd", "baseDn": "ou=people,o=jans" } ], "forceOfflineAccessScopeToEnableRefreshToken": false, "subjectTypesSupported": [ "public", "pairwise" ], "grantTypesAndResponseTypesAutofixEnabled": true, "allowSpontaneousScopes": true, "disableU2fEndpoint": false, "refreshTokenLifetime": 14400, "openidScopeBackwardCompatibility": false, "featureFlags": [ "unknown", "health_check", "userinfo", "clientinfo", "id_generation", "registration", "introspection", "revoke_token", "revoke_session", "end_session", "status_session", "jans_configuration", "ciba", "uma", "u2f", "device_authz", "stat", "par", "ssa" ], "spontaneousScopeLifetime": 0, "keySelectionStrategy": "OLDER", "backchannelRedirectUri": "https://jenkins-build.jans.io/jans-auth/ciba/home.htm", "serverSessionIdLifetime": 86400, "allowEndSessionWithUnmatchedSid": false, "backchannelBindingMessagePattern": "^[a-zA-Z0-9]{4,8}$", "allowIdTokenWithoutImplicitGrantType": false, "requestParameterSupported": true, "requestObjectEncryptionEncValuesSupported": [ "A128CBC+HS256", "A256CBC+HS512", "A128GCM", "A256GCM" ], "oxElevenVerifySignatureEndpoint": "https://jenkins-build.jans.io/oxeleven/rest/oxeleven/verifySignature", "authenticationProtectionConfiguration": { "attemptExpiration": 15, "bruteForceProtectionEnabled": false, "delayTime": 2, "maximumAllowedAttemptsWithoutDelay": 4 }, "skipRefreshTokenDuringRefreshing": false, "allowAllValueForRevokeEndpoint": false, "jwksUri": "https://jenkins-build.jans.io/jans-auth/restv1/jwks", "baseEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1", "dynamicRegistrationCustomAttributes": [ "jansTrustedClnt", "myCustomAttr1", "myCustomAttr2", "jansInclClaimsInIdTkn" ], "dynamicRegistrationExpirationTime": 86400, "softwareStatementValidationType": "jwks_uri", "backchannelDeviceRegistrationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/bc-deviceRegistration", "umaTicketLifetime": 3600, "metricReporterKeepDataDays": 15, "fapi": false, "sessionIdUnusedLifetime": 86400, "enableClientGrantTypeUpdate": true, "corsConfigurationFilters": [ { "corsSupportCredentials": true, "corsPreflightMaxAge": 1800, "corsEnabled": true, "filterName": "CorsFilter", "corsAllowedMethods": "GET,POST,HEAD,OPTIONS", "corsAllowedHeaders": "Origin,Authorization,Accept,X-Requested-With,Content-Type,Access-Control-Request-Method,Access-Control-Request-Headers", "corsLoggingEnabled": false, "corsAllowedOrigins": "*", "corsRequestDecorate": true } ], "jwksAlgorithmsSupported": [ "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512", "RSA1_5", "RSA-OAEP" ], "rejectJwtWithNoneAlg": false, "expirationNotificatorIntervalInSeconds": 600, "dpopTimeframe": 5, "deviceAuthzRequestExpiresIn": 1800, "requestUriBlockList": [ "localhost", "127.0.0.1" ], "introspectionScriptBackwardCompatibility": false, "keyRegenerationInterval": 48, "accessTokenSigningAlgValuesSupported": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "backchannelAuthenticationResponseInterval": 2, "userInfoSigningAlgValuesSupported": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "checkUserPresenceOnRefreshToken": false, "keyRegenerationEnabled": true } 24-11 09:33:46.237 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:46.237 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:46.237 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:46.238 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:46.238 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:46.238 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:46.239 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:46.239 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:46.239 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:46.239 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:46.249 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:46.249 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:46.250 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:46.250 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:46.253 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:46.254 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:46.254 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:46.254 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:46.254 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:46.254 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:46.479 INFO com.intuit.karate.Logger Logger.java:104- [print] { "tokenRevocationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/revoke", "dynamicRegistrationPasswordGrantTypeEnabled": true, "requirePar": false, "trustedClientEnabled": true, "includeSidInResponse": false, "introspectionResponseScopesBackwardCompatibility": false, "deviceAuthzEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/device_authorization", "umaGrantAccessIfNoPolicies": true, "statTimerIntervalInSeconds": 0, "deviceAuthzTokenPollInterval": 5, "returnDeviceSecretFromAuthzEndpoint": false, "responseModesSupported": [ "form_post.jwt", "query", "query.jwt", "jwt", "fragment", "fragment.jwt", "form_post" ], "umaConfigurationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/uma2-configuration", "idTokenFilterClaimsBasedOnAccessToken": false, "keyStoreFile": "/etc/certs/jans-auth-keys.p12", "requireRequestUriRegistration": false, "defaultSignatureAlgorithm": "RS256", "idTokenSigningAlgValuesSupported": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "sessionIdRequestParameterEnabled": true, "idTokenLifetime": 3600, "sessionIdPersistInCache": false, "backchannelTokenDeliveryModesSupported": [ "poll", "ping", "push" ], "dcrAuthorizationWithClientCredentials": false, "useNestedJwtDuringEncryption": true, "shareSubjectIdBetweenClientsWithSameSectorId": true, "clientWhiteList": [ "*" ], "errorReasonEnabled": false, "displayValuesSupported": [ "page", "popup" ], "subjectIdentifiersPerClientSupported": [ "mail", "uid" ], "tokenEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/token", "configurationUpdateInterval": 3600, "cibaEndUserNotificationConfig": { }, "errorHandlingMethod": "internal", "allResponseTypesSupported": [ "id_token", "token", "code" ], "oxOpenIdConnectVersion": "openidconnect-1.0", "cibaGrantLifeExtraTimeSec": 180, "defaultSubjectType": "pairwise", "oxElevenSignEndpoint": "https://jenkins-build.jans.io/oxeleven/rest/oxeleven/sign", "backchannelAuthenticationResponseExpiresIn": 3600, "useLocalCache": true, "claimTypesSupported": [ "normal" ], "pairwiseCalculationSalt": "6gzEK3vkAQxMNbGwZs8rwyo9W2bPdj", "requestUriParameterSupported": true, "httpLoggingEnabled": false, "forceSignedRequestObject": false, "clientInfoEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/clientinfo", "backchannelAuthenticationRequestSigningAlgValuesSupported": [ "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "dcrSignatureValidationEnabled": false, "clientAuthenticationFilters": [ { "filter": "myCustomAttr1={0}", "baseDn": "ou=clients,o=jans" } ], "returnClientSecretOnRead": true, "idGenerationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/id", "updateUserLastLogonTime": false, "redirectUrisRegexEnabled": true, "refreshTokenExtendLifetimeOnRotation": false, "deviceAuthzResponseTypeToProcessAuthz": "code", "keepAuthenticatorAttributesOnAcrChange": false, "umaRptAsJwt": false, "authorizationEncryptionEncValuesSupported": [ "A128CBC+HS256", "A256CBC+HS512", "A128GCM", "A256GCM" ], "introspectionEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/introspection", "umaValidateClaimToken": false, "fapiCompatibility": false, "logClientIdOnClientAuthentication": true, "softwareStatementValidationClaimName": "jwks_uri", "grantTypesSupported": [ "authorization_code", "implicit", "refresh_token", "urn:ietf:params:oauth:grant-type:uma-ticket", "urn:ietf:params:oauth:grant-type:device_code", "urn:ietf:params:oauth:grant-type:token-exchange", "urn:openid:params:grant-type:ciba", "client_credentials", "password" ], "backchannelRequestsProcessorJobChunkSize": 100, "backchannelClientId": "123-123-123", "discoveryCacheLifetimeInMinutes": 60, "legacyIdTokenClaims": true, "consentGatheringScriptBackwardCompatibility": false, "serviceDocumentation": "http://jans.org/docs", "umaRptLifetime": 3600, "forceIdTokenHintPrecense": false, "metricReporterInterval": 300, "uiLocalesSupported": [ "en", "bg", "de", "es", "fr", "it", "ru", "tr" ], "idTokenEncryptionAlgValuesSupported": [ "RSA1_5", "RSA-OAEP", "A128KW", "A256KW" ], "parEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/par", "authorizationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/authorize", "sessionIdPersistOnPromptNone": true, "opPolicyUri": "http://www.jans.io/doku.php?id=jans:policy", "authorizationRequestCustomAllowedParameters": [ { "returnInResponse": false, "paramName": "customParam3" }, { "returnInResponse": false, "paramName": "customParam2" }, { "returnInResponse": false, "paramName": "agama_flow" }, { "returnInResponse": false, "paramName": "customParam1" }, { "returnInResponse": true, "paramName": "customParam5" }, { "returnInResponse": true, "paramName": "customParam4" } ], "responseTypesSupported": [ [ "token", "code" ], [ "id_token", "token" ], [ "id_token" ], [ "token" ], [ "id_token", "token", "code" ], [ "code" ], [ "id_token", "code" ] ], "introspectionAccessTokenMustHaveUmaProtectionScope": false, "authenticationFiltersEnabled": true, "cibaMaxExpirationTimeAllowedSec": 1800, "openIdDiscoveryEndpoint": "https://jenkins-build.jans.io/.well-known/webfinger", "openIdConfigurationEndpoint": "https://jenkins-build.jans.io/.well-known/openid-configuration", "rejectEndSessionIfIdTokenExpired": false, "persistIdTokenInLdap": false, "openidSubAttribute": "inum", "tokenEndpointAuthSigningAlgValuesSupported": [ "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "enabledFeatureFlags": [ "JANS_CONFIGURATION", "STATUS_SESSION", "END_SESSION", "CIBA", "HEALTH_CHECK", "REVOKE_SESSION", "USERINFO", "REGISTRATION", "DEVICE_AUTHZ", "PAR", "REVOKE_TOKEN", "STAT", "CLIENTINFO", "SSA", "ID_GENERATION", "INTROSPECTION", "U2F", "UMA" ], "dynamicGrantTypeDefault": [ "authorization_code", "implicit", "refresh_token", "urn:ietf:params:oauth:grant-type:uma-ticket", "urn:ietf:params:oauth:grant-type:device_code", "urn:ietf:params:oauth:grant-type:token-exchange", "urn:openid:params:grant-type:ciba", "client_credentials", "password" ], "publicSubjectIdentifierPerClientEnabled": true, "oxId": "https://jenkins-build.jans.io/oxid/service/jans/inum", "invalidateSessionCookiesAfterAuthorizationFlow": false, "pairwiseIdType": "algorithmic", "webKeysStorage": "keystore", "clientAuthenticationFiltersEnabled": true, "keySignWithSameKeyButDiffAlg": false, "dpopJtiCacheTime": 3600, "dnName": "CN=Jans Auth CA Certificates", "keyStoreSecret": "2SnfwkRVq14Q", "sessionIdLifetime": 86400, "cleanServiceInterval": 7200, "skipAuthorizationForOpenIdScopeAndPairwiseId": false, "dpopSigningAlgValuesSupported": [ "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "ES512", "PS256", "PS384", "PS512" ], "clientRegDefaultToCodeFlowWithRefresh": true, "requireRequestObjectEncryption": false, "disableJdkLogger": true, "requestUriHashVerificationEnabled": false, "dynamicRegistrationPersistClientAuthorizations": true, "tokenEndpointAuthMethodsSupported": [ "client_secret_basic", "client_secret_post", "client_secret_jwt", "private_key_jwt", "tls_client_auth", "self_signed_tls_client_auth", "none" ], "authorizationEncryptionAlgValuesSupported": [ "RSA1_5", "RSA-OAEP", "A128KW", "A256KW" ], "loggingLayout": "text", "loggingLevel": "TRACE", "userInfoEncryptionAlgValuesSupported": [ "RSA1_5", "RSA-OAEP", "A128KW", "A256KW" ], "claimsLocalesSupported": [ "en" ], "logClientNameOnClientAuthentication": false, "expirationNotificatorMapSizeLimit": 100000, "rotateDeviceSecret": false, "issuer": "https://jenkins-build.jans.io", "customHeadersWithAuthorizationResponse": true, "clientBlackList": [ "*.attacker.com/*" ], "authorizationSigningAlgValuesSupported": [ "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "ES512", "PS256", "PS384", "PS512" ], "authorizationCodeLifetime": 60, "pairwiseCalculationKey": "PMvHaIV4EpsaI1DgnhvyS1pj5sg", "idTokenEncryptionEncValuesSupported": [ "A128CBC+HS256", "A256CBC+HS512", "A128GCM", "A256GCM" ], "backchannelRequestsProcessorJobIntervalSec": 5, "endSessionWithAccessToken": false, "claimsParameterSupported": true, "expirationNotificatorEnabled": false, "sessionIdUnauthenticatedUnusedLifetime": 120, "opTosUri": "http://www.jans.io/doku.php?id=jans:tos", "backchannelUserCodeParameterSupported": true, "umaPctLifetime": 1728000, "cleanServiceBatchChunkSize": 10000, "allowPostLogoutRedirectWithoutValidation": false, "requirePkce": false, "oxElevenGenerateKeyEndpoint": "https://jenkins-build.jans.io/oxeleven/rest/oxeleven/generateKey", "umaRestrictResourceToAssociatedClient": false, "umaAddScopesAutomatically": true, "sectorIdentifierCacheLifetimeInMinutes": 1440, "agamaConfiguration": { "maxItemsLoggedInCollections": 9, "crashErrorPage": "crash.ftlh", "serializerType": "KRYO", "rootDir": "/opt/jans/jetty/jans-config-api/agama", "interruptionErrorPage": "timeout.ftlh", "bridgeScriptPage": "agama.xhtml", "disableTCHV": true, "finishedFlowPage": "finished.ftlh", "enabled": true, "templatesPath": "/ftl", "scriptsPath": "/scripts", "defaultResponseHeaders": { "Cache-Control": "max-age=0, no-store" }, "pageMismatchErrorPage": "mismatch.ftlh" }, "sessionAsJwt": false, "dynamicRegistrationScopesParamEnabled": true, "changeSessionIdOnAuthentication": true, "discoveryDenyKeys": [ "id_generation_endpoint", "auth_level_mapping", "scope_to_claims_mapping", "op_policy_uri" ], "backchannelLoginHintClaims": [ "inum", "uid", "mail" ], "userInfoEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/userinfo", "registrationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/register", "idTokenTokenBindingCnfValuesSupported": [ "tbh" ], "accessTokenLifetime": 300, "frontChannelLogoutSessionSupported": true, "dcrAuthorizationWithMTLS": false, "statAuthorizationScope": "jans_stat", "updateClientAccessTime": false, "requestObjectEncryptionAlgValuesSupported": [ "RSA1_5", "RSA-OAEP", "A128KW", "A256KW" ], "userInfoEncryptionEncValuesSupported": [ "A128CBC+HS256", "A256CBC+HS512", "A128GCM", "A256GCM" ], "backchannelAuthenticationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/bc-authorize", "endSessionEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/end_session", "persistRefreshTokenInLdap": true, "dynamicRegistrationCustomObjectClass": "jansClntCustomAttributes", "umaResourceLifetime": 1728000, "requestObjectSigningAlgValuesSupported": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "useHighestLevelScriptIfAcrScriptNotFound": true, "checkSessionIFrame": "https://jenkins-build.jans.io/jans-auth/opiframe.htm", "ssaConfiguration": { "ssaExpirationInDays": 30, "ssaSigningAlg": "RS256", "ssaEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/ssa" }, "removeRefreshTokensForClientOnLogout": true, "introspectionSkipAuthorization": false, "oxElevenDeleteKeyEndpoint": "https://jenkins-build.jans.io/oxeleven/rest/oxeleven/deleteKey", "authenticationFilters": [ { "filter": "(&(mail=*{0}*)(inum={1}))", "bind": false, "baseDn": "ou=people,o=jans" }, { "filter": "uid={0}", "bind": true, "bindPasswordAttribute": "pwd", "baseDn": "ou=people,o=jans" } ], "forceOfflineAccessScopeToEnableRefreshToken": false, "subjectTypesSupported": [ "public", "pairwise" ], "grantTypesAndResponseTypesAutofixEnabled": true, "allowSpontaneousScopes": true, "disableU2fEndpoint": false, "refreshTokenLifetime": 14400, "openidScopeBackwardCompatibility": false, "featureFlags": [ "unknown", "health_check", "userinfo", "clientinfo", "id_generation", "registration", "introspection", "revoke_token", "revoke_session", "end_session", "status_session", "jans_configuration", "ciba", "uma", "u2f", "device_authz", "stat", "par", "ssa" ], "spontaneousScopeLifetime": 0, "keySelectionStrategy": "OLDER", "backchannelRedirectUri": "https://jenkins-build.jans.io/jans-auth/ciba/home.htm", "serverSessionIdLifetime": 86400, "allowEndSessionWithUnmatchedSid": false, "backchannelBindingMessagePattern": "^[a-zA-Z0-9]{4,8}$", "allowIdTokenWithoutImplicitGrantType": false, "requestParameterSupported": true, "requestObjectEncryptionEncValuesSupported": [ "A128CBC+HS256", "A256CBC+HS512", "A128GCM", "A256GCM" ], "oxElevenVerifySignatureEndpoint": "https://jenkins-build.jans.io/oxeleven/rest/oxeleven/verifySignature", "authenticationProtectionConfiguration": { "attemptExpiration": 15, "bruteForceProtectionEnabled": false, "delayTime": 2, "maximumAllowedAttemptsWithoutDelay": 4 }, "skipRefreshTokenDuringRefreshing": false, "allowAllValueForRevokeEndpoint": false, "jwksUri": "https://jenkins-build.jans.io/jans-auth/restv1/jwks", "baseEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1", "dynamicRegistrationCustomAttributes": [ "jansTrustedClnt", "myCustomAttr1", "myCustomAttr2", "jansInclClaimsInIdTkn" ], "dynamicRegistrationExpirationTime": 86400, "softwareStatementValidationType": "jwks_uri", "backchannelDeviceRegistrationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/bc-deviceRegistration", "umaTicketLifetime": 3600, "metricReporterKeepDataDays": 15, "fapi": false, "sessionIdUnusedLifetime": 86400, "enableClientGrantTypeUpdate": true, "corsConfigurationFilters": [ { "corsSupportCredentials": true, "corsPreflightMaxAge": 1800, "corsEnabled": true, "filterName": "CorsFilter", "corsAllowedMethods": "GET,POST,HEAD,OPTIONS", "corsAllowedHeaders": "Origin,Authorization,Accept,X-Requested-With,Content-Type,Access-Control-Request-Method,Access-Control-Request-Headers", "corsLoggingEnabled": false, "corsAllowedOrigins": "*", "corsRequestDecorate": true } ], "jwksAlgorithmsSupported": [ "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512", "RSA1_5", "RSA-OAEP" ], "rejectJwtWithNoneAlg": false, "expirationNotificatorIntervalInSeconds": 600, "dpopTimeframe": 5, "deviceAuthzRequestExpiresIn": 1800, "requestUriBlockList": [ "localhost", "127.0.0.1" ], "introspectionScriptBackwardCompatibility": false, "keyRegenerationInterval": 48, "accessTokenSigningAlgValuesSupported": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "backchannelAuthenticationResponseInterval": 2, "userInfoSigningAlgValuesSupported": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "checkUserPresenceOnRefreshToken": false, "keyRegenerationEnabled": true } 24-11 09:33:46.494 INFO com.intuit.karate.Logger Logger.java:104- [print] request_body =[ {"op":"replace", "path": "/dcrSignatureValidationEnabled", "value":false } ] 24-11 09:33:46.496 INFO com.intuit.karate.Logger Logger.java:104- [print] 24-11 09:33:46.847 INFO com.intuit.karate.Logger Logger.java:104- [print] { "tokenRevocationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/revoke", "dynamicRegistrationPasswordGrantTypeEnabled": true, "requirePar": false, "trustedClientEnabled": true, "includeSidInResponse": false, "introspectionResponseScopesBackwardCompatibility": false, "deviceAuthzEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/device_authorization", "umaGrantAccessIfNoPolicies": true, "statTimerIntervalInSeconds": 0, "deviceAuthzTokenPollInterval": 5, "returnDeviceSecretFromAuthzEndpoint": false, "responseModesSupported": [ "form_post.jwt", "query", "query.jwt", "jwt", "fragment", "fragment.jwt", "form_post" ], "umaConfigurationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/uma2-configuration", "idTokenFilterClaimsBasedOnAccessToken": false, "keyStoreFile": "/etc/certs/jans-auth-keys.p12", "requireRequestUriRegistration": false, "defaultSignatureAlgorithm": "RS256", "idTokenSigningAlgValuesSupported": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "sessionIdRequestParameterEnabled": true, "idTokenLifetime": 3600, "sessionIdPersistInCache": false, "backchannelTokenDeliveryModesSupported": [ "poll", "ping", "push" ], "dcrAuthorizationWithClientCredentials": false, "useNestedJwtDuringEncryption": true, "shareSubjectIdBetweenClientsWithSameSectorId": true, "clientWhiteList": [ "*" ], "errorReasonEnabled": false, "displayValuesSupported": [ "page", "popup" ], "subjectIdentifiersPerClientSupported": [ "mail", "uid" ], "tokenEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/token", "configurationUpdateInterval": 3600, "cibaEndUserNotificationConfig": { }, "errorHandlingMethod": "internal", "allResponseTypesSupported": [ "id_token", "token", "code" ], "oxOpenIdConnectVersion": "openidconnect-1.0", "cibaGrantLifeExtraTimeSec": 180, "defaultSubjectType": "pairwise", "oxElevenSignEndpoint": "https://jenkins-build.jans.io/oxeleven/rest/oxeleven/sign", "backchannelAuthenticationResponseExpiresIn": 3600, "useLocalCache": true, "claimTypesSupported": [ "normal" ], "pairwiseCalculationSalt": "6gzEK3vkAQxMNbGwZs8rwyo9W2bPdj", "requestUriParameterSupported": true, "httpLoggingEnabled": false, "forceSignedRequestObject": false, "clientInfoEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/clientinfo", "backchannelAuthenticationRequestSigningAlgValuesSupported": [ "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "dcrSignatureValidationEnabled": false, "clientAuthenticationFilters": [ { "filter": "myCustomAttr1={0}", "baseDn": "ou=clients,o=jans" } ], "returnClientSecretOnRead": true, "idGenerationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/id", "updateUserLastLogonTime": false, "redirectUrisRegexEnabled": true, "refreshTokenExtendLifetimeOnRotation": false, "deviceAuthzResponseTypeToProcessAuthz": "code", "keepAuthenticatorAttributesOnAcrChange": false, "umaRptAsJwt": false, "authorizationEncryptionEncValuesSupported": [ "A128CBC+HS256", "A256CBC+HS512", "A128GCM", "A256GCM" ], "introspectionEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/introspection", "umaValidateClaimToken": false, "fapiCompatibility": false, "logClientIdOnClientAuthentication": true, "softwareStatementValidationClaimName": "jwks_uri", "grantTypesSupported": [ "authorization_code", "implicit", "refresh_token", "urn:ietf:params:oauth:grant-type:uma-ticket", "urn:ietf:params:oauth:grant-type:device_code", "urn:ietf:params:oauth:grant-type:token-exchange", "urn:openid:params:grant-type:ciba", "client_credentials", "password" ], "backchannelRequestsProcessorJobChunkSize": 100, "backchannelClientId": "123-123-123", "discoveryCacheLifetimeInMinutes": 60, "legacyIdTokenClaims": true, "consentGatheringScriptBackwardCompatibility": false, "serviceDocumentation": "http://jans.org/docs", "umaRptLifetime": 3600, "forceIdTokenHintPrecense": false, "metricReporterInterval": 300, "uiLocalesSupported": [ "en", "bg", "de", "es", "fr", "it", "ru", "tr" ], "idTokenEncryptionAlgValuesSupported": [ "RSA1_5", "RSA-OAEP", "A128KW", "A256KW" ], "parEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/par", "authorizationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/authorize", "sessionIdPersistOnPromptNone": true, "opPolicyUri": "http://www.jans.io/doku.php?id=jans:policy", "authorizationRequestCustomAllowedParameters": [ { "returnInResponse": false, "paramName": "customParam2" }, { "returnInResponse": true, "paramName": "customParam4" }, { "returnInResponse": false, "paramName": "customParam1" }, { "returnInResponse": true, "paramName": "customParam5" }, { "returnInResponse": false, "paramName": "agama_flow" }, { "returnInResponse": false, "paramName": "customParam3" } ], "responseTypesSupported": [ [ "token", "code" ], [ "id_token", "token" ], [ "id_token" ], [ "token" ], [ "id_token", "token", "code" ], [ "code" ], [ "id_token", "code" ] ], "introspectionAccessTokenMustHaveUmaProtectionScope": false, "authenticationFiltersEnabled": true, "cibaMaxExpirationTimeAllowedSec": 1800, "openIdDiscoveryEndpoint": "https://jenkins-build.jans.io/.well-known/webfinger", "openIdConfigurationEndpoint": "https://jenkins-build.jans.io/.well-known/openid-configuration", "rejectEndSessionIfIdTokenExpired": false, "persistIdTokenInLdap": false, "openidSubAttribute": "inum", "tokenEndpointAuthSigningAlgValuesSupported": [ "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "enabledFeatureFlags": [ "JANS_CONFIGURATION", "STATUS_SESSION", "END_SESSION", "CIBA", "HEALTH_CHECK", "REVOKE_SESSION", "USERINFO", "REGISTRATION", "DEVICE_AUTHZ", "PAR", "REVOKE_TOKEN", "STAT", "CLIENTINFO", "SSA", "ID_GENERATION", "INTROSPECTION", "U2F", "UMA" ], "dynamicGrantTypeDefault": [ "authorization_code", "implicit", "refresh_token", "urn:ietf:params:oauth:grant-type:uma-ticket", "urn:ietf:params:oauth:grant-type:device_code", "urn:ietf:params:oauth:grant-type:token-exchange", "urn:openid:params:grant-type:ciba", "client_credentials", "password" ], "publicSubjectIdentifierPerClientEnabled": true, "oxId": "https://jenkins-build.jans.io/oxid/service/jans/inum", "invalidateSessionCookiesAfterAuthorizationFlow": false, "pairwiseIdType": "algorithmic", "webKeysStorage": "keystore", "clientAuthenticationFiltersEnabled": true, "keySignWithSameKeyButDiffAlg": false, "dpopJtiCacheTime": 3600, "dnName": "CN=Jans Auth CA Certificates", "keyStoreSecret": "2SnfwkRVq14Q", "sessionIdLifetime": 86400, "cleanServiceInterval": 7200, "skipAuthorizationForOpenIdScopeAndPairwiseId": false, "dpopSigningAlgValuesSupported": [ "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "ES512", "PS256", "PS384", "PS512" ], "clientRegDefaultToCodeFlowWithRefresh": true, "requireRequestObjectEncryption": false, "disableJdkLogger": true, "requestUriHashVerificationEnabled": false, "dynamicRegistrationPersistClientAuthorizations": true, "tokenEndpointAuthMethodsSupported": [ "client_secret_basic", "client_secret_post", "client_secret_jwt", "private_key_jwt", "tls_client_auth", "self_signed_tls_client_auth", "none" ], "authorizationEncryptionAlgValuesSupported": [ "RSA1_5", "RSA-OAEP", "A128KW", "A256KW" ], "loggingLayout": "text", "loggingLevel": "TRACE", "userInfoEncryptionAlgValuesSupported": [ "RSA1_5", "RSA-OAEP", "A128KW", "A256KW" ], "claimsLocalesSupported": [ "en" ], "logClientNameOnClientAuthentication": false, "expirationNotificatorMapSizeLimit": 100000, "rotateDeviceSecret": false, "issuer": "https://jenkins-build.jans.io", "customHeadersWithAuthorizationResponse": true, "clientBlackList": [ "*.attacker.com/*" ], "authorizationSigningAlgValuesSupported": [ "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "ES512", "PS256", "PS384", "PS512" ], "authorizationCodeLifetime": 60, "pairwiseCalculationKey": "PMvHaIV4EpsaI1DgnhvyS1pj5sg", "idTokenEncryptionEncValuesSupported": [ "A128CBC+HS256", "A256CBC+HS512", "A128GCM", "A256GCM" ], "backchannelRequestsProcessorJobIntervalSec": 5, "endSessionWithAccessToken": false, "claimsParameterSupported": true, "expirationNotificatorEnabled": false, "sessionIdUnauthenticatedUnusedLifetime": 120, "opTosUri": "http://www.jans.io/doku.php?id=jans:tos", "backchannelUserCodeParameterSupported": true, "umaPctLifetime": 1728000, "cleanServiceBatchChunkSize": 10000, "allowPostLogoutRedirectWithoutValidation": false, "requirePkce": false, "oxElevenGenerateKeyEndpoint": "https://jenkins-build.jans.io/oxeleven/rest/oxeleven/generateKey", "umaRestrictResourceToAssociatedClient": false, "umaAddScopesAutomatically": true, "sectorIdentifierCacheLifetimeInMinutes": 1440, "agamaConfiguration": { "maxItemsLoggedInCollections": 9, "crashErrorPage": "crash.ftlh", "serializerType": "KRYO", "rootDir": "/opt/jans/jetty/jans-config-api/agama", "interruptionErrorPage": "timeout.ftlh", "bridgeScriptPage": "agama.xhtml", "disableTCHV": true, "finishedFlowPage": "finished.ftlh", "enabled": true, "templatesPath": "/ftl", "scriptsPath": "/scripts", "defaultResponseHeaders": { "Cache-Control": "max-age=0, no-store" }, "pageMismatchErrorPage": "mismatch.ftlh" }, "sessionAsJwt": false, "dynamicRegistrationScopesParamEnabled": true, "changeSessionIdOnAuthentication": true, "discoveryDenyKeys": [ "id_generation_endpoint", "auth_level_mapping", "scope_to_claims_mapping", "op_policy_uri" ], "backchannelLoginHintClaims": [ "inum", "uid", "mail" ], "userInfoEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/userinfo", "registrationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/register", "idTokenTokenBindingCnfValuesSupported": [ "tbh" ], "accessTokenLifetime": 300, "frontChannelLogoutSessionSupported": true, "dcrAuthorizationWithMTLS": false, "statAuthorizationScope": "jans_stat", "updateClientAccessTime": false, "requestObjectEncryptionAlgValuesSupported": [ "RSA1_5", "RSA-OAEP", "A128KW", "A256KW" ], "userInfoEncryptionEncValuesSupported": [ "A128CBC+HS256", "A256CBC+HS512", "A128GCM", "A256GCM" ], "backchannelAuthenticationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/bc-authorize", "endSessionEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/end_session", "persistRefreshTokenInLdap": true, "dynamicRegistrationCustomObjectClass": "jansClntCustomAttributes", "umaResourceLifetime": 1728000, "requestObjectSigningAlgValuesSupported": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "useHighestLevelScriptIfAcrScriptNotFound": true, "checkSessionIFrame": "https://jenkins-build.jans.io/jans-auth/opiframe.htm", "ssaConfiguration": { "ssaExpirationInDays": 30, "ssaSigningAlg": "RS256", "ssaEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/ssa" }, "removeRefreshTokensForClientOnLogout": true, "introspectionSkipAuthorization": false, "oxElevenDeleteKeyEndpoint": "https://jenkins-build.jans.io/oxeleven/rest/oxeleven/deleteKey", "authenticationFilters": [ { "filter": "(&(mail=*{0}*)(inum={1}))", "bind": false, "baseDn": "ou=people,o=jans" }, { "filter": "uid={0}", "bind": true, "bindPasswordAttribute": "pwd", "baseDn": "ou=people,o=jans" } ], "forceOfflineAccessScopeToEnableRefreshToken": false, "subjectTypesSupported": [ "public", "pairwise" ], "grantTypesAndResponseTypesAutofixEnabled": true, "allowSpontaneousScopes": true, "disableU2fEndpoint": false, "refreshTokenLifetime": 14400, "openidScopeBackwardCompatibility": false, "featureFlags": [ "unknown", "health_check", "userinfo", "clientinfo", "id_generation", "registration", "introspection", "revoke_token", "revoke_session", "end_session", "status_session", "jans_configuration", "ciba", "uma", "u2f", "device_authz", "stat", "par", "ssa" ], "spontaneousScopeLifetime": 0, "keySelectionStrategy": "OLDER", "backchannelRedirectUri": "https://jenkins-build.jans.io/jans-auth/ciba/home.htm", "serverSessionIdLifetime": 86400, "allowEndSessionWithUnmatchedSid": false, "backchannelBindingMessagePattern": "^[a-zA-Z0-9]{4,8}$", "allowIdTokenWithoutImplicitGrantType": false, "requestParameterSupported": true, "requestObjectEncryptionEncValuesSupported": [ "A128CBC+HS256", "A256CBC+HS512", "A128GCM", "A256GCM" ], "oxElevenVerifySignatureEndpoint": "https://jenkins-build.jans.io/oxeleven/rest/oxeleven/verifySignature", "authenticationProtectionConfiguration": { "attemptExpiration": 15, "bruteForceProtectionEnabled": false, "delayTime": 2, "maximumAllowedAttemptsWithoutDelay": 4 }, "skipRefreshTokenDuringRefreshing": false, "allowAllValueForRevokeEndpoint": false, "jwksUri": "https://jenkins-build.jans.io/jans-auth/restv1/jwks", "baseEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1", "dynamicRegistrationCustomAttributes": [ "jansTrustedClnt", "myCustomAttr1", "myCustomAttr2", "jansInclClaimsInIdTkn" ], "dynamicRegistrationExpirationTime": 86400, "softwareStatementValidationType": "jwks_uri", "backchannelDeviceRegistrationEndpoint": "https://jenkins-build.jans.io/jans-auth/restv1/bc-deviceRegistration", "umaTicketLifetime": 3600, "metricReporterKeepDataDays": 15, "fapi": false, "sessionIdUnusedLifetime": 86400, "enableClientGrantTypeUpdate": true, "corsConfigurationFilters": [ { "corsSupportCredentials": true, "corsPreflightMaxAge": 1800, "corsEnabled": true, "filterName": "CorsFilter", "corsAllowedMethods": "GET,POST,HEAD,OPTIONS", "corsAllowedHeaders": "Origin,Authorization,Accept,X-Requested-With,Content-Type,Access-Control-Request-Method,Access-Control-Request-Headers", "corsLoggingEnabled": false, "corsAllowedOrigins": "*", "corsRequestDecorate": true } ], "jwksAlgorithmsSupported": [ "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512", "RSA1_5", "RSA-OAEP" ], "rejectJwtWithNoneAlg": false, "expirationNotificatorIntervalInSeconds": 600, "dpopTimeframe": 5, "deviceAuthzRequestExpiresIn": 1800, "requestUriBlockList": [ "localhost", "127.0.0.1" ], "introspectionScriptBackwardCompatibility": false, "keyRegenerationInterval": 48, "accessTokenSigningAlgValuesSupported": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "backchannelAuthenticationResponseInterval": 2, "userInfoSigningAlgValuesSupported": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512" ], "checkUserPresenceOnRefreshToken": false, "keyRegenerationEnabled": true } 24-11 09:33:46.879 INFO com.intuit.karate.Runner Runner.java:264- <> feature 10 of 47: src/test/resources/feature/config/properties/properties.feature --------------------------------------------------------- feature: src/test/resources/feature/config/properties/properties.feature report: target/surefire-reports/src.test.resources.feature.config.properties.properties.json scenarios: 3 | passed: 3 | failed: 0 | time: 0.8794 --------------------------------------------------------- 24-11 09:33:47.051 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:47.052 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:47.052 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:47.052 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:47.053 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:47.053 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:47.053 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:47.054 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:47.054 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:47.054 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:47.058 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:47.058 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:47.058 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:47.058 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:47.059 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:47.059 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:47.059 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:47.059 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:47.060 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:47.060 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:47.095 INFO com.intuit.karate.Logger Logger.java:104- [print] ONLY TOKEN BASED AUTHORIZATION IS SUPPORTED! 24-11 09:33:47.101 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:47.101 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:47.102 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:47.102 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:47.102 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:47.102 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:47.103 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:47.103 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:47.103 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:47.103 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:47.105 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:47.105 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:47.105 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:47.105 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:47.106 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:47.118 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:47.119 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:47.119 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:47.119 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:47.119 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:47.394 INFO com.intuit.karate.Logger Logger.java:104- [print] { "themeColor": "166309", "displayName": "Gluu, Inc", "organization": "jans", "description": "Welcome to oxTrust!", "dn": "o=jans", "shortName": "Gluu, Inc", "title": "Gluu", "baseDn": "o=jans", "managerGroup": "inum=60B7,ou=groups,o=jans" } 24-11 09:33:47.403 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:47.404 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:47.404 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:47.404 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:47.405 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:47.405 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:47.405 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:47.405 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:47.405 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:47.406 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:47.409 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:47.410 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:47.410 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:47.410 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:47.411 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:47.411 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:47.412 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:47.412 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:47.412 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:47.412 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:47.627 INFO com.intuit.karate.Logger Logger.java:104- [print] { "themeColor": "166309", "displayName": "Gluu, Inc", "organization": "jans", "description": "Welcome to oxTrust!", "dn": "o=jans", "shortName": "Gluu, Inc", "title": "Gluu", "baseDn": "o=jans", "managerGroup": "inum=60B7,ou=groups,o=jans" } 24-11 09:33:47.632 INFO com.intuit.karate.Logger Logger.java:104- [print] Welcome to oxTrust! 24-11 09:33:47.641 INFO com.intuit.karate.Logger Logger.java:104- [print] [ {"op":"replace", "path": "/description", "value":"Welcome to oxTrust!" } ] 24-11 09:33:47.641 INFO com.intuit.karate.Logger Logger.java:104- [print] 24-11 09:33:47.924 INFO com.intuit.karate.Logger Logger.java:104- [print] { "themeColor": "166309", "displayName": "Gluu, Inc", "organization": "jans", "description": "Welcome to oxTrust!", "dn": "o=jans", "shortName": "Gluu, Inc", "title": "Gluu", "baseDn": "o=jans", "managerGroup": "inum=60B7,ou=groups,o=jans" } 24-11 09:33:47.950 INFO com.intuit.karate.Runner Runner.java:264- <> feature 33 of 47: src/test/resources/feature/config/org/org-config.feature --------------------------------------------------------- feature: src/test/resources/feature/config/org/org-config.feature report: target/surefire-reports/src.test.resources.feature.config.org.org-config.json scenarios: 3 | passed: 3 | failed: 0 | time: 0.8173 --------------------------------------------------------- 24-11 09:33:47.959 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:47.960 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:47.960 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:47.960 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:47.961 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:47.961 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:47.961 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:47.961 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:47.962 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:47.962 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:47.965 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:47.966 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:47.966 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:47.966 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:47.967 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:47.967 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:47.967 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:47.967 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:47.967 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:47.968 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:48.204 INFO com.intuit.karate.Logger Logger.java:104- [print] { "valid": false, "port": 0, "requires_authentication": false, "trust_host": false, "requires_ssl": false } 24-11 09:33:48.210 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:48.210 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:48.210 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:48.210 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:48.211 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:48.211 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:48.211 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:48.211 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:48.211 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:48.211 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:48.214 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:48.214 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:48.214 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:48.215 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:48.215 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:48.215 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:48.215 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:48.216 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:48.216 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:48.216 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:48.431 INFO com.intuit.karate.Logger Logger.java:104- [print] { "valid": false, "port": 0, "requires_authentication": false, "trust_host": false, "requires_ssl": false } 24-11 09:33:48.440 INFO com.intuit.karate.Logger Logger.java:104- [print] { "valid": false, "port": 0, "requires_authentication": false, "trust_host": false, "requires_ssl": false } 24-11 09:33:48.735 INFO com.intuit.karate.Logger Logger.java:104- [print] { "valid": false, "port": 0, "requires_authentication": false, "trust_host": false, "requires_ssl": false } 24-11 09:33:49.012 INFO com.intuit.karate.Logger Logger.java:104- [print] { "valid": false, "port": 0, "requires_authentication": false, "trust_host": false, "requires_ssl": false } 24-11 09:33:49.262 INFO com.intuit.karate.Logger Logger.java:104- [print] 24-11 09:33:49.294 INFO com.intuit.karate.Runner Runner.java:264- <> feature 34 of 47: src/test/resources/feature/smtp/smtp.feature --------------------------------------------------------- feature: src/test/resources/feature/smtp/smtp.feature report: target/surefire-reports/src.test.resources.feature.smtp.smtp.json scenarios: 2 | passed: 2 | failed: 0 | time: 1.2784 --------------------------------------------------------- 24-11 09:33:49.304 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:49.304 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:49.304 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:49.304 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:49.305 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:49.305 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:49.306 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:49.306 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:49.306 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:49.306 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:49.309 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:49.310 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:49.310 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:49.310 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:49.310 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:49.311 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:49.311 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:49.311 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:49.311 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:49.311 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:49.340 INFO com.intuit.karate.Logger Logger.java:104- [print] ONLY TOKEN BASED AUTHORIZATION IS SUPPORTED! 24-11 09:33:49.349 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:49.349 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:49.350 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:49.350 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:49.351 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:49.351 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:49.352 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:49.352 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:49.352 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:49.352 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:49.357 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:49.357 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:49.357 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:49.357 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:49.358 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:49.359 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:49.359 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:49.359 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:49.359 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:49.360 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:49.367 INFO com.intuit.karate.Logger Logger.java:104- [print] accessToken = 86338509-2112-409e-98ae-4d3e55ded0fe 24-11 09:33:50.453 INFO com.intuit.karate.Logger Logger.java:104- [print] [ { "isJwt": false, "opbrowserState": "cba08c4d-f5d0-4a6f-b0ba-2f5717d51b6d", "deletable": true, "dn": "jansId=b456625e-5554-4136-9447-8f866604d589,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:27:00", "creationDate": "2022-11-24T09:26:59", "ttl": 0, "sessionState": "9f95e5d4acb910fcd5035d922d953ab7c620ed9a276ac3553d495ffbe38db5ed.9f302144-c545-42b1-b153-63eab53be532", "lastUsedAt": "2022-11-24T09:27:01", "permissionGrantedMap": { "permissionGranted": { "038eed6d-cadd-48b8-bbff-ee5f08c0bf9a": true } }, "outsideSid": "1c170244-4aa9-4f33-ac95-a06a0e3b1861", "id": "b456625e-5554-4136-9447-8f866604d589", "state": "authenticated", "sessionAttributes": { "opbs": "cba08c4d-f5d0-4a6f-b0ba-2f5717d51b6d", "response_type": "token", "session_id": "b456625e-5554-4136-9447-8f866604d589", "nonce": "644e913d-a064-4e24-97d9-409b7009eced", "client_id": "038eed6d-cadd-48b8-bbff-ee5f08c0bf9a", "response_mode": "query.jwt", "sid": "1c170244-4aa9-4f33-ac95-a06a0e3b1861", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "fdff7801-7ed9-48d6-9f4c-0ab130277384", "old_session_id": "5eaa8bb3-1151-4143-b10c-4a488cd258dc" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:59" }, { "isJwt": false, "opbrowserState": "cc773d40-5067-40db-b644-ff36f9cb2266", "deletable": true, "dn": "jansId=0cfbd4c8-347c-48dc-846b-49f4921e125c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:58", "creationDate": "2022-11-24T09:26:58", "ttl": 0, "sessionState": "4e0a68607e6aeede5ae42c3c405f1b24a2b4518b291b65605a817bd0feeeaae3.d73058df-5fe7-46d7-94ac-896b2e641b2c", "lastUsedAt": "2022-11-24T09:26:59", "permissionGrantedMap": { "permissionGranted": { "17903667-d1eb-4426-89ae-9d0456ce3134": true } }, "outsideSid": "ad77ee04-95da-4a52-9fa9-9a5ee8c9083c", "id": "0cfbd4c8-347c-48dc-846b-49f4921e125c", "state": "authenticated", "sessionAttributes": { "opbs": "cc773d40-5067-40db-b644-ff36f9cb2266", "response_type": "token", "session_id": "0cfbd4c8-347c-48dc-846b-49f4921e125c", "nonce": "b14cb0cc-8dd3-468f-9a32-d3a9f8075d87", "client_id": "17903667-d1eb-4426-89ae-9d0456ce3134", "response_mode": "query.jwt", "sid": "ad77ee04-95da-4a52-9fa9-9a5ee8c9083c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "be8e5777-8c64-4e8f-8be2-f8a4a50228b6", "old_session_id": "583b1f0a-aad8-4589-a95f-99dc95e30bc5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:58" }, { "isJwt": false, "opbrowserState": "05d32dc1-0cc1-4e5b-8455-18e3b59661e1", "deletable": true, "dn": "jansId=08052a3a-be75-4cfb-b127-d4dcd72dfa17,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:57", "creationDate": "2022-11-24T09:26:57", "ttl": 0, "sessionState": "faae9d37e31f360b492d3a63683783223cc5a7702d4109826b9f3775bec37551.68ef272b-7458-4e58-832e-c32b6ef6a65d", "lastUsedAt": "2022-11-24T09:26:58", "permissionGrantedMap": { "permissionGranted": { "66d4e9fb-a292-4dce-9802-8f225a74b05c": true } }, "outsideSid": "4d98f88d-1e68-430b-aeb0-a6febcb9e841", "id": "08052a3a-be75-4cfb-b127-d4dcd72dfa17", "state": "authenticated", "sessionAttributes": { "opbs": "05d32dc1-0cc1-4e5b-8455-18e3b59661e1", "response_type": "token", "session_id": "08052a3a-be75-4cfb-b127-d4dcd72dfa17", "nonce": "db4d324e-7808-45d5-a46d-25c2a3bf63aa", "client_id": "66d4e9fb-a292-4dce-9802-8f225a74b05c", "response_mode": "query.jwt", "sid": "4d98f88d-1e68-430b-aeb0-a6febcb9e841", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c9dbe46d-7b19-41f2-a085-4068c00371ef", "old_session_id": "ed3b20f1-be80-4430-9876-e94287016d46" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:57" }, { "isJwt": false, "opbrowserState": "bf0adb38-23cb-4f8c-bdd8-3f0d2472afa1", "deletable": true, "dn": "jansId=b90c31b1-2c1c-454e-afad-63c59bdeec1d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:56", "creationDate": "2022-11-24T09:26:55", "ttl": 0, "sessionState": "d3bab069e71938812a56f4e66b24d3ea3d18404dcdbbf135287085f7670ebb71.e87b67ee-ffd0-4e46-8f29-ee609fa8081c", "lastUsedAt": "2022-11-24T09:26:56", "permissionGrantedMap": { "permissionGranted": { "022d0797-f28a-44eb-9374-2637e446e22f": true } }, "outsideSid": "f99af37f-7bf8-4ebe-b110-a8cd482a2fac", "id": "b90c31b1-2c1c-454e-afad-63c59bdeec1d", "state": "authenticated", "sessionAttributes": { "opbs": "bf0adb38-23cb-4f8c-bdd8-3f0d2472afa1", "response_type": "token", "session_id": "b90c31b1-2c1c-454e-afad-63c59bdeec1d", "nonce": "e08255af-af46-4182-a0df-b73046e81014", "client_id": "022d0797-f28a-44eb-9374-2637e446e22f", "response_mode": "query.jwt", "sid": "f99af37f-7bf8-4ebe-b110-a8cd482a2fac", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "03b2d30f-ca69-4415-baed-8ba2582f8ce1", "old_session_id": "f3bc04c0-58d7-42e6-8ddf-2839f5f6cf89" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:55" }, { "isJwt": false, "opbrowserState": "dc0a06af-578a-43f3-8b21-95279aceaa64", "deletable": true, "dn": "jansId=52a82849-c950-4487-92ac-33c88c1e719a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:54", "creationDate": "2022-11-24T09:26:54", "ttl": 0, "sessionState": "8631c350939780a87076d7da1f888843b3906a7b619cd1542645e770dcf19434.9eed4188-c401-4b45-8396-2dd36d7452f3", "lastUsedAt": "2022-11-24T09:26:55", "permissionGrantedMap": { "permissionGranted": { "0c328c76-bca8-41e4-8d5e-5fb15f474c24": true } }, "outsideSid": "d27febfa-5515-4965-9cad-5c0c70f5763d", "id": "52a82849-c950-4487-92ac-33c88c1e719a", "state": "authenticated", "sessionAttributes": { "opbs": "dc0a06af-578a-43f3-8b21-95279aceaa64", "response_type": "token id_token", "session_id": "52a82849-c950-4487-92ac-33c88c1e719a", "nonce": "04ab197b-1454-4ff1-896a-e10c742c0ff5", "client_id": "0c328c76-bca8-41e4-8d5e-5fb15f474c24", "response_mode": "query.jwt", "sid": "d27febfa-5515-4965-9cad-5c0c70f5763d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4bf5cee4-be0f-4fec-8bd1-2f8b1456e059", "old_session_id": "3938c554-8308-42e6-b9e4-7865af76e63b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:54" }, { "isJwt": false, "opbrowserState": "b06a1a9d-33ce-4b7d-aa31-3054c3da20c4", "deletable": true, "dn": "jansId=1ce0e780-f2a7-44ec-beb9-1b741a85498d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:54", "creationDate": "2022-11-24T09:26:54", "ttl": 0, "sessionState": "6581fc6cfbd41044e57230ac1777614dec079e20e1c6b4b98546e79ed26a18e1.806cdf82-b622-41dc-a332-ff8afd35ce19", "lastUsedAt": "2022-11-24T09:26:55", "permissionGrantedMap": { "permissionGranted": { "a33ffc17-3b95-4af8-87c0-e118683bcf41": true } }, "outsideSid": "ac3b49b8-1dae-4bbf-a418-e98b2809f78d", "id": "1ce0e780-f2a7-44ec-beb9-1b741a85498d", "state": "authenticated", "sessionAttributes": { "opbs": "b06a1a9d-33ce-4b7d-aa31-3054c3da20c4", "response_type": "token", "session_id": "1ce0e780-f2a7-44ec-beb9-1b741a85498d", "nonce": "8607236c-5a8c-43e8-9540-7dc29ba5eb88", "client_id": "a33ffc17-3b95-4af8-87c0-e118683bcf41", "response_mode": "query.jwt", "sid": "ac3b49b8-1dae-4bbf-a418-e98b2809f78d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "870ef190-bea0-46a4-8a95-8aa4bbe4d488", "old_session_id": "84c04e93-5036-4d48-b986-79cd0e929d22" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:54" }, { "isJwt": false, "opbrowserState": "2ec26c35-0d86-4f0f-bd22-bd96bb7cc23c", "deletable": true, "dn": "jansId=27ff993e-dba0-4234-9fd8-1a05514f6756,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:53", "creationDate": "2022-11-24T09:26:52", "ttl": 0, "sessionState": "51c2df14c4bda014c9a2cd6b61e662f01b7be742830f69fba0699097c41d9725.31a0b49c-f560-41d8-8aef-449cc7e77c88", "lastUsedAt": "2022-11-24T09:26:54", "permissionGrantedMap": { "permissionGranted": { "1a5e4116-2b63-40d2-bc31-f3d64f19854f": true } }, "outsideSid": "361388cf-71b8-4a31-8427-1476c16a1a05", "id": "27ff993e-dba0-4234-9fd8-1a05514f6756", "state": "authenticated", "sessionAttributes": { "opbs": "2ec26c35-0d86-4f0f-bd22-bd96bb7cc23c", "response_type": "token id_token", "session_id": "27ff993e-dba0-4234-9fd8-1a05514f6756", "nonce": "002028c0-76b6-4b58-823b-dc9948441ed4", "client_id": "1a5e4116-2b63-40d2-bc31-f3d64f19854f", "response_mode": "query.jwt", "sid": "361388cf-71b8-4a31-8427-1476c16a1a05", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "09e54fba-2580-425d-963f-f616454e0f6f", "old_session_id": "2a88acca-06c1-44f2-af05-55498ec43f6d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:52" }, { "isJwt": false, "opbrowserState": "93c8d6ad-e332-46ce-bf0c-7cbd6ed83ec7", "deletable": true, "dn": "jansId=4cbe89ea-306e-4d2a-8414-02cabaa3a480,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:51", "creationDate": "2022-11-24T09:26:50", "ttl": 0, "sessionState": "a0207a9ec5db3c319e9f674ed1aeadb1859bbc14d4d6ab92d616b526778da5dc.7c4b73fa-12eb-4720-8bbb-10d1d7b1b9c0", "lastUsedAt": "2022-11-24T09:26:52", "permissionGrantedMap": { "permissionGranted": { "5fd6888d-0c48-4f17-8cd0-bdb8c9a4a7c1": true } }, "outsideSid": "af4908f4-8d50-4e44-a521-6af2551f6fdb", "id": "4cbe89ea-306e-4d2a-8414-02cabaa3a480", "state": "authenticated", "sessionAttributes": { "opbs": "93c8d6ad-e332-46ce-bf0c-7cbd6ed83ec7", "response_type": "token id_token", "session_id": "4cbe89ea-306e-4d2a-8414-02cabaa3a480", "nonce": "db9ea22f-1f23-487e-a634-95de95accb71", "client_id": "5fd6888d-0c48-4f17-8cd0-bdb8c9a4a7c1", "response_mode": "query.jwt", "sid": "af4908f4-8d50-4e44-a521-6af2551f6fdb", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "51fb0130-87ae-4f6a-a6f6-740cd04f68da", "old_session_id": "dbd9c05b-ef9d-424b-b3dd-71d88fe46d98" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:50" }, { "isJwt": false, "opbrowserState": "1697544e-7f57-4613-94e8-7309622ea281", "deletable": true, "dn": "jansId=7a769e3b-6747-4008-986c-879d2b2dc14e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:49", "creationDate": "2022-11-24T09:26:49", "ttl": 0, "sessionState": "3cdbada49510827e155b31e37e379f7ec6399c3b5eae2fe67512134eb3d4f84c.c9cbbd3b-79de-45ae-8f94-e3d8089369c0", "lastUsedAt": "2022-11-24T09:26:50", "permissionGrantedMap": { "permissionGranted": { "dcaaeae1-18c7-414f-aa33-3b182292cd7e": true } }, "outsideSid": "33bdc458-2c85-4d14-8d81-86dd149dc14c", "id": "7a769e3b-6747-4008-986c-879d2b2dc14e", "state": "authenticated", "sessionAttributes": { "opbs": "1697544e-7f57-4613-94e8-7309622ea281", "response_type": "token id_token", "session_id": "7a769e3b-6747-4008-986c-879d2b2dc14e", "nonce": "ebbb51cb-9f6f-4d72-811f-f6436587188d", "client_id": "dcaaeae1-18c7-414f-aa33-3b182292cd7e", "response_mode": "query.jwt", "sid": "33bdc458-2c85-4d14-8d81-86dd149dc14c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "cf081e2e-7b97-4b72-9beb-7039378fb4d7", "old_session_id": "f12e6aa4-c6e4-4cab-9951-8e575bb30bd7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:49" }, { "isJwt": false, "opbrowserState": "6032d1fd-58f5-4b86-b31b-a587dd48306a", "deletable": true, "dn": "jansId=94c7dc0e-ac55-4999-be0f-00e735269145,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:47", "creationDate": "2022-11-24T09:26:46", "ttl": 0, "sessionState": "fceaac8ce1ed8777574832a021f730d8e0344cc0ca8d6c016ad5011c8d7beead.7c17bf7d-4fce-4cb1-a49e-f7134f30a048", "lastUsedAt": "2022-11-24T09:26:47", "permissionGrantedMap": { "permissionGranted": { "a2af254e-256e-4a48-a8ad-21936e94d14e": true } }, "outsideSid": "a5f12836-4500-4f0b-9ec2-bcb4e2e769db", "id": "94c7dc0e-ac55-4999-be0f-00e735269145", "state": "authenticated", "sessionAttributes": { "opbs": "6032d1fd-58f5-4b86-b31b-a587dd48306a", "response_type": "token", "session_id": "94c7dc0e-ac55-4999-be0f-00e735269145", "nonce": "c4822369-4a84-428a-8cb5-8440d06faab2", "client_id": "a2af254e-256e-4a48-a8ad-21936e94d14e", "response_mode": "query.jwt", "sid": "a5f12836-4500-4f0b-9ec2-bcb4e2e769db", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d329b962-4866-45bd-a3f7-fd64ca0c0101", "old_session_id": "fd093533-b6e4-4e02-a1ea-a86e03cbd31c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:46" }, { "isJwt": false, "opbrowserState": "93a43f4c-8ac0-41ce-9e95-ff2a082aec48", "deletable": true, "dn": "jansId=739a4016-fdfb-4060-bced-a8e87a7cd7a6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:46", "creationDate": "2022-11-24T09:26:46", "ttl": 0, "sessionState": "d207e4b9efb09a068ef1e22d68c723c664a0dc350cf76ad228b0ea77652aeb4c.51cce966-5e2b-4826-8852-411457356783", "lastUsedAt": "2022-11-24T09:26:47", "permissionGrantedMap": { "permissionGranted": { "eba085e1-4304-4788-9f9f-006cb0f27429": true } }, "outsideSid": "31b7e047-4fd7-448a-b7a3-fc31d7a68409", "id": "739a4016-fdfb-4060-bced-a8e87a7cd7a6", "state": "authenticated", "sessionAttributes": { "opbs": "93a43f4c-8ac0-41ce-9e95-ff2a082aec48", "response_type": "token id_token", "session_id": "739a4016-fdfb-4060-bced-a8e87a7cd7a6", "nonce": "95c25c0d-f99f-42d0-bc3c-d53acc2138cf", "client_id": "eba085e1-4304-4788-9f9f-006cb0f27429", "response_mode": "query.jwt", "sid": "31b7e047-4fd7-448a-b7a3-fc31d7a68409", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3e7276bd-7c08-42a4-b6f8-094eb38e0c12", "old_session_id": "5c2c1e51-6e74-4063-9bd1-94f8845f68a3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:46" }, { "isJwt": false, "opbrowserState": "99eada45-c0c6-4477-acfb-8a3de972fc03", "deletable": true, "dn": "jansId=40d68eb2-29ce-4623-830d-1f6c8b0f0b78,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:45", "creationDate": "2022-11-24T09:26:45", "ttl": 0, "sessionState": "5ef4a804fa204287160f91df83c36133b26d5d5c1d3f1e7bcfbf7fcd00c5581d.64f36757-4cde-44c6-8cc8-68fe27804fdf", "lastUsedAt": "2022-11-24T09:26:46", "permissionGrantedMap": { "permissionGranted": { "6833d408-eb01-4c35-8d11-27e6b95b01a4": true } }, "outsideSid": "356880fd-2a44-41b7-b185-314233980fea", "id": "40d68eb2-29ce-4623-830d-1f6c8b0f0b78", "state": "authenticated", "sessionAttributes": { "opbs": "99eada45-c0c6-4477-acfb-8a3de972fc03", "response_type": "token", "session_id": "40d68eb2-29ce-4623-830d-1f6c8b0f0b78", "nonce": "b4a06983-39b4-4d44-ab31-dc2f0eeaede6", "client_id": "6833d408-eb01-4c35-8d11-27e6b95b01a4", "response_mode": "query.jwt", "sid": "356880fd-2a44-41b7-b185-314233980fea", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f6184870-eb5a-429a-90a7-7d0404b64ad0", "old_session_id": "5f6ecedd-a956-4728-a9f8-4b0002472463" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:45" }, { "isJwt": false, "opbrowserState": "db54a5b6-9289-4145-8d4b-ecb4862a510f", "deletable": true, "dn": "jansId=559c92b8-11cc-4ee3-9084-8f87d1c2f6d7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:45", "creationDate": "2022-11-24T09:26:44", "ttl": 0, "sessionState": "e277d55a332ab77c554fbcffec1931fa0a6dcd5fff5ee80e5ce7ddea0e0e8882.ede71af6-52cc-453b-aac4-0fe334c45ea7", "lastUsedAt": "2022-11-24T09:26:45", "permissionGrantedMap": { "permissionGranted": { "94c39e96-881c-4a72-90e6-d4943d0616d0": true } }, "outsideSid": "a5b14000-dea2-4780-8242-91f0ff5268b7", "id": "559c92b8-11cc-4ee3-9084-8f87d1c2f6d7", "state": "authenticated", "sessionAttributes": { "opbs": "db54a5b6-9289-4145-8d4b-ecb4862a510f", "response_type": "token id_token", "session_id": "559c92b8-11cc-4ee3-9084-8f87d1c2f6d7", "nonce": "420d0fdf-2da4-456e-a9b1-54fac5b0a091", "client_id": "94c39e96-881c-4a72-90e6-d4943d0616d0", "response_mode": "query.jwt", "sid": "a5b14000-dea2-4780-8242-91f0ff5268b7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "947f9207-6751-4446-aa06-ed49801d1157", "old_session_id": "8e5a4f01-c05c-440e-9b12-7b90646cf116" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:44" }, { "isJwt": false, "opbrowserState": "cc8bd823-2a1d-4e8b-822d-6c7a43191533", "deletable": true, "dn": "jansId=23352338-5bad-4d17-87f6-3926c914579f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:44", "creationDate": "2022-11-24T09:26:43", "ttl": 0, "sessionState": "79876d39cfebcb93385fe50aaa2ee1a01f304433bbd75fd37dec30a83039d07a.b8884e90-de78-4ad6-bc04-eef361d2b57d", "lastUsedAt": "2022-11-24T09:26:44", "permissionGrantedMap": { "permissionGranted": { "84b228e7-b6fc-49eb-a242-d2f6809f31cb": true } }, "outsideSid": "722030be-f76d-4b7b-9e79-aa639a6c49b1", "id": "23352338-5bad-4d17-87f6-3926c914579f", "state": "authenticated", "sessionAttributes": { "opbs": "cc8bd823-2a1d-4e8b-822d-6c7a43191533", "response_type": "token", "session_id": "23352338-5bad-4d17-87f6-3926c914579f", "nonce": "53d323e0-6ef6-4f87-b40d-4d8c11f4321a", "client_id": "84b228e7-b6fc-49eb-a242-d2f6809f31cb", "response_mode": "query.jwt", "sid": "722030be-f76d-4b7b-9e79-aa639a6c49b1", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1298feec-fd33-402d-8839-f877086613b2", "old_session_id": "9325e10f-9a8a-4ee1-86b9-3e20dd456e51" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:43" }, { "isJwt": false, "opbrowserState": "6f4604ec-8649-4f3b-a107-6b7a07cb8822", "deletable": true, "dn": "jansId=89cbbd80-4630-497b-af43-e0cedcec684e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:42", "creationDate": "2022-11-24T09:26:42", "ttl": 0, "sessionState": "0a69c27755028d456c17f654755222ed328794148582876c5c060fdeaab7a1b5.7dd7cde3-6b99-440c-bb08-ff535b407d7e", "lastUsedAt": "2022-11-24T09:26:43", "permissionGrantedMap": { "permissionGranted": { "53242306-bdde-460b-9e82-40397e05b69b": true } }, "outsideSid": "ea1aa15e-4a21-443d-938a-1069cf568296", "id": "89cbbd80-4630-497b-af43-e0cedcec684e", "state": "authenticated", "sessionAttributes": { "opbs": "6f4604ec-8649-4f3b-a107-6b7a07cb8822", "response_type": "token", "session_id": "89cbbd80-4630-497b-af43-e0cedcec684e", "nonce": "396c1b4c-1e2b-4d80-9710-a652d2fafa6c", "client_id": "53242306-bdde-460b-9e82-40397e05b69b", "response_mode": "query.jwt", "sid": "ea1aa15e-4a21-443d-938a-1069cf568296", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c5f53387-2642-42a4-83ee-bef8ea605270", "old_session_id": "d2e88b0c-1430-4fef-b8b9-6507c8ad58db" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:42" }, { "isJwt": false, "opbrowserState": "cc7830a2-2b1b-423d-a666-33bfea92f631", "deletable": true, "dn": "jansId=3860d8c1-cf8c-4020-bfed-53571d7db06a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:42", "creationDate": "2022-11-24T09:26:41", "ttl": 0, "sessionState": "b2acddfe31bfa6fae524f27386bfa351be66a01b80d798570862c8d8c61aaae5.0d601f5e-83e3-4f61-a18d-a3763157c670", "lastUsedAt": "2022-11-24T09:26:42", "permissionGrantedMap": { "permissionGranted": { "16307092-9e57-48bd-a4b3-9f4875d88589": true } }, "outsideSid": "7395cf31-a9cd-40cd-93a1-4f279701fca7", "id": "3860d8c1-cf8c-4020-bfed-53571d7db06a", "state": "authenticated", "sessionAttributes": { "opbs": "cc7830a2-2b1b-423d-a666-33bfea92f631", "response_type": "token id_token", "session_id": "3860d8c1-cf8c-4020-bfed-53571d7db06a", "nonce": "842ff2b7-85b0-446c-a657-de20836be22f", "client_id": "16307092-9e57-48bd-a4b3-9f4875d88589", "response_mode": "query.jwt", "sid": "7395cf31-a9cd-40cd-93a1-4f279701fca7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ddf2591b-0fbe-4f02-a638-71b774953e7a", "old_session_id": "206b5eae-d004-4e1d-826f-bf8d61f4027f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:41" }, { "isJwt": false, "opbrowserState": "c34ee68b-09a7-4d39-ac8d-0770ff2e273c", "deletable": true, "dn": "jansId=72649178-0abd-4999-8606-93fdeaa6f7ec,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:36", "creationDate": "2022-11-24T09:26:36", "ttl": 0, "sessionState": "2fcdf9a513ebb65ea4b1acfb538531e182dd652dfc0b90209623dd3008543e13.b1c2dfb8-43ab-4a31-9ba2-b3df77a53aaa", "lastUsedAt": "2022-11-24T09:26:37", "permissionGrantedMap": { "permissionGranted": { "e40ea397-c190-42e5-b20f-85ffaa9f5e16": true } }, "outsideSid": "104ffcdf-1473-4cc1-b613-cb255940d380", "id": "72649178-0abd-4999-8606-93fdeaa6f7ec", "state": "authenticated", "sessionAttributes": { "opbs": "c34ee68b-09a7-4d39-ac8d-0770ff2e273c", "response_type": "token id_token", "session_id": "72649178-0abd-4999-8606-93fdeaa6f7ec", "nonce": "f7d5b2c4-52fb-4dee-abc7-9036d270eb6b", "client_id": "e40ea397-c190-42e5-b20f-85ffaa9f5e16", "sid": "104ffcdf-1473-4cc1-b613-cb255940d380", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b9c1f9d9-ae68-47ee-8573-923f47f6fae2", "old_session_id": "74ee74a7-8ed4-43d9-8c3f-3fd828fc0ec0" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:36" }, { "isJwt": false, "opbrowserState": "28599d96-ed01-47e6-8cf7-ecffbe1e5373", "deletable": true, "dn": "jansId=51df4ee7-bf20-4172-85b8-bccd1e4a3953,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:36", "creationDate": "2022-11-24T09:26:36", "ttl": 0, "sessionState": "d68b71c6fe1dce7665d1033fbac75db849341105c1d474d90d65df39a3eeb2ec.d46c2196-488e-40a4-a1a2-d418c35056bd", "lastUsedAt": "2022-11-24T09:26:37", "permissionGrantedMap": { "permissionGranted": { "f5996663-ae94-4405-9936-71f16f8a9ba5": true } }, "outsideSid": "211aaa21-285f-4dd9-ab39-83946123e08e", "id": "51df4ee7-bf20-4172-85b8-bccd1e4a3953", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIyMzJjNGI1OC0xNjJiLTQ5NTQtOTAzNC1lNmExNWU4YmMwMDUiLAogICJub25jZSIgOiAiMGNhNDliMzctOGMzMi00ZGQ5LWFlYTEtZmQ1NWVlMDAyNWUyIiwKICAiY2xpZW50X2lkIiA6ICJmNTk5NjY2My1hZTk0LTQ0MDUtOTkzNi03MWYxNmY4YTliYTUiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.crBPHJ5QEwMJDtRNNM7T35OBwmPJN2Ye1nG4kfW2anheoS4ETk8YaLblHo1cGXxcx-6wW9JheRa2D2LYK5nQjmbVUxMtCUWqJWDdM412gBGVcyviSYm9xJpyJPp3qp2IjrhLQrbfYBUBxh08PD1EQK9NoRMXh1G5KtXt_bgLJK_dxuc1qu3N83mo7MfoAqlwZN0xCJUhgGfNoNu9sUvb-36sTf1n5nYSb5iBIW8nWl3OB6TjR_rNpmTIWW1mydmVREr1wJxlX8dXLi8B5HTm0Xh5wU7tYAv3M2HW4O-n1CMbo_SYgMcA50JfsjNrIzjSjPd6jbB2AWa0yg6klZEOew", "opbs": "28599d96-ed01-47e6-8cf7-ecffbe1e5373", "response_type": "token", "session_id": "51df4ee7-bf20-4172-85b8-bccd1e4a3953", "nonce": "0ca49b37-8c32-4dd9-aea1-fd55ee0025e2", "client_id": "f5996663-ae94-4405-9936-71f16f8a9ba5", "response_mode": "query.jwt", "sid": "211aaa21-285f-4dd9-ab39-83946123e08e", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "232c4b58-162b-4954-9034-e6a15e8bc005", "old_session_id": "b536f331-1163-4aae-9801-7666895ae34c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:36" }, { "isJwt": false, "opbrowserState": "96d40b74-d471-4a63-84b7-e0e0fab74f14", "deletable": true, "dn": "jansId=af0f8bc9-7465-48ec-9e35-a58f712f1070,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:36", "creationDate": "2022-11-24T09:26:36", "ttl": 0, "sessionState": "2e984a9a92d7aa4dd0029c34ef4fd0075e2c4200c4308579ca55bf69b111d071.67ace856-c092-407a-9142-0ed8e0fc54bb", "lastUsedAt": "2022-11-24T09:26:37", "permissionGrantedMap": { "permissionGranted": { "f9d47846-7a30-4016-8c3c-6cf4e547bdd8": true } }, "outsideSid": "86ed17bf-fcbe-4098-a983-3a40c012d1f7", "id": "af0f8bc9-7465-48ec-9e35-a58f712f1070", "state": "authenticated", "sessionAttributes": { "opbs": "96d40b74-d471-4a63-84b7-e0e0fab74f14", "response_type": "token id_token", "session_id": "af0f8bc9-7465-48ec-9e35-a58f712f1070", "nonce": "e5a09479-c1df-4ed6-a3d5-156cb8e221ff", "client_id": "f9d47846-7a30-4016-8c3c-6cf4e547bdd8", "response_mode": "query.jwt", "sid": "86ed17bf-fcbe-4098-a983-3a40c012d1f7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ea79b91b-9e3d-409f-b6f2-1f5514ca6d88", "old_session_id": "625b33d5-1772-4acb-a216-8d44f6f4a03d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:36" }, { "isJwt": false, "opbrowserState": "c25f521d-e68c-487c-aa25-923203f0ae27", "deletable": true, "dn": "jansId=52384274-5ae8-4a9e-a385-b4bb04872f2c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:35", "creationDate": "2022-11-24T09:26:34", "ttl": 0, "sessionState": "5896ac1fc533391fea6c4c1f65d022c18b1309ffb58080f6fcb6a0864738040a.e4e2c61a-7925-4ec6-a858-9ec037c9c760", "lastUsedAt": "2022-11-24T09:26:36", "permissionGrantedMap": { "permissionGranted": { "ae243cbe-ab86-48d8-b49d-0217ceefba17": true } }, "outsideSid": "69b87839-a9e2-4f4c-bd29-6e4067f06629", "id": "52384274-5ae8-4a9e-a385-b4bb04872f2c", "state": "authenticated", "sessionAttributes": { "opbs": "c25f521d-e68c-487c-aa25-923203f0ae27", "response_type": "token id_token", "session_id": "52384274-5ae8-4a9e-a385-b4bb04872f2c", "nonce": "e8d3f2d6-047d-4b12-b3cc-c6bdab4bbfce", "client_id": "ae243cbe-ab86-48d8-b49d-0217ceefba17", "response_mode": "query.jwt", "sid": "69b87839-a9e2-4f4c-bd29-6e4067f06629", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1ce26660-b143-42b5-90dc-adfc23dd9f87", "old_session_id": "cf763343-e573-4dfc-b203-6b534f751162" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:34" }, { "isJwt": false, "opbrowserState": "4a4ed37a-7d04-45cd-bb6d-5c11279f3679", "deletable": true, "dn": "jansId=6309b6dd-a16a-43aa-b45c-cbc97f760b41,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:35", "creationDate": "2022-11-24T09:26:34", "ttl": 0, "sessionState": "a2a1f7b85d8558e6951938af732b253705908762f4421c01e566bfa39b8b0e3b.d8e87f16-f973-412f-8a9e-12cd85e53000", "lastUsedAt": "2022-11-24T09:26:35", "permissionGrantedMap": { "permissionGranted": { "a4ee31c8-8e97-45e7-8c6d-a4df2af49d8c": true } }, "outsideSid": "09abc3d1-6378-47db-bd60-dc058e4bdda4", "id": "6309b6dd-a16a-43aa-b45c-cbc97f760b41", "state": "authenticated", "sessionAttributes": { "opbs": "4a4ed37a-7d04-45cd-bb6d-5c11279f3679", "response_type": "token id_token", "session_id": "6309b6dd-a16a-43aa-b45c-cbc97f760b41", "nonce": "6a897d28-e59f-4894-a2fb-3394fcff1f7a", "client_id": "a4ee31c8-8e97-45e7-8c6d-a4df2af49d8c", "sid": "09abc3d1-6378-47db-bd60-dc058e4bdda4", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e7a5005f-fe39-4298-a41a-48a7b445b273", "old_session_id": "e19ac60d-159f-44aa-944d-47505d756a1e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:34" }, { "isJwt": false, "opbrowserState": "146e185b-22da-4200-a70f-8021b8612fae", "deletable": true, "dn": "jansId=13c84b43-1d0d-471f-8f0a-afcff90989b9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:34", "creationDate": "2022-11-24T09:26:34", "ttl": 0, "sessionState": "0404160579f82fbd46115952b98b761a0fb6d6bc523bcd108188abd4e2d05970.c2d694cb-d1da-456c-8f23-0c4a73bf83af", "lastUsedAt": "2022-11-24T09:26:35", "permissionGrantedMap": { "permissionGranted": { "b2e6995f-ba42-4272-ae9f-2670cae47de2": true } }, "outsideSid": "4c0c2423-8ad4-4fb3-94b0-f74e2bb8e46b", "id": "13c84b43-1d0d-471f-8f0a-afcff90989b9", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI2MWJhZTVmYS0yNmE3LTQzN2UtYjg0ZS1mMGM3MmNjNWRlNzYiLAogICJub25jZSIgOiAiZjJjMTliYmUtMTBiNy00MTZjLTg1MzUtNzBlYWNjNmU1ZDQ2IiwKICAiY2xpZW50X2lkIiA6ICJiMmU2OTk1Zi1iYTQyLTQyNzItYWU5Zi0yNjcwY2FlNDdkZTIiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.e3Q6XUR8YK5kE1j2odNZdEAODnAIEeixhViAfHMArxYgLardHNfKhWwjgYf_cYJ43UNjfURfmZ8GTxD8VP3HBU8ozY02EguTayAHaG-udNsd8IB2D_4VKlRW2L_rdR9096FURvBD65EhgqqiRm4I0xSxZVPsFvRMGNGvc1I1tEvJwUwuBRWH4KzQ4Zx5EzVWVfX1dI1ep1llY5qIVTtGvH9PX1uMjZHC_UB6PBFwm33GEB6IxGmcmc2uwCPAwYyHjdPqXqtFbIAO2ahbowcptuzMMPrHgBVOn11TLVmZHN5qqNys60ZXwhHAOH-N8-jzNFrz-aH_XvGKJBIz2de2Jg", "opbs": "146e185b-22da-4200-a70f-8021b8612fae", "response_type": "token", "session_id": "13c84b43-1d0d-471f-8f0a-afcff90989b9", "nonce": "f2c19bbe-10b7-416c-8535-70eacc6e5d46", "client_id": "b2e6995f-ba42-4272-ae9f-2670cae47de2", "response_mode": "query.jwt", "sid": "4c0c2423-8ad4-4fb3-94b0-f74e2bb8e46b", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "61bae5fa-26a7-437e-b84e-f0c72cc5de76", "old_session_id": "dadd50e5-cfff-4bf2-8b38-f9e91223da4a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:34" }, { "isJwt": false, "opbrowserState": "036a000b-b13d-4823-b0f0-36c719ffb90f", "deletable": true, "dn": "jansId=26b77202-16af-45f0-8230-def98db18dbc,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:33", "creationDate": "2022-11-24T09:26:32", "ttl": 0, "sessionState": "997a58f4fcd8749156d7f88800719d6c9a71da9813e7966acf26b5104ed300ce.185b83df-0ca2-4765-9e05-bd341d78bdec", "lastUsedAt": "2022-11-24T09:26:34", "permissionGrantedMap": { "permissionGranted": { "9ebf17b9-f0fe-461e-8b84-361a6db6e772": true } }, "outsideSid": "9734eafb-9758-4cbf-b5d7-19e1204de991", "id": "26b77202-16af-45f0-8230-def98db18dbc", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiZTViZGFlNjMtN2MyOS00ZGY1LTgxYzUtODNhNGU1MGFhNWVhIiwKICAibm9uY2UiIDogIjIyNzUxZTVjLTQzZDYtNDBlNy1iNDBhLWEyN2I0ZDRlZWU2OSIsCiAgImNsaWVudF9pZCIgOiAiOWViZjE3YjktZjBmZS00NjFlLThiODQtMzYxYTZkYjZlNzcyIiwKICAicmVzcG9uc2VfbW9kZSIgOiAicXVlcnkuand0Igp9.z9BHj1gKy_cZBLwBNSB5nIkCFyouIk2PVfn0aLWiZhPmVqkoAXNCivc8V5RJDD6IFOGNqRNdzUtPzuKoN71DJbEC4vT8K8KWzyzVkGLl-0vco-2vyaKg-wf01hdr9yC21k3NgQ7hjISslJoFCvGplOwRwrAJxPHqb45VBXeln0Q05UvsZdVEEmiLCt2esfvu8IuXnVU4f416xocA3ARMVRGY5EKYW3tTir2yJLfSohMBEPUOZw9VUAQFg6Wv06PD9GdtAMqG7I4FeQBXzyyTXW-7jhyRs2e8oyqZlF5UnN5UHFYHS5mGuGi4gdz3WLMFXZVU1fwbBktRXRVd8wgxHA", "opbs": "036a000b-b13d-4823-b0f0-36c719ffb90f", "response_type": "token id_token", "session_id": "26b77202-16af-45f0-8230-def98db18dbc", "nonce": "22751e5c-43d6-40e7-b40a-a27b4d4eee69", "client_id": "9ebf17b9-f0fe-461e-8b84-361a6db6e772", "response_mode": "query.jwt", "sid": "9734eafb-9758-4cbf-b5d7-19e1204de991", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e5bdae63-7c29-4df5-81c5-83a4e50aa5ea", "old_session_id": "c8de4163-28ac-45f7-a81d-57ddf27d146c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:32" }, { "isJwt": false, "opbrowserState": "b5faf738-dc0e-4b68-a3e2-546780e91e8c", "deletable": true, "dn": "jansId=1211b850-0a2b-4265-885c-f26fe0a75327,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:33", "creationDate": "2022-11-24T09:26:32", "ttl": 0, "sessionState": "680d1a0ec320bb6b79498097da1db8691d3d48cf37c61613373f6257bef4b626.37d00dc5-a0b1-413c-8776-6a9f0387440e", "lastUsedAt": "2022-11-24T09:26:34", "permissionGrantedMap": { "permissionGranted": { "c6055d73-7222-44f8-b58f-ee719ca78620": true } }, "outsideSid": "4013f642-7926-4c19-8bce-783a819956a6", "id": "1211b850-0a2b-4265-885c-f26fe0a75327", "state": "authenticated", "sessionAttributes": { "opbs": "b5faf738-dc0e-4b68-a3e2-546780e91e8c", "response_type": "code token", "session_id": "1211b850-0a2b-4265-885c-f26fe0a75327", "client_id": "c6055d73-7222-44f8-b58f-ee719ca78620", "response_mode": "query.jwt", "sid": "4013f642-7926-4c19-8bce-783a819956a6", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "433f0328-dd2f-4dd0-a541-dcc8b1d2236a", "old_session_id": "398ad290-03f9-44ad-a6f2-cf9db17a85e0" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:32" }, { "isJwt": false, "opbrowserState": "9c53f3c1-91a8-4b40-96f0-d162bacb7550", "deletable": true, "dn": "jansId=7c07eb88-9642-45b7-9889-9b4f94a8ff7f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:33", "creationDate": "2022-11-24T09:26:32", "ttl": 0, "sessionState": "9581ddc6e2261cdd3cff05eeac3bb3932eaecb81936970878f509a498892a39e.55f61725-db98-4582-a0fd-d45b0e7d2e69", "lastUsedAt": "2022-11-24T09:26:33", "permissionGrantedMap": { "permissionGranted": { "df9ce73b-df40-45b5-a308-5616408d8098": true } }, "outsideSid": "a88e1793-2e8a-44c4-916e-392eaa1a2445", "id": "7c07eb88-9642-45b7-9889-9b4f94a8ff7f", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI5MzY0NTllNi02MjgxLTRmZjUtYTNiYS0xNGUxNzUxZWI2MDIiLAogICJub25jZSIgOiAiZDk5MzMzN2ItMTVhNS00YWFlLWI2OTUtODU2NmVhNTZhOGJjIiwKICAiY2xpZW50X2lkIiA6ICJkZjljZTczYi1kZjQwLTQ1YjUtYTMwOC01NjE2NDA4ZDgwOTgiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.ZTH2kdg5fNLF2OAlSsXphMl6jwhQg3XrixTcbEsMp0dMLvD5pmCmFLRxwgX6wHQG3NALfLB-CzuuSs0rda5wGzV0pqYI739J-oFyg48xkGmimrGcN6odMvebvPQcxrTkUo1LTYbm6i5pTqf1nZ0Wt2x-SkWKMNJ6XCaafrw66h8HAH9jqhhofdT9tztVAZ7P3S0sIM4fTgQ6rD8DdDzBoChLz0ywsZfQrz08rFKW9fIErho5L8Zx1Lh-tas0E2q7I73uvzB9-W3OrDoDt7gt_XSZ3nigtN0IKot__5Jk9VpLY8EYSTD6TVLmMDHlCZ0HKeL-49Urr_uQIDY0a5vzpw", "opbs": "9c53f3c1-91a8-4b40-96f0-d162bacb7550", "response_type": "token", "session_id": "7c07eb88-9642-45b7-9889-9b4f94a8ff7f", "nonce": "d993337b-15a5-4aae-b695-8566ea56a8bc", "client_id": "df9ce73b-df40-45b5-a308-5616408d8098", "response_mode": "query.jwt", "sid": "a88e1793-2e8a-44c4-916e-392eaa1a2445", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "936459e6-6281-4ff5-a3ba-14e1751eb602", "old_session_id": "b49d1b0d-43b4-4ceb-a126-e77eb3641e10" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:32" }, { "isJwt": false, "opbrowserState": "94e829d1-66b0-42c8-adf3-e5b09701bb96", "deletable": true, "dn": "jansId=2ef45adf-53d6-4f34-9e1f-959195c193c4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:32", "creationDate": "2022-11-24T09:26:32", "ttl": 0, "sessionState": "4b94d73beb12b16f92a21ec0b9cac6a9aa57880b9bd15d598213e475c08b71c5.04161210-4869-418a-9301-f98ee94b7678", "lastUsedAt": "2022-11-24T09:26:33", "permissionGrantedMap": { "permissionGranted": { "048cb3e1-7384-45cd-a0a0-2fd216be1feb": true } }, "outsideSid": "b627682f-277a-4ed1-8aef-d1a6c4ee7995", "id": "2ef45adf-53d6-4f34-9e1f-959195c193c4", "state": "authenticated", "sessionAttributes": { "opbs": "94e829d1-66b0-42c8-adf3-e5b09701bb96", "response_type": "token id_token", "session_id": "2ef45adf-53d6-4f34-9e1f-959195c193c4", "nonce": "21179300-8029-4b5c-a571-8694a9097e8a", "client_id": "048cb3e1-7384-45cd-a0a0-2fd216be1feb", "response_mode": "query.jwt", "sid": "b627682f-277a-4ed1-8aef-d1a6c4ee7995", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3716358a-da81-4831-ac87-4e93b4a5e2db", "old_session_id": "5be01c47-f0e3-4aa1-94fc-87de57b37630" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:32" }, { "isJwt": false, "opbrowserState": "34dde63a-5ed5-44a7-95f2-fb5a484967cb", "deletable": true, "dn": "jansId=45ee60d7-ee5e-4b74-bdb7-b92251655249,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:31", "creationDate": "2022-11-24T09:26:30", "ttl": 0, "sessionState": "7613da4a2fdbf2147ea06631a90d90cb0711c9c22abb3d959c2dc5879989e4d3.ec3d9ced-4635-466d-ad47-f07b28512a20", "lastUsedAt": "2022-11-24T09:26:32", "permissionGrantedMap": { "permissionGranted": { "eecee22b-f161-49d5-a970-a98de41f89ae": true } }, "outsideSid": "3d9995a9-2d80-4f71-9420-680ed95e35f4", "id": "45ee60d7-ee5e-4b74-bdb7-b92251655249", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiZmZjZGI4M2ItZGU1Yy00NTA2LWFmNjUtYzYzNGU1NTFjMmVmIiwKICAibm9uY2UiIDogIjc4Mzg4MjIyLTEwNjktNDc2ZC05MDM0LWJmYjA3OGMxYzc5YSIsCiAgImNsaWVudF9pZCIgOiAiZWVjZWUyMmItZjE2MS00OWQ1LWE5NzAtYTk4ZGU0MWY4OWFlIiwKICAicmVzcG9uc2VfbW9kZSIgOiAicXVlcnkuand0Igp9.V6ynwK0xmnSE_HkRJQDkRV2Op2avvtRi5DhJmCnKMGBhdfn_G2sDEpZtqa5MWtyB1KS-X9iiXqIuVjgIb8mvWKmhXaGNwDx3tQUiZ8mihxrf8fgMoaqRXkb5oaMYUJHAaXu-0CMPluqYkxhkMdiSY3SxxYKjknhDx1AjzG2KN6CLFKeAxw4ghG8wPiyplz23rfh5behNhrK1n3zs_i5rD4IOu-UFUhEolBOXuxuZCs2H_VjseiIXaNAjtlULfetgu1zKiKNaIgJkDygwWUegdZp7yaizM3nBfB005M5N1y6_foINSCCPv5Q5kSwjm_9m_TyyGaOZllluK5-nFwOYKw", "opbs": "34dde63a-5ed5-44a7-95f2-fb5a484967cb", "response_type": "token id_token", "session_id": "45ee60d7-ee5e-4b74-bdb7-b92251655249", "nonce": "78388222-1069-476d-9034-bfb078c1c79a", "client_id": "eecee22b-f161-49d5-a970-a98de41f89ae", "response_mode": "query.jwt", "sid": "3d9995a9-2d80-4f71-9420-680ed95e35f4", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ffcdb83b-de5c-4506-af65-c634e551c2ef", "old_session_id": "4b2cc5d5-8388-4f1a-9661-07ab0bf32fa2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:30" }, { "isJwt": false, "opbrowserState": "4c07b8d0-277c-4cda-a016-8c052f173232", "deletable": true, "dn": "jansId=256ffc93-2bf8-4372-97d3-b9f88a229370,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:31", "creationDate": "2022-11-24T09:26:30", "ttl": 0, "sessionState": "600e711206ff8c87585bca2ba3f11affe920478df65c140b55c63e761c8c0ee2.e18b9e0a-0c4c-420a-b736-c04e27f372d4", "lastUsedAt": "2022-11-24T09:26:32", "permissionGrantedMap": { "permissionGranted": { "13115606-69d5-47e6-8a7b-8ed6f82e3b0a": true } }, "outsideSid": "876379b8-36a3-49f1-af05-0de7a1e3b7dc", "id": "256ffc93-2bf8-4372-97d3-b9f88a229370", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI4MjM5MjUxOS1kZDZjLTRhNjktODNmMS03NDkyYzY0NzI2N2UiLAogICJub25jZSIgOiAiYjMyMzk1NmYtMDQ0Ni00NGY5LTk1ODktZjNjODZiYjUyYTgyIiwKICAiY2xpZW50X2lkIiA6ICIxMzExNTYwNi02OWQ1LTQ3ZTYtOGE3Yi04ZWQ2ZjgyZTNiMGEiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.JodGwIPGbqW6R1iB0PmQSTLgFd6gIVWr5Q9t_w06vFilNLX3-ftT8n5PBYhCGh9dgqDcP28aBtHzVjfWSe-feS5wG3BQdBJHwLPR2rKERECAut8-CZfCpAQaV2VE0Nz7dVCTYUN2z2btFXunz1K1P1fMLroi3RKEi2bmxPlsH771Y3Nsgyk8vnPT8d9UlRA05t10A1PzteiD_3PKupmK-JXjsZRQIbogW6NL5cQZlJfRQ1QY3AS-pMhnvpPfZob7aziv3HURuM_zP7LDMqPTrxfQsqm8pKE34lA41oI7YQ87QeQgmD_9HjRf9JUN3zmPMbQMJGTU0lPuvGKOYc9rYg", "opbs": "4c07b8d0-277c-4cda-a016-8c052f173232", "response_type": "token", "session_id": "256ffc93-2bf8-4372-97d3-b9f88a229370", "nonce": "b323956f-0446-44f9-9589-f3c86bb52a82", "client_id": "13115606-69d5-47e6-8a7b-8ed6f82e3b0a", "response_mode": "query.jwt", "sid": "876379b8-36a3-49f1-af05-0de7a1e3b7dc", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "82392519-dd6c-4a69-83f1-7492c647267e", "old_session_id": "4fda0618-3a0c-4730-8247-946be8d373ab" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:30" }, { "isJwt": false, "opbrowserState": "45593775-72b9-4e42-adad-c8709c3a460e", "deletable": true, "dn": "jansId=8916007d-26c7-4868-b720-5edbae1a9f81,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:30", "creationDate": "2022-11-24T09:26:30", "ttl": 0, "sessionState": "7e86f571ce9487b47787f4cc99780a93ae3d0f7202515105e153bc60c53cc677.527b6300-85d0-4589-891e-9853b83a1c34", "lastUsedAt": "2022-11-24T09:26:31", "permissionGrantedMap": { "permissionGranted": { "8f2fbf68-cb9f-41ce-9d6d-343e5742d994": true } }, "outsideSid": "e0b4b860-b959-4e3d-a040-6c3ac7f31438", "id": "8916007d-26c7-4868-b720-5edbae1a9f81", "state": "authenticated", "sessionAttributes": { "opbs": "45593775-72b9-4e42-adad-c8709c3a460e", "response_type": "token id_token", "session_id": "8916007d-26c7-4868-b720-5edbae1a9f81", "nonce": "1552a47b-c516-4a9f-8070-e87770049ab3", "client_id": "8f2fbf68-cb9f-41ce-9d6d-343e5742d994", "response_mode": "query.jwt", "sid": "e0b4b860-b959-4e3d-a040-6c3ac7f31438", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2e27da5e-23ed-4026-9de5-add5ed1dd6b5", "old_session_id": "04fe38cb-8942-4ad0-902d-7b3df479c79d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:30" }, { "isJwt": false, "opbrowserState": "dc379ae5-b0e2-4585-b667-81d1312dcf1d", "deletable": true, "dn": "jansId=43da34d9-8244-456b-8f36-0a7fbae68c6f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:29", "creationDate": "2022-11-24T09:26:28", "ttl": 0, "sessionState": "8a468e45814a0dbf25332e1b00b9b7d215f1e6c8527fdc21036d80642bf3e7a9.ff3d15cc-5725-4065-a0a0-3544ea398259", "lastUsedAt": "2022-11-24T09:26:30", "permissionGrantedMap": { "permissionGranted": { "718fc8fc-f618-4f99-8680-ef691e13b5cf": true } }, "outsideSid": "f19b14b7-ec00-44ab-b90a-b2c7a7471e3f", "id": "43da34d9-8244-456b-8f36-0a7fbae68c6f", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiODVkMDI0NWYtYTM5MC00M2YyLTg1ZWUtMmNmMTlmYmQ1MWMxIiwKICAibm9uY2UiIDogImYwMTM2ZmVkLTZiM2EtNGE3ZC05YmM4LWM1YTE4Nzk0NDU4YyIsCiAgImNsaWVudF9pZCIgOiAiNzE4ZmM4ZmMtZjYxOC00Zjk5LTg2ODAtZWY2OTFlMTNiNWNmIiwKICAicmVzcG9uc2VfbW9kZSIgOiAicXVlcnkuand0Igp9.hTriVLkC8rS1SpqVeh9In5watYTlguSztxxrFg_-vj5YIZpD4kVuoTXnd4IfLq7ASy8evQJENOvMeAcVx1WnMzYWLPV2WC8u1gTEKZewxtGSijXpJKK2PwNK0xJLhXVDT7L0QlEtzt8ltdZtiDKnwHUVYX6r_SPdVI_GsQGIEhGhGV0YToVHsVoZX49rNQJsZXUW2txRYyXU_hybSsEUgw00su93xbrmQKZgYmzGNxtwxGZU49KIHKKTNLoHEdWiEH9NojB17uv-56cmQoqjI4X_EMzHKB_oFwjIYb2RU_MUL_AXS1K498PYJfdN4800PCsqJwYJf7pvKTh5O5S7kQ", "opbs": "dc379ae5-b0e2-4585-b667-81d1312dcf1d", "response_type": "token id_token", "session_id": "43da34d9-8244-456b-8f36-0a7fbae68c6f", "nonce": "f0136fed-6b3a-4a7d-9bc8-c5a18794458c", "client_id": "718fc8fc-f618-4f99-8680-ef691e13b5cf", "response_mode": "query.jwt", "sid": "f19b14b7-ec00-44ab-b90a-b2c7a7471e3f", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "85d0245f-a390-43f2-85ee-2cf19fbd51c1", "old_session_id": "e72ba8db-fff9-4119-aa81-178bb55cb3cf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:28" }, { "isJwt": false, "opbrowserState": "cc67a6f2-9469-4111-aa6f-fce310a5843a", "deletable": true, "dn": "jansId=a92a1836-aff4-4a00-b135-0ab4d7b38652,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:27", "creationDate": "2022-11-24T09:26:26", "ttl": 0, "sessionState": "84a74eb14d4deda7413be6c87f0a0626fbbed6dd35a8cf71a4e85ebcb9d7a9f3.e5b981fd-d4d8-4c1a-9f7f-b79ad6f07d8d", "lastUsedAt": "2022-11-24T09:26:28", "permissionGrantedMap": { "permissionGranted": { "36277ae0-16c2-424e-8b90-344306cf91de": true } }, "outsideSid": "db7d5e0e-b95b-4e3f-89f9-34aed3ca26be", "id": "a92a1836-aff4-4a00-b135-0ab4d7b38652", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiI0Y2E3NjMyMi1mY2ZkLTQyNWQtOTc0ZS0zMjBlNTZmM2U2YjFfZW5jX3JzYS1vYWVwIiwidHlwIjoiand0IiwiZW5jIjoiQTI1NkdDTSIsImFsZyI6IlJTQS1PQUVQIn0.TVBz5VH-mdhkyxwd4duYxZpGpTsbXk47ZFuhS8xziEHVjM5qNV7NboEqEj5X7P4T7lRz7oOpcDgxLUzgNN_xZNv9Wo7mokMCMVWRyPrX0UQVlswRpHp-QP-yULOJNxo0P8JjRXw5ZP6pH1ha2XyLgJZNNFKMIvr-eH8jZVbYjrXtIoXyP7272CcQdkO3VnDlqoCsywNAW07_WvfdPGoNdRo-l8dLGf0Fx7NkxVDWkaPHeWKgaN8kqNWx8oL8lzHZ2gGuXlt4El3q7wRFPSwnrfTWA7NuxDeQVRcnnKVu2g1OxJGCYQADp3-mWdiH-n3WcLTAQ_dCpP_JYzvgXCDC1Q.Yqhnm_H2oLiDsLAi.-TMt-ffYMD2655gGBSgabT8f4eqJB5gRIGHAeHP7w9D34A6iOoOeMophejmq8T4OKgOTtAB-0ydR80Lxu6ugOHi3SwFJt2S3fX2ESGgOCfRvkZPjVmfx7mKVfWzIXRUm7sJPpyzgosgjnxDbnRtLj-AhZOu7fVa2UCklFculbDGRAXbaD5rwfekelEKFIb8X7vzr79kcrS2IUJqwNwwweNUjPaBjIrnzgO8yb_Sdvjq-7aW4ay-T-OXk_PjlXJT0jMUZx1UEOoZruKaRvI8j1K0n7D5eKVwR5V2NjxocnXqzhaeNnlLfwphGS8wPeWxQRavgUUFFRc4b6mAnUiizPz0rAf5O5DTsqIWzFCdivbcRQ1tPiFlngmlusQz9HU8hvE-P7QXg1SdcZ79NolG0YGf93ZNCxH3mXzFROqI84rKJa0vpB-HytA-8gTIKliTHbwJJTg2D2pmqVQHermeNG2V1YzbO6uDp1cDcsBT1QK-siUYbWnsw_mtDUrnQqe0vHWS5g4CXXRPuFk3gy6ndFyZk_cyG8G41XZ8o3ck3EUZcItppdaRPRP_PBA-HCWoivstV1n0pX-fbZK8W-UdyjPFqbekYPAUmgp6nx2QipZICd927aToSbx0tNRG0EWVTq4MtDQNiCgy1tVN_dV7WMhuwpmeVYq31BrV_E9e_-doQA1crlvlPjbW6bb_CA3HMff4jEaUtm6Ja5fI_5SDUtKjEw3zOY8mAlPGDHUWjG9dcPJEFyVtorZHZRZSokUsfQXp4Cm1eC26PZiZtdsUuo-keEYYxxX6WyNTCY9s8uFgWo61XNb5SdMllAHigcAWwQE6V1emvFpOja3uvCPmuDiYcdRZUi6OzbxQIkgEzKZr1pGBmWvJSqxL0ubZBmY2qErOlxv7T94ip9-_ThPJY.VDw0358pJyEu-riZriqAvA", "opbs": "cc67a6f2-9469-4111-aa6f-fce310a5843a", "response_type": "token id_token", "session_id": "a92a1836-aff4-4a00-b135-0ab4d7b38652", "nonce": "9efc3bf0-6126-4de0-a373-55fc65bd2ce1", "client_id": "36277ae0-16c2-424e-8b90-344306cf91de", "response_mode": "query.jwt", "sid": "db7d5e0e-b95b-4e3f-89f9-34aed3ca26be", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "dde0333e-b6ab-4b28-a3cd-4cfb9e20feee", "old_session_id": "ca7338a8-9164-4e2a-869c-aa4f78c315c9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:26" }, { "isJwt": false, "opbrowserState": "8fa4e6f8-62f2-42c2-b415-f26d7e93322d", "deletable": true, "dn": "jansId=3cca7397-8371-4236-8831-23b40bedf1c6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:27", "creationDate": "2022-11-24T09:26:26", "ttl": 0, "sessionState": "b88fe2c90edee82fd8664decd312e6c5c8687e795b0ae2bd32c0af31bb7f792a.aa3bbf5f-4d8e-4635-9e5d-dc0f11f1a1d1", "lastUsedAt": "2022-11-24T09:26:27", "permissionGrantedMap": { "permissionGranted": { "f70f0d84-1de2-465e-9837-a9ae35bf8a2b": true } }, "outsideSid": "894455ea-20e8-4a78-ba90-80f215c9c873", "id": "3cca7397-8371-4236-8831-23b40bedf1c6", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJmODFkNWY4Ny1mZmRjLTRmNWMtODYwNy1jZjJmYzdjNzBkMDUiLAogICJub25jZSIgOiAiYTYyMjY5YWItZDUwZi00ZDllLWI3ZTgtMGQ4MGJhNjJhOWNmIiwKICAiY2xpZW50X2lkIiA6ICJmNzBmMGQ4NC0xZGUyLTQ2NWUtOTgzNy1hOWFlMzViZjhhMmIiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.bSYumHYpGTkY_r7SmdcCijMQOR7OjCGqOEOra1bfhTSgCoLE4vZwqsXo9qojYuMiCRbLwWWCrO9bs-OYbNWciBUnjuDfkWJLR1n63uEiwLUdPFSzZv5PbFwPYbd_4CeK", "opbs": "8fa4e6f8-62f2-42c2-b415-f26d7e93322d", "response_type": "token", "session_id": "3cca7397-8371-4236-8831-23b40bedf1c6", "nonce": "a62269ab-d50f-4d9e-b7e8-0d80ba62a9cf", "client_id": "f70f0d84-1de2-465e-9837-a9ae35bf8a2b", "response_mode": "query.jwt", "sid": "894455ea-20e8-4a78-ba90-80f215c9c873", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f81d5f87-ffdc-4f5c-8607-cf2fc7c70d05", "old_session_id": "8f388988-3af0-498d-8834-7c8788d8362b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:26" }, { "isJwt": false, "opbrowserState": "435d9697-766f-427d-a35e-2f43e81155aa", "deletable": true, "dn": "jansId=4ac25e67-a30f-4000-a112-85fb5157f09f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:26", "creationDate": "2022-11-24T09:26:26", "ttl": 0, "sessionState": "66f559d12d0da9f6a886e6babdca85c52ddd28ef35018287c47b6a0da1faaa1f.fa05b3a5-b08a-4da8-8477-788456707c6a", "lastUsedAt": "2022-11-24T09:26:27", "permissionGrantedMap": { "permissionGranted": { "de8c0928-a12c-4f19-b9be-e09507a2e9d5": true } }, "outsideSid": "ee5a76c1-2faf-473e-829c-383b336723bc", "id": "4ac25e67-a30f-4000-a112-85fb5157f09f", "state": "authenticated", "sessionAttributes": { "opbs": "435d9697-766f-427d-a35e-2f43e81155aa", "response_type": "code token", "session_id": "4ac25e67-a30f-4000-a112-85fb5157f09f", "client_id": "de8c0928-a12c-4f19-b9be-e09507a2e9d5", "response_mode": "query.jwt", "sid": "ee5a76c1-2faf-473e-829c-383b336723bc", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a233d96d-31a5-4e54-a66f-78ab29b146fc", "old_session_id": "ae196617-9ebf-4595-9efc-629ab1169db9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:26" }, { "isJwt": false, "opbrowserState": "0a7f293d-2b2a-4efe-be18-fffd052340ce", "deletable": true, "dn": "jansId=0595fc27-81d1-45a8-8e87-14cb4db19cd4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:24", "creationDate": "2022-11-24T09:26:23", "ttl": 0, "sessionState": "d6414b1d9b2c65c899ecd771232f4d5164f40635b3aebee55c1077489e0535de.308389ca-2520-403d-b6d2-554752cc528e", "lastUsedAt": "2022-11-24T09:26:25", "permissionGrantedMap": { "permissionGranted": { "0d857101-1248-418f-8d2c-2c73eb7f9194": true } }, "outsideSid": "2b6cb346-7f16-4076-b5b1-5c2314eeacf8", "id": "0595fc27-81d1-45a8-8e87-14cb4db19cd4", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI1YzcwNzdmYy04MTIwLTRmNDYtOTY2Yi1jZjQwZDc2ZGE4NTYiLAogICJub25jZSIgOiAiMzMxYWM5MWEtNTE4Mi00MDk0LTg2MGEtY2RiZmNiNTVmNDkzIiwKICAiY2xpZW50X2lkIiA6ICIwZDg1NzEwMS0xMjQ4LTQxOGYtOGQyYy0yYzczZWI3ZjkxOTQiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.xi1MQ7O9407rBbPFJ6pT59dRK4oG4UJRKwH44rvbZagsm9PdjfEMnBGlAWQ9X4SZNVcO5KqG1JD4Dlojr-mFXQ", "opbs": "0a7f293d-2b2a-4efe-be18-fffd052340ce", "response_type": "token", "session_id": "0595fc27-81d1-45a8-8e87-14cb4db19cd4", "nonce": "331ac91a-5182-4094-860a-cdbfcb55f493", "client_id": "0d857101-1248-418f-8d2c-2c73eb7f9194", "response_mode": "query.jwt", "sid": "2b6cb346-7f16-4076-b5b1-5c2314eeacf8", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5c7077fc-8120-4f46-966b-cf40d76da856", "old_session_id": "0421e90d-8043-4b38-83c1-17984a043450" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:23" }, { "isJwt": false, "opbrowserState": "7e006836-90e1-4ddd-bf70-c7703a833bdf", "deletable": true, "dn": "jansId=46177bff-6180-4708-ac90-5af55daf308a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:24", "creationDate": "2022-11-24T09:26:23", "ttl": 0, "sessionState": "8817cc196d1ef233a25e90a1ddaad3a3c83f876607f8c5b173c7625f9498bdf0.7a8e7a48-4cd3-458e-8789-4d60e956220c", "lastUsedAt": "2022-11-24T09:26:25", "permissionGrantedMap": { "permissionGranted": { "f3517905-8eba-4132-86da-6112ca13886b": true } }, "outsideSid": "a150e7ab-94d0-4bfe-914c-2f15ef957456", "id": "46177bff-6180-4708-ac90-5af55daf308a", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkEyNTZDQkMrSFM1MTIiLCJhbGciOiJSU0ExXzUifQ.OnTXpY6U1mswumqfJw0vSRrH0K81qZmfXOZl6MvPJQihuHAe6LsmZOHMk5NrJ54GLwBGYETAaG5TXNmb3pbvsXQCbDxkR_LpdszZUnxOHgb3NPcTUQAHBTPN_QYepdqbg7iVP-GFwEVqWVcM8zBPMN2DvA10AdHN8mCosm1MZX_TuvDCVieUonYsI05gmjzpY86r6xdqCo1CoZLJJQSju5tUSYm6XG3VOKNU28hCVEfnhAWdBVIuNcGpp7pB8f3DLmO_uQ9RqLCVwbnrGv2csWhdmFUWB64uJHBbjlINvsJp3wlR8Ys--nl4fc-GfxvNrSaNqiYJz4OsKQALqDqdFQ.UlFT6KZ5g1BdYnjfIpN_ng.7uybV80g2misMD9zKm5L70ymZZXtBEQ-ICwEafpxwjtbWje_xfnbGcs25xsdZuTjbFJaSOw3_IJEeZkzbS4d3brQNmVew9xwVcRuJ325fwntk5iQ5gTRgq_7aE-tVWoMNYFWXANVpdnxUOvZiKCNb-tB2cXZpEtPpKk86EqGnZPG5WQRIR4yB6dHMbzRMLorcJaNmPLQljdTjEzomwozGRUfz8AGDk6kmUL8cgs8Bs4piMElGiIl0_oni5jYKLHtQi5Dvrv9VUwoxy2wjAZoh_Fi0P1upOj0INWHTz1Rd2htkRqeN8r8Yt5pbbIRcG5cbdU0ug2Xf2iAmq1TkV-hzzKXryXeGXLsrUAWnrbWUbf4s5O6L58g1PD6VNHBeeGFI0cCVkeeiQhKFuh42KqVxr9VRqSQOLuLvyBOBMAgLvmJLqBNAZPBP3krvIgWC1S7aPOe1YJ1E-_-5TKvDvXO6cM5OMf8Q1KX2esTST5efk1Y9w1I-D55iS8vZeecf8g5CeebWd4nrZGlMcFhhoL-zUztvmi5Sr9lJUb_Lsyz-JZ8jZPT7E8BRijacnBKeHu8l-CvTnpZgcmNd5rbLChGI3zYXfNbxqxmN2gO6hSuQ8ASm-1ii3D1hu4ma_GTJ3Le3KqeTVvZWCWHZQhCNFw3pobKwhSfQg7JcYF6OrguDLtdWdGjmw8s_b27oYqYXAl-UgKV1oJug8Ll3wdFEscqWtI0lUNz4g_BlOWSKtd8HfLIYSa8rqyAPiWlwpeqd4pGcMnXLMcPcMjroGip2msGbEd-bRbnWWndzkBsfjbbmI1L9PxYA_n5wufc4HcicrChRtALkzB3ZeK2cx7l1uTfEbcwD_ZqltPidqBv56NjN8FzTrhSo6mEu8luTWQgh9A-tB_l_3o7NvoGy9KqrcTKfg.AA_kqOHAlgR_umC9VfKdaXenztSxnusN6B7VA0gD0UC9L00YjNZp6dC1671oBQzydcXqlVPSVbSsvBD3LMmE7w", "opbs": "7e006836-90e1-4ddd-bf70-c7703a833bdf", "response_type": "token id_token", "session_id": "46177bff-6180-4708-ac90-5af55daf308a", "nonce": "eff6de7f-7708-4412-948c-7ad2c245ef59", "client_id": "f3517905-8eba-4132-86da-6112ca13886b", "response_mode": "query.jwt", "sid": "a150e7ab-94d0-4bfe-914c-2f15ef957456", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "45a9e433-b126-45c4-aa15-43dac17c7885", "old_session_id": "9adf7501-85aa-4a61-a295-2665a463449c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:23" }, { "isJwt": false, "opbrowserState": "ba61305d-515e-4ec9-8183-f99ed259f499", "deletable": true, "dn": "jansId=8f6fcef3-8d45-41f0-84e8-24d01ccf699f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:24", "creationDate": "2022-11-24T09:26:23", "ttl": 0, "sessionState": "4d353a62b972266ccd8ff2c32b4df8a2fa93892a4f3fba6b54fe992afb982883.963f4ad2-0ca8-4c11-90a7-8e02ac87d4db", "lastUsedAt": "2022-11-24T09:26:25", "permissionGrantedMap": { "permissionGranted": { "1efa8fee-ccbf-48d7-8eed-a505942b73ae": true } }, "outsideSid": "5d987007-e421-47bd-a0d8-eebe60df1929", "id": "8f6fcef3-8d45-41f0-84e8-24d01ccf699f", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiYzYwMjliM2YtOTVjMS00ODJmLTk5NjQtNTIxOWIwZDNmMTg0IiwKICAibm9uY2UiIDogImYxMzNjYWVmLTZkNzgtNDVhNC1iZGM3LTA4ZGM4OWMwMmU1MiIsCiAgImNsaWVudF9pZCIgOiAiMWVmYThmZWUtY2NiZi00OGQ3LThlZWQtYTUwNTk0MmI3M2FlIiwKICAicmVzcG9uc2VfbW9kZSIgOiAicXVlcnkuand0Igp9.FX3Rfv53V4P69iMce6UyLntLH88m4y5C1NXtgzhjFuUvFwj5MQ0VlfJ1_x8uz5TD6cee1xg0RR9dDB0p0K9g9PxNfWQY5mv3WoPjxCSvbz9HUEVZbTermzYM-tatcyK-33zVBFgzqR6sHLf7KALX98PILdeNUZWgkO2JXHqj1HltT8sW51uN-QexlnjMWW_MfssQ5bfiDp01ME5OQlcqru-nhNo2cVjAm5nRmAw0AnLVu0nNuUqtRLsIDI9mqpHaHy3se4DOyjBfhhW2KoU4IRqe01uS-Z4AJYNaHmiJNWQ-uU4lLuhIOeVgwsNmgyGhg0ko8XS279EQ6g-0QTlKZQ", "opbs": "ba61305d-515e-4ec9-8183-f99ed259f499", "response_type": "token id_token", "session_id": "8f6fcef3-8d45-41f0-84e8-24d01ccf699f", "nonce": "f133caef-6d78-45a4-bdc7-08dc89c02e52", "client_id": "1efa8fee-ccbf-48d7-8eed-a505942b73ae", "response_mode": "query.jwt", "sid": "5d987007-e421-47bd-a0d8-eebe60df1929", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c6029b3f-95c1-482f-9964-5219b0d3f184", "old_session_id": "f52dd705-9323-44d9-9849-2bbbf658bb2f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:23" }, { "isJwt": false, "opbrowserState": "e2ccbff2-6cc9-4a6a-8a93-0debe2ca9b8e", "deletable": true, "dn": "jansId=96fd5a11-baad-4794-baa5-a7e10696d841,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:23", "creationDate": "2022-11-24T09:26:22", "ttl": 0, "sessionState": "a196c60650b4ea5e4e5a3536b7369722f3da357bb1a4f86ed45a508622df9382.3f4d8f0f-c911-4ba4-a171-611bb01c63a5", "lastUsedAt": "2022-11-24T09:26:23", "permissionGrantedMap": { "permissionGranted": { "2c78cf83-6fa2-4eff-abd4-f74fd995fff1": true } }, "outsideSid": "a91517b0-5aa2-4713-a9e5-0cc23ac8415d", "id": "96fd5a11-baad-4794-baa5-a7e10696d841", "state": "authenticated", "sessionAttributes": { "opbs": "e2ccbff2-6cc9-4a6a-8a93-0debe2ca9b8e", "response_type": "code token", "session_id": "96fd5a11-baad-4794-baa5-a7e10696d841", "client_id": "2c78cf83-6fa2-4eff-abd4-f74fd995fff1", "response_mode": "query.jwt", "sid": "a91517b0-5aa2-4713-a9e5-0cc23ac8415d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "71df2faf-56b3-47cb-bd4d-fba5a7f7205d", "old_session_id": "10c4c962-af23-4c8d-9445-8c0f8a1e4ec9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:22" }, { "isJwt": false, "opbrowserState": "bd9b426d-2999-43cc-b330-330066a2a6cb", "deletable": true, "dn": "jansId=3e6d66a7-f62d-4c9e-92b3-5f23ec7a9ac0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:21", "creationDate": "2022-11-24T09:26:20", "ttl": 0, "sessionState": "03ddd6ed6fafcde7bf1409185df115f0a4a400a8774c4c6548d40a4986c9fb2a.7e89f8b0-bce0-4592-be73-1180f7b5cf5f", "lastUsedAt": "2022-11-24T09:26:22", "permissionGrantedMap": { "permissionGranted": { "e3182d26-e294-47c2-97fb-546f5b06bea1": true } }, "outsideSid": "1f5e21a4-866d-43d8-8a17-acd85cee62b8", "id": "3e6d66a7-f62d-4c9e-92b3-5f23ec7a9ac0", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiYzU2OTI2ZGYtMjMyMi00YmZmLWIwZjQtNTY3N2Y4ZDk5NDcwIiwKICAibm9uY2UiIDogImRlNzVhYzkxLTRjOGQtNDYyZC05YjVjLWMyMDkzOWY2NDU5YyIsCiAgImNsaWVudF9pZCIgOiAiZTMxODJkMjYtZTI5NC00N2MyLTk3ZmItNTQ2ZjViMDZiZWExIiwKICAicmVzcG9uc2VfbW9kZSIgOiAicXVlcnkuand0Igp9.BMTQMdkcJpuC8gDrXryaGGGugRdhrs7py7UlPzbeZw8OkAs0OcuydSapL5P5451KkR7bLnlyNV1iAu5DkJ9t9FPQ70f53jYfMh6kng_6ycgM8cNoWTs006xX33wnSTET8Itpxu9KmwhWnz3ZabeGzO6b7hJDro4kzDFZehAQCyECvv29GTrFXt3Fei_B5zLJINA3cuNqWsAPpwbqY9HQYJaMZsCpqfocl042f2tfGHJ81jFe2ABDc6f_3t7vZG8_L1GEdRIoFQtRNwoJw1bM2d6LwUzRtgZ-DQqOXQuII6eqDevVxKSc8QCAKLF4jQ1gU0UCFKbJd-6firgn1YxyUQ", "opbs": "bd9b426d-2999-43cc-b330-330066a2a6cb", "response_type": "token id_token", "session_id": "3e6d66a7-f62d-4c9e-92b3-5f23ec7a9ac0", "nonce": "de75ac91-4c8d-462d-9b5c-c20939f6459c", "client_id": "e3182d26-e294-47c2-97fb-546f5b06bea1", "response_mode": "query.jwt", "sid": "1f5e21a4-866d-43d8-8a17-acd85cee62b8", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c56926df-2322-4bff-b0f4-5677f8d99470", "old_session_id": "7a32ccfa-3ead-478f-94f1-d0b1c99e3337" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:20" }, { "isJwt": false, "opbrowserState": "b3ab8c6e-edab-4c76-9434-107d237ba565", "deletable": true, "dn": "jansId=a09cac21-5c00-43eb-9fd7-ba1b382dd110,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:21", "creationDate": "2022-11-24T09:26:20", "ttl": 0, "sessionState": "adc1df48c472f3e1110a065446d91118278e645df5f6e92b160de4397da8af0f.1fee139a-9a62-4bab-87fd-c06b2503745f", "lastUsedAt": "2022-11-24T09:26:23", "permissionGrantedMap": { "permissionGranted": { "0e9fc8f0-e53d-4aaf-9e1d-4e861a1a239c": true } }, "outsideSid": "7a9bbc3d-3256-4843-a7a9-43c43157438c", "id": "a09cac21-5c00-43eb-9fd7-ba1b382dd110", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.dM8pyQrLT1_PC4KqsRPucUmOjGjg3w4W7cZFt5H-JuHIskBeE_V8GG9WO5On4-X9SEbeuLHzyB6M7KV1J2aiipVI2cSvdkrpH_80THobNUlmncNe2p7Py70h2LM0EFcGTxPFeuSyBJLsq_k7JkhJaKxyPlh_FT68IkhV92XsGogPyxwtTkVI6uVGaga7kvl1lpppx90f7B49WuRNYBrLLy0jDKyAZ-zPf3Gw66jGhZHdAoTMPCeclOvR5KsWlwr0Bbak8SuuGjSW-3u5IvvaAArK_imY1sA4fnKK1mHvzmEMf9rcSwpkiZq46d_IK6ojjMnM9RTdegulNp0xnEQ2yQ.GVPybzECjc1ZtpWRt6GgSQ.1dXEOVb7xtWacg812GRp5wj8Zz3tLUEjSRdbfeP9md-ZN-QdhpDAmdOmT1fraTmziExkR0qQPG7R5LOwt-E28RnhCzI2SENeib1LcyK_uwrShSSDTREFV7QOKUC-My9JdyIJAhWG-pw1v_QRDKTr910cwK7uvB9ZmSBHoog9SiPiCUvcgMDu6fG8e_npJ4vMYCLKHC52j_Qf0uGUxsS6Jc3h190IyUnvhfFjiZsdg9c37u_xZYmwERq4vT4HToeFtL7JBZFKPj8IsIlXfnWWG78ZIa51XEEGiQ0MZbWghYlQVgp_CjbZDE2d7IY_jimOEIEdvu7L9C1X4Vcl2kjJhWIAnWl6zLFb7R-8gJQQmRuPgbcvXoF9ZvIZL6vX-Zj-HPEgLvriPD6lyqcKsuqniHgdgL_nApfVfYHBfp0VAYi_cBSV6f3S9sGFy1g696XLmOumqvYbx0XUdZmGCgCdD9gAzmwj9bH6IOJhnoU3kx00lBj7kfFO2PZXdkMqJXhEOGrqaQUD4VyfRDSKx4lnsXXH4k0L4J6A3pQ4suyyoBS3fB4EkEI78s9t59c5WkwuCvT5qOnuiW5tnwpQ5jhb4fqDmnvWvSPhhlOhNBfHxcYP9NQn0vno4G6W1zqJz3D0lW3yZredTwEDbJXlzZOIGwRBW9Yf_gjIdGs6lGQ3DEzh_mLulBuT0ZDLMGVhtLUlN9zrs7ZYykg9BjChwgf79IsysIhPcydIZLAKyD6YEgKfA5UTpg87c2Hen9cA-LCC8yT1epIOyR-PAGQWfdFwgLfRagDNcMWwQutNyFGNh9F-2kulDuWxvYvRttpHUrMIiq2lOSyRGlCQsM6FKzDHw6q5HXDpMJuE1l8FrhYkzug37zjVJz7C1ELG4HRKwsCJHd4AzdUSoO9Kqus8zA9Y8w.C36gJBKfLQWGMydWTmItjrdJVsGUhNC6rWyDDZWqwdo", "opbs": "b3ab8c6e-edab-4c76-9434-107d237ba565", "response_type": "token id_token", "session_id": "a09cac21-5c00-43eb-9fd7-ba1b382dd110", "nonce": "2172cd9c-8466-4e50-93b8-5b47fdc30081", "client_id": "0e9fc8f0-e53d-4aaf-9e1d-4e861a1a239c", "response_mode": "query.jwt", "sid": "7a9bbc3d-3256-4843-a7a9-43c43157438c", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "24ce9000-68a8-40f2-944c-2ca64d11435b", "old_session_id": "6cf079ab-9d13-44fe-a981-7399f93a8214" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:20" }, { "isJwt": false, "opbrowserState": "ce3ab1b0-33d2-4057-8bd2-639a1c704f7f", "deletable": true, "dn": "jansId=02053040-0095-4121-91e6-fae522ba789c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:20", "creationDate": "2022-11-24T09:26:19", "ttl": 0, "sessionState": "5103ca9d46b79f16742693a347d8f323ffdb6c58a9bcc4f4d7e964a23623a406.e88a4f53-27c1-4bb5-9925-3d68abbc1750", "lastUsedAt": "2022-11-24T09:26:21", "permissionGrantedMap": { "permissionGranted": { "711ec804-b871-497e-a742-f092767f9da6": true } }, "outsideSid": "c7f5d139-5ea5-47f3-b9b5-0733fd93363a", "id": "02053040-0095-4121-91e6-fae522ba789c", "state": "authenticated", "sessionAttributes": { "opbs": "ce3ab1b0-33d2-4057-8bd2-639a1c704f7f", "response_type": "token", "session_id": "02053040-0095-4121-91e6-fae522ba789c", "nonce": "65c34deb-caa9-4ad4-9860-fe58411432a6", "client_id": "711ec804-b871-497e-a742-f092767f9da6", "response_mode": "query.jwt", "sid": "c7f5d139-5ea5-47f3-b9b5-0733fd93363a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "dff3f7a9-7abe-419c-881f-97bccb039bf0", "old_session_id": "4c835035-e828-44db-929a-c45fdea2ac0c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:19" }, { "isJwt": false, "opbrowserState": "287486a7-37c9-4d0b-bff2-f812a8473502", "deletable": true, "dn": "jansId=7cc3e2ab-4874-4099-aa3a-be4200503f31,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:19", "creationDate": "2022-11-24T09:26:18", "ttl": 0, "sessionState": "0cd8985ed1ecc8235a870968b8d5c640c60b5275f516735886fe79c52d28e24e.cb69b50c-815a-4fd8-afb3-c134909369e2", "lastUsedAt": "2022-11-24T09:26:20", "permissionGrantedMap": { "permissionGranted": { "d8f83979-8471-4cd6-92af-af915f3eac32": true } }, "outsideSid": "45959913-13ff-42f7-88f3-418fdd4fa5cb", "id": "7cc3e2ab-4874-4099-aa3a-be4200503f31", "state": "authenticated", "sessionAttributes": { "opbs": "287486a7-37c9-4d0b-bff2-f812a8473502", "response_type": "code token", "session_id": "7cc3e2ab-4874-4099-aa3a-be4200503f31", "client_id": "d8f83979-8471-4cd6-92af-af915f3eac32", "response_mode": "query.jwt", "sid": "45959913-13ff-42f7-88f3-418fdd4fa5cb", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "125a6eea-d9d4-4ae2-9937-4037fcf08aca", "old_session_id": "25bf904a-28b2-42eb-b312-f025a85178d1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:18" }, { "isJwt": false, "opbrowserState": "9381933d-ecab-4cb2-89e0-bc2e1a664f97", "deletable": true, "dn": "jansId=35eca267-7e98-4c00-bdb5-588db089c1a9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:19", "creationDate": "2022-11-24T09:26:18", "ttl": 0, "sessionState": "b7f91b094e4c216ab4cb196198f5925462942469376e566acb0f84a6491a0fd3.f82c80d6-d04c-460f-ab6b-c024695e2539", "lastUsedAt": "2022-11-24T09:26:20", "permissionGrantedMap": { "permissionGranted": { "df032745-fbe9-48e8-a260-f47c934e5f6b": true } }, "outsideSid": "9c21f562-af9d-437f-a088-23fb4c3fce7d", "id": "35eca267-7e98-4c00-bdb5-588db089c1a9", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiNzk0YmUxYWUtM2QxNy00ZTZkLWJkZjMtNDc4MzcwNGYzM2EzIiwKICAibm9uY2UiIDogIjgyM2JiMTVhLWVlMTItNDQyZC1iN2RmLWRjZTY5ZjhlOGU2YyIsCiAgImNsaWVudF9pZCIgOiAiZGYwMzI3NDUtZmJlOS00OGU4LWEyNjAtZjQ3YzkzNGU1ZjZiIiwKICAicmVzcG9uc2VfbW9kZSIgOiAicXVlcnkuand0Igp9.AZYlrAWJW1vCAqMvB9ijMqgWucBu6crJz8fkeFZFHsTaDRv33IJCkP3XvvU0bNcT6k-xt3Q6bRrLGEp2Gm6rUtoLAOP2s_-QXpeeLtRTsShcHtYqbcs852yHbfnx0OaGeCQ8IwY-bRDDDn0x6gcPVko4PiiRO5Kcwv-zh-LvEuKLNcz5", "opbs": "9381933d-ecab-4cb2-89e0-bc2e1a664f97", "response_type": "token id_token", "session_id": "35eca267-7e98-4c00-bdb5-588db089c1a9", "nonce": "823bb15a-ee12-442d-b7df-dce69f8e8e6c", "client_id": "df032745-fbe9-48e8-a260-f47c934e5f6b", "response_mode": "query.jwt", "sid": "9c21f562-af9d-437f-a088-23fb4c3fce7d", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "794be1ae-3d17-4e6d-bdf3-4783704f33a3", "old_session_id": "31ba3b39-5eee-45c9-a032-c10d760662d6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:18" }, { "isJwt": false, "opbrowserState": "dfbd4706-0c86-4b98-8f45-3245ee568419", "deletable": true, "dn": "jansId=4494b1b7-e8d0-4d08-9114-d3525ada0d90,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:19", "creationDate": "2022-11-24T09:26:18", "ttl": 0, "sessionState": "f0f2ea4060028f3ae84c79d4a3edfd3d8e4f6c24a69dfc1778394de5fd9374a2.64c43201-74cb-4311-805e-f80567f0cbfa", "lastUsedAt": "2022-11-24T09:26:20", "permissionGrantedMap": { "permissionGranted": { "eaf189bd-dec9-4e67-83fa-0b6201f4bb9c": true } }, "outsideSid": "7bb737d8-efbe-459a-8a84-cb7666eb09bd", "id": "4494b1b7-e8d0-4d08-9114-d3525ada0d90", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.3Zm2ALyOQvIr5iuA7BlmfI3Q_Vm8RfTDE5okECIhitykqwC8e9SoYA.k7vQaqCIdct1lq4b.0UyDfzqiKUgUofbtc8z6rANkT1LEruXZsUSjEPcpIrpJB-WKMcweS9ePtftksHiPvA-A3aYnfAOW62puhqk0fdP0rYSnaQtenz3O6Z0NR2FGTDqXZEkHKPlMDYjegCodncqGz5A63Bc33r-YR1SUeywBTeZbGWgnEb3ol-OlHvF0SJUCH6Zn-Wvfk4u8kOcGT_POIiY3RqDYR44-3g9MrRgDk8vXKdZl-KMR4tKamMK8OxqHFYqHlNYAP6zM3K8_sJoUvWqry0Je0Q4qR5rFuqXPpHofwTOqwA-TZKffnKc2zPMpKVWh0nDR9ZR98Pol4G428TXRt-Q4UbzyPYG0xxOKcKf8kUiAv5fJsK5qiQQK37zvbAP1ziSpmpBQKw0QtF937KI2JyfQjn8MZS9Uzpk_Tm8agZXle_QaxDv39nvwV5S6Fg2lWGf3z69MCwyOIFf3tLSZEhxGNNY-v1KbxCbdg62qfjfLEI5HtUQalrvSBk-_5zLjE33ssCJx1YaxQLZippCZ6bRYNDcyPYwl2fjwKFomgL-WidK9P3NGSKQ91rpT6E-QVNX2kkA63OYZRHt8MlCxSSYed-ogKZamouMnG0iw3xPiMSxPFN5jtLB0tSLTJ-GcGZ4HpTkcdMCdXRydFj8O9KGTl19M0QNexZH8tKr221mulQnu8GluFApE7yE-HtNIRDFWyRDsAsQoPGrxZX0S0PdU-6pyCoKvCTJkJW0wUzqsLSabtVTFSl08nwkhqv05KY7cept6br8Z1LIMfnnjkpZL58PKt80BL8P8zrH3D-RNSwSZh14kC1e19DElSv2s38VKqP_zfC446vkxD0qQcI6uMCCzoqrjQpYNZFyRYC7LopBi1lLJQs9I3gsxyav_1Y0Y3njJ8oQNnUl3WHASgpXp6N_echs9.LTcY8iSe_ULSpWqMZRViNw", "opbs": "dfbd4706-0c86-4b98-8f45-3245ee568419", "response_type": "token id_token", "session_id": "4494b1b7-e8d0-4d08-9114-d3525ada0d90", "nonce": "c8c99e40-0b63-4e41-972d-9975792e75ae", "client_id": "eaf189bd-dec9-4e67-83fa-0b6201f4bb9c", "response_mode": "query.jwt", "sid": "7bb737d8-efbe-459a-8a84-cb7666eb09bd", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b3c2104d-8c6d-40c0-80a3-97d7a2ef2f7f", "old_session_id": "ff72fe20-ed21-48f8-b65b-f1f62fca6136" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:18" }, { "isJwt": false, "opbrowserState": "bd4fb7e3-c247-4b12-a117-7229f4ec1d0a", "deletable": true, "dn": "jansId=96754deb-eb41-4162-8592-e1c8315e6b8a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:18", "creationDate": "2022-11-24T09:26:17", "ttl": 0, "sessionState": "2700a5e24d285d15b89287e72e3f4eda4225161d37694bb0fb62568d2e8289b5.73703425-d2e8-4a6d-aac3-26253e4adac0", "lastUsedAt": "2022-11-24T09:26:19", "permissionGrantedMap": { "permissionGranted": { "3ca8883a-506d-4905-97ae-de533b9389ce": true } }, "outsideSid": "5e48fd3f-d6d2-4abe-8719-57b6b403df94", "id": "96754deb-eb41-4162-8592-e1c8315e6b8a", "state": "authenticated", "sessionAttributes": { "opbs": "bd4fb7e3-c247-4b12-a117-7229f4ec1d0a", "response_type": "token", "session_id": "96754deb-eb41-4162-8592-e1c8315e6b8a", "nonce": "ed4abee6-23e8-4130-96a1-e5a11ca5b23b", "client_id": "3ca8883a-506d-4905-97ae-de533b9389ce", "response_mode": "query.jwt", "sid": "5e48fd3f-d6d2-4abe-8719-57b6b403df94", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "87058b83-cd62-4c26-9990-df52f2fafcae", "old_session_id": "fde30d4a-5349-4d47-ae85-395b23d8d8f7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:17" }, { "isJwt": false, "opbrowserState": "710da932-b256-41cc-8e63-b423908ef790", "deletable": true, "dn": "jansId=524a58fa-8ce3-4de6-bd46-415d082aed77,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:17", "creationDate": "2022-11-24T09:26:16", "ttl": 0, "sessionState": "90ef5de7b56164e71726cdd1127457ca339cf08313fbee3f99e2c8d6c05199e9.cc29a15f-c553-4892-a3c8-66c83d141374", "lastUsedAt": "2022-11-24T09:26:17", "permissionGrantedMap": { "permissionGranted": { "4abe8520-108c-4774-b21e-da3a5218609d": true } }, "outsideSid": "62627ff3-efa6-453c-8ab4-db25952d3ac9", "id": "524a58fa-8ce3-4de6-bd46-415d082aed77", "state": "authenticated", "sessionAttributes": { "opbs": "710da932-b256-41cc-8e63-b423908ef790", "response_type": "code token", "session_id": "524a58fa-8ce3-4de6-bd46-415d082aed77", "client_id": "4abe8520-108c-4774-b21e-da3a5218609d", "response_mode": "query.jwt", "sid": "62627ff3-efa6-453c-8ab4-db25952d3ac9", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e3ac6411-ce40-41d3-ae5a-0122c12cf002", "old_session_id": "d1e0e006-9091-45f9-bfbd-6b991a129af5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:16" }, { "isJwt": false, "opbrowserState": "86863cde-6230-480d-8fd0-faa5c9ce59fb", "deletable": true, "dn": "jansId=96c29fc3-42ca-4bc9-ad5d-37f0c8f66703,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:16", "creationDate": "2022-11-24T09:26:15", "ttl": 0, "sessionState": "a79ed3d1c7ec04978d97f65d08ab239895fd9f82ca714253186a68be3cbff40e.39acd090-8cb5-4318-9fad-75c5764bf013", "lastUsedAt": "2022-11-24T09:26:17", "permissionGrantedMap": { "permissionGranted": { "240503b9-4870-4523-850e-e78927913184": true } }, "outsideSid": "8a898313-b11a-4829-ba3c-325062357ad9", "id": "96c29fc3-42ca-4bc9-ad5d-37f0c8f66703", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiNzU5NzcxNWEtYjMyZi00NDZlLTk2YzgtYzgwMzUzMjVlODA3IiwKICAibm9uY2UiIDogIjA2N2UzNjQwLWE0NGQtNDFmOS1hYzJjLThjYzlhMjYwZjRlNSIsCiAgImNsaWVudF9pZCIgOiAiMjQwNTAzYjktNDg3MC00NTIzLTg1MGUtZTc4OTI3OTEzMTg0IiwKICAicmVzcG9uc2VfbW9kZSIgOiAicXVlcnkuand0Igp9.vyojOgOd0I9XAc_U_0yqts-rFN9pNdS_qeBTfe5eB3kuJ-Dv7-K2Um65RoKRPrO6Y-_iRqAPgc8-c0VvSa4xjBjemGTa1JnE8KRj2LqZFMKpOf4jHEBZOMDlj61vc__o", "opbs": "86863cde-6230-480d-8fd0-faa5c9ce59fb", "response_type": "token id_token", "session_id": "96c29fc3-42ca-4bc9-ad5d-37f0c8f66703", "nonce": "067e3640-a44d-41f9-ac2c-8cc9a260f4e5", "client_id": "240503b9-4870-4523-850e-e78927913184", "response_mode": "query.jwt", "sid": "8a898313-b11a-4829-ba3c-325062357ad9", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7597715a-b32f-446e-96c8-c8035325e807", "old_session_id": "96d4c3b0-a509-4418-9718-0cffac90a92f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:15" }, { "isJwt": false, "opbrowserState": "c18212a4-bd93-4ac9-8906-658d0f009dea", "deletable": true, "dn": "jansId=7fdc263d-f071-40e1-a203-c19c1db1e9b6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:15", "creationDate": "2022-11-24T09:26:14", "ttl": 0, "sessionState": "f7940e33ca480d21d2bbd44dd22dab6b6a160234016d6441d3d980774698e351.6bed2d5b-9611-4caf-96f3-a85c925bcd1d", "lastUsedAt": "2022-11-24T09:26:16", "permissionGrantedMap": { "permissionGranted": { "8319a694-bd24-447e-aeb4-d74bead5399d": true } }, "outsideSid": "fa3d7dd1-3141-4403-af8a-ccf745d5eb96", "id": "7fdc263d-f071-40e1-a203-c19c1db1e9b6", "state": "authenticated", "sessionAttributes": { "opbs": "c18212a4-bd93-4ac9-8906-658d0f009dea", "response_type": "token", "session_id": "7fdc263d-f071-40e1-a203-c19c1db1e9b6", "nonce": "3969da2a-7bc8-4029-9069-e89cdbcdbdfe", "client_id": "8319a694-bd24-447e-aeb4-d74bead5399d", "response_mode": "query.jwt", "sid": "fa3d7dd1-3141-4403-af8a-ccf745d5eb96", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "81bfbe67-307d-44c5-81d9-153ea308075b", "old_session_id": "aae65efd-de9f-4d16-8fae-34714757b074" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:14" }, { "isJwt": false, "opbrowserState": "9f40663a-b2b8-4e46-a3e9-f7703642efb3", "deletable": true, "dn": "jansId=b1062261-cf11-4554-90d0-9a046824e9ae,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:14", "creationDate": "2022-11-24T09:26:13", "ttl": 0, "sessionState": "89bd88c59dce98ab6d643a59397ecba91a8a10a2966cac6ba5cd7986436d2d2a.ffbfd879-1dbc-40a3-93f4-a06f57e0f028", "lastUsedAt": "2022-11-24T09:26:15", "permissionGrantedMap": { "permissionGranted": { "42b53de0-1580-460d-82f2-23b202cdd48e": true } }, "outsideSid": "323ae85b-3d1e-4812-afa4-e84657ef215a", "id": "b1062261-cf11-4554-90d0-9a046824e9ae", "state": "authenticated", "sessionAttributes": { "opbs": "9f40663a-b2b8-4e46-a3e9-f7703642efb3", "response_type": "code", "session_id": "b1062261-cf11-4554-90d0-9a046824e9ae", "client_id": "42b53de0-1580-460d-82f2-23b202cdd48e", "response_mode": "query.jwt", "sid": "323ae85b-3d1e-4812-afa4-e84657ef215a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2aee5564-8f9d-4a3d-9ee7-d455cfc9a5b9", "old_session_id": "e08ce216-c638-4397-887f-5f2516f98411" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:13" }, { "isJwt": false, "opbrowserState": "d994cfb3-f14d-4f04-a6d5-279daab95fa2", "deletable": true, "dn": "jansId=0a6a5816-5b9a-4d6d-bfc7-dcf15ebf07fa,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:13", "creationDate": "2022-11-24T09:26:12", "ttl": 0, "sessionState": "a18a5433961e9445e1cc841eec6cb3a492612f2b9f1e3c27f0306b6aa68135e0.246c4440-2a2d-4459-a950-cfdf4bb31443", "lastUsedAt": "2022-11-24T09:26:14", "permissionGrantedMap": { "permissionGranted": { "4bffb233-8f6e-4840-91e7-3a3fe42bcd4a": true } }, "outsideSid": "ba1286e0-14f7-442b-acdf-507c3f1dba3a", "id": "0a6a5816-5b9a-4d6d-bfc7-dcf15ebf07fa", "state": "authenticated", "sessionAttributes": { "opbs": "d994cfb3-f14d-4f04-a6d5-279daab95fa2", "response_type": "token", "session_id": "0a6a5816-5b9a-4d6d-bfc7-dcf15ebf07fa", "nonce": "376e9be6-5aff-44b7-903d-5dc983c0d35f", "client_id": "4bffb233-8f6e-4840-91e7-3a3fe42bcd4a", "response_mode": "query.jwt", "sid": "ba1286e0-14f7-442b-acdf-507c3f1dba3a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "eda68548-5ce3-4138-abdf-2fe97ac26fb6", "old_session_id": "bc8ab6a7-bc4c-4c74-a6a6-130e57e279ab" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:12" }, { "isJwt": false, "opbrowserState": "b58a70ed-559c-44f2-b12b-ffbb18ddb17b", "deletable": true, "dn": "jansId=70133b13-3e2d-4fdf-8f3b-0aeca168fd89,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:12", "creationDate": "2022-11-24T09:26:11", "ttl": 0, "sessionState": "1e12b62870aae2309ba0e58a4d2131a5cab62165e2323bf6307911cc588d6cbb.5adc006e-a19a-4ae6-9d2e-4836ef21749e", "lastUsedAt": "2022-11-24T09:26:13", "permissionGrantedMap": { "permissionGranted": { "022683be-9bc4-4a9a-be74-58f04cdbd247": true } }, "outsideSid": "a6ca9ffe-26e5-4e8e-9bb8-fa6399cd2d75", "id": "70133b13-3e2d-4fdf-8f3b-0aeca168fd89", "state": "authenticated", "sessionAttributes": { "opbs": "b58a70ed-559c-44f2-b12b-ffbb18ddb17b", "response_type": "code token", "session_id": "70133b13-3e2d-4fdf-8f3b-0aeca168fd89", "client_id": "022683be-9bc4-4a9a-be74-58f04cdbd247", "response_mode": "query.jwt", "sid": "a6ca9ffe-26e5-4e8e-9bb8-fa6399cd2d75", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9ee9b9e0-9457-4927-929c-140f23afd21c", "old_session_id": "3d89ea19-448a-4458-bb37-62f40d1f07ba" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:11" }, { "isJwt": false, "opbrowserState": "ea0af532-506c-44e2-b2fb-0939ef4321ff", "deletable": true, "dn": "jansId=12787bba-e6b1-48a7-bc4b-d8e8b8ce585a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:11", "creationDate": "2022-11-24T09:26:09", "ttl": 0, "sessionState": "1b05b807463d123fd811ec91f3e0cead30604fdcf2953bb8b114aa0efbfbe19f.6f2a6193-b111-4fab-9e88-4ab5253644d0", "lastUsedAt": "2022-11-24T09:26:11", "permissionGrantedMap": { "permissionGranted": { "20428709-a43e-4ccb-84e3-41be3fde6b65": true } }, "outsideSid": "80079037-07a1-4eaf-9a8a-d5b679f9c0d5", "id": "12787bba-e6b1-48a7-bc4b-d8e8b8ce585a", "state": "authenticated", "sessionAttributes": { "opbs": "ea0af532-506c-44e2-b2fb-0939ef4321ff", "response_type": "code id_token token", "session_id": "12787bba-e6b1-48a7-bc4b-d8e8b8ce585a", "nonce": "5f564e33-b986-4a0e-a2aa-411600d884ff", "client_id": "20428709-a43e-4ccb-84e3-41be3fde6b65", "response_mode": "query.jwt", "sid": "80079037-07a1-4eaf-9a8a-d5b679f9c0d5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "642a0804-1eb5-4cb8-9355-0dede7edb6d0", "old_session_id": "14bc47db-c6ec-4280-9803-b12cebbc5e86" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:09" }, { "isJwt": false, "opbrowserState": "4124074d-e441-4c1a-8d76-a67180f43bef", "deletable": true, "dn": "jansId=07a6d608-13b3-425c-a004-8bccd781a0d6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:10", "creationDate": "2022-11-24T09:26:09", "ttl": 0, "sessionState": "daebd1ffdb665746767172b6235d6c14c0b72c1b14d832b70fd936064a37d7ec.61d09d0e-23a3-4d9f-8ccd-e4b9eb320673", "lastUsedAt": "2022-11-24T09:26:11", "permissionGrantedMap": { "permissionGranted": { "65258930-12ce-4933-ad22-c02e304cc8b6": true } }, "outsideSid": "1a45a6d2-81ee-4148-ba1d-0a457ef3ddad", "id": "07a6d608-13b3-425c-a004-8bccd781a0d6", "state": "authenticated", "sessionAttributes": { "opbs": "4124074d-e441-4c1a-8d76-a67180f43bef", "response_type": "code", "session_id": "07a6d608-13b3-425c-a004-8bccd781a0d6", "client_id": "65258930-12ce-4933-ad22-c02e304cc8b6", "response_mode": "query.jwt", "sid": "1a45a6d2-81ee-4148-ba1d-0a457ef3ddad", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f28d2dfe-9449-4608-8e37-4657ffa4c3cb", "old_session_id": "67c29c5b-87f1-4486-a741-0e59a5138baa" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:09" }, { "isJwt": false, "opbrowserState": "140c2cab-ca30-41ec-bec6-bc982faf2dea", "deletable": true, "dn": "jansId=5855c438-f772-4f18-974b-8325bc93e62b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:10", "creationDate": "2022-11-24T09:26:09", "ttl": 0, "sessionState": "0dc4d6ed09cb2cea4c0700727e0a5ee5fbb456ac5e809ccd29db8c9ca24fc413.e683a69e-ca2d-4e2f-a900-3fc15a2d94da", "lastUsedAt": "2022-11-24T09:26:10", "permissionGrantedMap": { "permissionGranted": { "428a7275-af21-4504-864a-cf47511e31b4": true } }, "outsideSid": "a3264561-0032-4b52-9a39-5c259268f720", "id": "5855c438-f772-4f18-974b-8325bc93e62b", "state": "authenticated", "sessionAttributes": { "opbs": "140c2cab-ca30-41ec-bec6-bc982faf2dea", "response_type": "code token", "session_id": "5855c438-f772-4f18-974b-8325bc93e62b", "client_id": "428a7275-af21-4504-864a-cf47511e31b4", "response_mode": "query.jwt", "sid": "a3264561-0032-4b52-9a39-5c259268f720", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0d9135e4-13c4-41b3-b139-6993bffd142d", "old_session_id": "fb09ef24-24b8-4b55-806a-065359fe4cb5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:09" }, { "isJwt": false, "opbrowserState": "210673eb-bb9f-4599-9784-459022908f98", "deletable": true, "dn": "jansId=6e6ecd10-5784-4372-b5a1-a634bc87442a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:08", "creationDate": "2022-11-24T09:26:07", "ttl": 0, "sessionState": "e70cd7523e035f5fcfcc27be88dbe43765eb2c036f2fe05686ddeff5437f37fd.7bcf0e30-0220-40d2-875b-94fa8b8c72f9", "lastUsedAt": "2022-11-24T09:26:08", "permissionGrantedMap": { "permissionGranted": { "7a8b833e-72da-4f5f-8054-ff57e157fa2f": true } }, "outsideSid": "b0b02801-857d-4144-bbfa-5250f99eebe3", "id": "6e6ecd10-5784-4372-b5a1-a634bc87442a", "state": "authenticated", "sessionAttributes": { "opbs": "210673eb-bb9f-4599-9784-459022908f98", "response_type": "code", "session_id": "6e6ecd10-5784-4372-b5a1-a634bc87442a", "client_id": "7a8b833e-72da-4f5f-8054-ff57e157fa2f", "response_mode": "query.jwt", "sid": "b0b02801-857d-4144-bbfa-5250f99eebe3", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a27b22b4-ef0b-4e77-9f58-580d1bb70b9b", "old_session_id": "ab8050d2-02c7-4c78-b8fc-d2fb0b236b5a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:07" }, { "isJwt": false, "opbrowserState": "f3b12900-b4c4-4b8e-89a8-ce3b7dc24d8f", "deletable": true, "dn": "jansId=112ca7d8-11c8-4af2-95aa-e152a2c3b10f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:07", "creationDate": "2022-11-24T09:26:06", "ttl": 0, "sessionState": "4b5d9319cc440425d8d95f6f023a651b97c9af19cc698dde3d5bfacb7159cf10.e150e047-a9e1-400f-afec-bff624c4285d", "lastUsedAt": "2022-11-24T09:26:08", "permissionGrantedMap": { "permissionGranted": { "4001f82c-9751-4ab5-b5e6-4d6d390e5e3b": true } }, "outsideSid": "c5ef8efc-6d62-493d-9b0b-0e3562bc2145", "id": "112ca7d8-11c8-4af2-95aa-e152a2c3b10f", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJlMjE2MGE2Zi0wMWY1LTQ4MWUtYTJmMS1mMGNkMjk0NDIwMGYiLAogICJub25jZSIgOiAiYTQ3ZjVmMmEtZWMwZC00OTA0LThjM2EtOGZiMTljZGY2ZjkwIiwKICAiY2xpZW50X2lkIiA6ICI0MDAxZjgyYy05NzUxLTRhYjUtYjVlNi00ZDZkMzkwZTVlM2IiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.zdjvQ25EMJy_P6BsCI9jbCl7bSC9chyezCnwhcJG59VAin04VS6tnsrPnRz9_6LazAkFfFFZKt_sE1axlvA0BbN3GNU8kO5ZHnXwCZ4Cd9wIY62Neg5aWtZXiqxaWy--ouJ_XHmY2h418zXcsIdaR5nXLwlvNe40hJzWuyM-PU22s6YKtf_AxIfEPjlKY0Hj-gfaAqnE7KKsjKINuwZeDtZMWMVIq7M4eYh-fqf3jHkdmyzNM2Jnp3cLhm7LlAEOSf2z6sGL8nSF0N0C_WkWwjW-HqbUXpWb3K_yIMeg6znF_4noenP95InfQVFaIuUu8D_XCCBcqWFcXV3Ftcu1Dw", "opbs": "f3b12900-b4c4-4b8e-89a8-ce3b7dc24d8f", "response_type": "code token", "session_id": "112ca7d8-11c8-4af2-95aa-e152a2c3b10f", "nonce": "a47f5f2a-ec0d-4904-8c3a-8fb19cdf6f90", "client_id": "4001f82c-9751-4ab5-b5e6-4d6d390e5e3b", "response_mode": "query.jwt", "sid": "c5ef8efc-6d62-493d-9b0b-0e3562bc2145", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e2160a6f-01f5-481e-a2f1-f0cd2944200f", "old_session_id": "cd79103b-c0db-45ec-8173-148f8631f735" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:06" }, { "isJwt": false, "opbrowserState": "5447cd09-cf87-4c22-90c9-d99858b9c583", "deletable": true, "dn": "jansId=515a8083-a464-41b7-b53a-a8902711ed96,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:06", "creationDate": "2022-11-24T09:26:05", "ttl": 0, "sessionState": "e6ad16e5f72d78f0231cc732e5c82b37fd6bf0d61127834635230c25a98296d7.0698e312-792e-4c48-ab44-89d3f94c38c9", "lastUsedAt": "2022-11-24T09:26:07", "permissionGrantedMap": { "permissionGranted": { "d5786345-a2a1-44eb-ba63-17f487c73d81": true } }, "outsideSid": "8c6433e6-da41-4989-8840-bf2a0f45fd64", "id": "515a8083-a464-41b7-b53a-a8902711ed96", "state": "authenticated", "sessionAttributes": { "opbs": "5447cd09-cf87-4c22-90c9-d99858b9c583", "response_type": "code id_token token", "session_id": "515a8083-a464-41b7-b53a-a8902711ed96", "nonce": "74b8dbec-6b27-4169-98cb-d74e0d8ca96f", "client_id": "d5786345-a2a1-44eb-ba63-17f487c73d81", "response_mode": "query.jwt", "sid": "8c6433e6-da41-4989-8840-bf2a0f45fd64", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ff180d34-b0c4-4aae-8742-6336a68f1841", "old_session_id": "e2b0053e-1b90-4897-9230-107bd6602d54" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:05" }, { "isJwt": false, "opbrowserState": "c712a435-38b9-4acf-9e95-68d679b14a47", "deletable": true, "dn": "jansId=ae56f00c-5c23-4ff5-8fad-7dd869de8e27,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:04", "creationDate": "2022-11-24T09:26:03", "ttl": 0, "sessionState": "5eb99caf0f41728d75506fd9a29efd3dd88792c82f8a0d36d0e9a2b348227827.e4ed482f-d3fa-484f-9c1c-c475b8beb789", "lastUsedAt": "2022-11-24T09:26:05", "permissionGrantedMap": { "permissionGranted": { "dcd453e3-f1c7-4f66-80ce-e3cfea44fa3b": true } }, "outsideSid": "01c927dd-d571-45ac-932a-f49b62bcfb7a", "id": "ae56f00c-5c23-4ff5-8fad-7dd869de8e27", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.svflsqXQ_u1oz_Katujx3QnDviul_r2fYATx_wZqLtXpIu-Sg0Jc5HN__avd7enERCSblC1SmeF2aMoFX9FR-8lfhnRnECn4KUjOy48h4mpp-ZIsxioUkhD9hbyx-v345FP7rgwJXvdAztvet4VclH4zM4pEiZT7EUswJzimgdZWYo842cqbuNV2RtPfDcg_OgPNGVH5RoTC_BejTmIu3Hf-V2W1NHo-5N_FjdRF5tFFY4_-Ih6f-oH9yNfOMBJ9tzdhpb9RF8aiNRfjtU3vna5e7XRDf9GTXCyAPjkUQyQ1-wR7EcY-3HGCqMMS0itbOhlUiOoHLgB6DWbbaLbRBw.z-Q29Yq_v9C06iI7mUsY3A.rOOLIzfDD30iNeuO_mjx0ZcfnoB_svw3tM-yyh3JBK4FdKR2kIoa9_jewsTKVloNHoHq7qNruvk6opS25stVlR3LOxrCl1wWrHqImNPKvl-7_BNM7ZPh011bXKdlEUS_rqy9HLtUeK-KfjVIlp2dmrJTHz4c8zpiuOWu7FyFDRmXaPdgh4NKWLQq9r5DgmVpZQN6ipuduw_W2NrvqW_vLkORHYCjtzrGyqooxZpsIdB2q-1EivASicO-JnCj0B3NZcXGaR10BL3mL9kQhGp6yA8civmNVd4enBJVxCGrL1A3u65k7BVr-IFfD-dbVq-wzFKcFNVKfXd45UxCGy2HzeKiMrlXi1W900Vu3Je_idcJAdipo-sgIrGCM4S4mUmFpUmKvs8Zy2CN-wseatnWM9L86rbklk9q6gpu9UCbGjZokqML8ma1hHX_19fIdoU6VKp1tkue-ZBXq-cSwHsKbWpoYCXNP4BBVvpQT6oAlFr87v31OOdr0BhgUgyf0iola9RjMM-dr34QmPQFxX7qaa3gVNBrjBWV7ShHzrf_tMfkVjdNpeBeKeuXxDiv4TtNl5U1lBgZ532suJAkfew0J-N5oSrpfVMrqUCuswNHV1ECBRcJcsfSbcdF4bpedqLb6TDY-rhBwbO3Dg42HNQAUNkOdmnmZxZPrlmoJZebhmKso9a-UEOydZ9L99LVLUPZi02FrO9xszPnhZhEwC6XVytIokr6-cgajl1e0LfSWstl_YPOWeozyDjtwSHkCo1yIuAWmAdj2oHrIx_wlExZDsFqiQg9Z6XShTGPB9QijZQ7ey2u5yMOh85ul-_HZkF6AtnXGKA_wM3bw9RRjTySGPDB1ztpEUUCpsj-U7FJxlhMwZiLDT32zTycjEbtxP5E.lpqn3IHStRPhSFtQL7JduCaILT-w7PqH-vhwkaUttr0", "opbs": "c712a435-38b9-4acf-9e95-68d679b14a47", "response_type": "token", "session_id": "ae56f00c-5c23-4ff5-8fad-7dd869de8e27", "nonce": "8b258e18-46b5-410e-85b5-4d61819e4b5d", "client_id": "dcd453e3-f1c7-4f66-80ce-e3cfea44fa3b", "response_mode": "query.jwt", "sid": "01c927dd-d571-45ac-932a-f49b62bcfb7a", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "44d522ce-48fa-4ac6-a297-b71100d7676a", "old_session_id": "594a44bb-7032-47b4-a5a3-8ba91d1d0dee" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:03" }, { "isJwt": false, "opbrowserState": "e53f613f-51f3-4313-993f-dab18face85e", "deletable": true, "dn": "jansId=1a9ee96e-665e-4675-ad4f-339cde1413d4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:03", "creationDate": "2022-11-24T09:26:02", "ttl": 0, "sessionState": "f106eef9f37f7f26cef4f993aeec7f65f08153ef0e128d33c634d49e0bbdcf42.30423528-6f89-4886-9b4c-64b4a4cc2890", "lastUsedAt": "2022-11-24T09:26:03", "permissionGrantedMap": { "permissionGranted": { "0ff3f961-21bc-43e2-8df0-31cf260cf774": true } }, "outsideSid": "960c7f9d-0589-4568-a728-b83a7409b741", "id": "1a9ee96e-665e-4675-ad4f-339cde1413d4", "state": "authenticated", "sessionAttributes": { "opbs": "e53f613f-51f3-4313-993f-dab18face85e", "response_type": "code", "session_id": "1a9ee96e-665e-4675-ad4f-339cde1413d4", "client_id": "0ff3f961-21bc-43e2-8df0-31cf260cf774", "response_mode": "query.jwt", "sid": "960c7f9d-0589-4568-a728-b83a7409b741", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "73f3cc17-228e-4011-85cd-dc92fc550390", "old_session_id": "8b6dfa6e-67a7-46c4-8a6a-850842d21d19" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:02" }, { "isJwt": false, "opbrowserState": "80b3c043-86ad-45f1-9ee2-c1d417075bf1", "deletable": true, "dn": "jansId=bf5e52a5-6ade-4767-8b15-36fd2534c6c4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:02", "creationDate": "2022-11-24T09:26:01", "ttl": 0, "sessionState": "82c13976106d77d01906127b5f24d5494026c9471c8afa2f5497fb247e732090.41187fb6-014d-40e0-b4bf-12c2f5344167", "lastUsedAt": "2022-11-24T09:26:03", "permissionGrantedMap": { "permissionGranted": { "ad094798-9db2-44d8-982b-93ea02db9672": true } }, "outsideSid": "97d01fdc-f8c8-4183-96dc-748aa4c81945", "id": "bf5e52a5-6ade-4767-8b15-36fd2534c6c4", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI2YmE3MWM5YS01ZmQ5LTRiZjAtYjY0MC03ZDkyNmEzNDM3ODUiLAogICJub25jZSIgOiAiMDBmYTgwNTItNjVmZC00MDU1LWJlNWYtMGZjMjFlMzdmMDg2IiwKICAiY2xpZW50X2lkIiA6ICJhZDA5NDc5OC05ZGIyLTQ0ZDgtOTgyYi05M2VhMDJkYjk2NzIiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.YZkT6CSSsjzL6wTm-9FZcGZJNFuunURk82xhU4kR73UO-JrFver9fQnqHtMU77ZIOvQOys7dW1jtBO7kZWOG_6I60DxKmZhSDdZng1XnZC3M2FDYjsQltaC_Lv7Edvb6F0V23F_jMr0Dbt1joDBAl6Jnc0VzlITlu_wW9TGikndgxiYc-hvR-9DrXiXofT44rX1WFp0Zxmbri-xQv-Lke_9Jsa6ClCsaGDtkZCgDMM4emyXwagn7CFyOJmkZM7Lv1BKA6p0m9feX2aJyRQVbl4vosBgQK2803BRKK8kqHo8oOuqaLF-UWiJhsq5tchcESZ3y0pO5KH_w6oPDQmfV-A", "opbs": "80b3c043-86ad-45f1-9ee2-c1d417075bf1", "response_type": "code token", "session_id": "bf5e52a5-6ade-4767-8b15-36fd2534c6c4", "nonce": "00fa8052-65fd-4055-be5f-0fc21e37f086", "client_id": "ad094798-9db2-44d8-982b-93ea02db9672", "response_mode": "query.jwt", "sid": "97d01fdc-f8c8-4183-96dc-748aa4c81945", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6ba71c9a-5fd9-4bf0-b640-7d926a343785", "old_session_id": "500c48eb-cd8b-4e87-bea7-7dd3e68248ab" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:01" }, { "isJwt": false, "opbrowserState": "d474ca87-f4ba-421f-a86e-bda299173c6e", "deletable": true, "dn": "jansId=091bb2cd-d348-4e14-ac65-0626fecefa81,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:02", "creationDate": "2022-11-24T09:26:01", "ttl": 0, "sessionState": "2e4aa67b896e465d14d831cefe330748cc480f558cc5ea56b43365495733f7b7.e6b2b75f-7d00-4a53-8e2a-97f2ead341b0", "lastUsedAt": "2022-11-24T09:26:02", "permissionGrantedMap": { "permissionGranted": { "ea241fff-99b6-444f-82db-5c74c5870da6": true } }, "outsideSid": "3c4f430f-fd7d-4acc-b19b-5d4525387961", "id": "091bb2cd-d348-4e14-ac65-0626fecefa81", "state": "authenticated", "sessionAttributes": { "opbs": "d474ca87-f4ba-421f-a86e-bda299173c6e", "response_type": "code id_token token", "session_id": "091bb2cd-d348-4e14-ac65-0626fecefa81", "nonce": "862a0f6c-b778-4d5e-9499-394917e16da7", "client_id": "ea241fff-99b6-444f-82db-5c74c5870da6", "response_mode": "query.jwt", "sid": "3c4f430f-fd7d-4acc-b19b-5d4525387961", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "fdd53163-f2c0-459b-b923-ddd074e8be5f", "old_session_id": "c353a5b1-2625-4679-a234-5012c22aeec8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:01" }, { "isJwt": false, "opbrowserState": "eb838384-c0eb-4778-87b1-cf7b4f2e14e2", "deletable": true, "dn": "jansId=64ed56cc-aac5-431c-82fe-fc907239e47e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:26:00", "creationDate": "2022-11-24T09:26:00", "ttl": 0, "sessionState": "a2ca4888e9afccd284bd43395397cd0fb2381a8bf59ba88bd07ab296919b781d.9bcce768-0d95-4c74-a154-60411a275c31", "lastUsedAt": "2022-11-24T09:26:01", "permissionGrantedMap": { "permissionGranted": { "91e49d34-a499-4220-8a7b-9dfa916a9013": true } }, "outsideSid": "4a56067f-8198-417c-af78-361223766d69", "id": "64ed56cc-aac5-431c-82fe-fc907239e47e", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJmYWEyMTJiNy0xMzRjLTQxOWQtYTgxYi0yYTdjZTUzN2IxNDgiLAogICJub25jZSIgOiAiNDY0NjZiYjAtY2RmZS00NjkzLTkxZjQtZTMwNDM3NjUwYjc1IiwKICAiY2xpZW50X2lkIiA6ICI5MWU0OWQzNC1hNDk5LTQyMjAtOGE3Yi05ZGZhOTE2YTkwMTMiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.CuRRLOot9tPfstZd05u-Q5yUOvlmpNC7F3VWdvWMT3sI2kndZaiwT5P06lvGdalPP4UAQxXVLAZHcDbfvdMDk78BVFoVUppc1YiRo5blZB-qgNZHA4uDihqCL_gLVg18uCrvHkFH2QC3p9cpFUQuBH0qaK1ptLKkgcuWjaZWruuplSR8q2lmNIfKaCSkJLM1yf_genMfpCkDZ3ViEvNzbIpOrgaQXznL9u5bowLyZFojNv2DzN3DNUfMv15s3oZESaaoK5oZVJaqq4mZDJhFxvSh7JVnUkCzzn_g-X9BaxKp-V_8lNcQO7Dgthesuy9ANoomtsJ7ernEf1KNg5dpng", "opbs": "eb838384-c0eb-4778-87b1-cf7b4f2e14e2", "response_type": "code token", "session_id": "64ed56cc-aac5-431c-82fe-fc907239e47e", "nonce": "46466bb0-cdfe-4693-91f4-e30437650b75", "client_id": "91e49d34-a499-4220-8a7b-9dfa916a9013", "response_mode": "query.jwt", "sid": "4a56067f-8198-417c-af78-361223766d69", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "faa212b7-134c-419d-a81b-2a7ce537b148", "old_session_id": "0015b893-301d-4a75-a7aa-fe470799a0ee" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:26:00" }, { "isJwt": false, "opbrowserState": "fb0f7693-7a90-4993-92b3-4dd4c1de8f5c", "deletable": true, "dn": "jansId=16ed8e48-c3bd-4812-a4e1-f519e3d21b1d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:59", "creationDate": "2022-11-24T09:25:59", "ttl": 0, "sessionState": "ae8850f6f66344f8baa2b6b0787c6265c6e342a004f658021ba2270153562ba4.014e5f12-d436-482b-9322-26a209ef5576", "lastUsedAt": "2022-11-24T09:26:00", "permissionGrantedMap": { "permissionGranted": { "14ea606f-3c90-44b0-b3de-be0dced01323": true } }, "outsideSid": "02e6565c-fab7-460d-ac58-cdd3e8b64479", "id": "16ed8e48-c3bd-4812-a4e1-f519e3d21b1d", "state": "authenticated", "sessionAttributes": { "opbs": "fb0f7693-7a90-4993-92b3-4dd4c1de8f5c", "response_type": "code id_token token", "session_id": "16ed8e48-c3bd-4812-a4e1-f519e3d21b1d", "nonce": "c8b8d2d9-7fbd-461a-87a2-104d72ec65f1", "client_id": "14ea606f-3c90-44b0-b3de-be0dced01323", "response_mode": "query.jwt", "sid": "02e6565c-fab7-460d-ac58-cdd3e8b64479", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "fae67294-866c-4f66-ab89-d7fdaf34b2ac", "old_session_id": "35b4cf2d-db98-49c8-a8e7-cd2c045e0c6b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:59" }, { "isJwt": false, "opbrowserState": "49e5d51b-b130-4a2a-93bc-205bdf39d353", "deletable": true, "dn": "jansId=429d37ad-e811-411c-9bd8-f455b00831aa,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:59", "creationDate": "2022-11-24T09:25:59", "ttl": 0, "sessionState": "bddd8fe38cca167ed3cfdc987218618f05e444376976c7e154e7d2f216eed43d.2913a33a-5ec8-4c3e-a0f8-e90048f61c98", "lastUsedAt": "2022-11-24T09:26:00", "permissionGrantedMap": { "permissionGranted": { "2aa324fd-a4a3-4219-a928-070a900b174a": true } }, "outsideSid": "f0bad41f-79db-436d-be29-b922bd4c6f1b", "id": "429d37ad-e811-411c-9bd8-f455b00831aa", "state": "authenticated", "sessionAttributes": { "opbs": "49e5d51b-b130-4a2a-93bc-205bdf39d353", "response_type": "code", "session_id": "429d37ad-e811-411c-9bd8-f455b00831aa", "client_id": "2aa324fd-a4a3-4219-a928-070a900b174a", "response_mode": "query.jwt", "sid": "f0bad41f-79db-436d-be29-b922bd4c6f1b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "db80edef-3731-46ce-8f1b-6fe92ddc6c54", "old_session_id": "2fd0db62-aa82-4dd0-86b3-94d5c3959671" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:59" }, { "isJwt": false, "opbrowserState": "c8bf3f45-1efd-4dd2-b8ef-38d61fef9361", "deletable": true, "dn": "jansId=7dd101d2-18bd-47e9-b719-622d34661745,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:59", "creationDate": "2022-11-24T09:25:59", "ttl": 0, "sessionState": "dfedbbff48c8770d1ce5fbe503abc4062a258389d4c35f94605fae0518db6f5b.1edea1a2-fab9-4d90-9ee3-335097a8944c", "lastUsedAt": "2022-11-24T09:26:00", "permissionGrantedMap": { "permissionGranted": { "15278ede-e08a-430d-adf4-9638a48e8f63": true } }, "outsideSid": "64e3a208-585d-4206-9e9a-efce8369531a", "id": "7dd101d2-18bd-47e9-b719-622d34661745", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.nRfPZLV4XCJ_DY-ud-41dpu9EX2p9Fty.YfarUQjJEV7W9rih.8-IABFVqcvKYGNfP72xuVbGQchGO6cCYIMlqDmGuNodavydA4BcAPh_5ETlvDruS3JKNHDTs64kvDS02MrbADulkmiGBFgiHxZgxEFvnSKmk38wJ4SQrAPBeHWLJpV5QzCmMF8i_2jwC2neYIBD6Jq6SqojwHGLHaw06Giyyfk4LyF2A4igsv6yfFDCtcwZfmEBX-g_jP-kWtwAZiK6WK1c_JNsemePLOyEuLqp6BRxNuGaCtn2Y6jhexd5nTTTG4jPJNcHin4X1ua4pqUjYciywLQqGJWD1WNPaLuckSZIQSmyDVAvtwOfeLOUiaEHQY-G36nCEeC90ACCgBqS0yA6ZM4Q-M2mZ2GCyOqXL5ZI7ZuPjHopi0Ak8o-NtsBM3g-2FWcw4UdNLkWZTM2IVyEgEoXKMKth0W9Mv-ZZEHrfa7_XbqHxberbnfXQOOhGUXLpbwm8t_dBcdMT8i6IYYTO9w8NiCmGQb9zsESiVMnMDUJHsmoq5kZRVdsHZM3mLr6fdUa2wxhRsb7c-ZtsSXXQSnmXzwVX0Tzt2Q-c3gx2TWNucWzhzGlmI3xPFgLDBn6Y-qitepL7zTPL6C1dkFoFpi8ElGzIOZt4PhBHtqMtM12Ner4PcVK5NLBrJJJ6okS85slBjAK7wq1iNJzXD3ie8ZHSfoRg2AatawvUYrdUuR2xUG96XtrjLglz1vKKMgYrjsyrQyzG3KcLasY6Xc6bpOHdrtcE7F9K5_ASsjOMjjeDa1PHGXnXNDcHaGgsMQ0fGZYlJMKwD9WnAXMl03wgPYjT-6lSQsSzetWw8OaHku0ZRLimKzZ6oPdeGax987wNp-j8_PkHseCfIHHcQGgU6BmBJ_H1cNHkUDKOg7SZvO3ntpcz_W-aF8u2ApQ.mnwE1ozEYRsPFFppy-hcZw", "opbs": "c8bf3f45-1efd-4dd2-b8ef-38d61fef9361", "response_type": "token", "session_id": "7dd101d2-18bd-47e9-b719-622d34661745", "nonce": "eb3b6a72-908a-48a0-9d29-c813f25390d5", "client_id": "15278ede-e08a-430d-adf4-9638a48e8f63", "response_mode": "query.jwt", "sid": "64e3a208-585d-4206-9e9a-efce8369531a", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5db8e717-0e81-498c-a8e5-a7653ec0293b", "old_session_id": "6baa0662-a9c2-4687-82d4-770b59287072" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:59" }, { "isJwt": false, "opbrowserState": "d3207d69-1f0f-4947-ac3f-9aeaefcd8dda", "deletable": true, "dn": "jansId=93be892f-d987-4530-b891-a710e35e984c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:59", "creationDate": "2022-11-24T09:25:58", "ttl": 0, "sessionState": "e0d000460127186cb2cc80a1e5f2b8dfa70c91642baa2872297229b34f582948.c4c65a1d-8537-4dc9-b47f-f9c31c1ea38e", "lastUsedAt": "2022-11-24T09:25:59", "permissionGrantedMap": { "permissionGranted": { "c97104ca-5c53-44d1-af2a-9498c64af2ac": true } }, "outsideSid": "ddfa677d-d32e-44f4-bbe9-8e70d154de86", "id": "93be892f-d987-4530-b891-a710e35e984c", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIzMWY3NjcxMC0xNTBkLTQwYzEtYjU4Mi1lMTJkMDczMDNlOGMiLAogICJub25jZSIgOiAiOTI0NDg0MjQtYTk5Ny00MWM5LTk3YmYtYzQ3MmMwYTJhMDMyIiwKICAiY2xpZW50X2lkIiA6ICJjOTcxMDRjYS01YzUzLTQ0ZDEtYWYyYS05NDk4YzY0YWYyYWMiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.cG9SGtv8K5-4FZS21DKwE6v-a1tHJqk55Le2NhjtWPG1IJpmJOxIbF_yTGm4vfB_08PAqi_FFRJf1CeShRBDT_sLV-6Czliv00JHrOBArB95uY1WiGpNxeQb8_XEwaqcX1PaxBjpRepiw16R3A_GVtbV7eYTQIlQjDcFLSs9PJdy3VzjdEUnPulpnN_RvFjE3EUhfb5kq06Jx4wgb0S6z1Ys8Hr7HyKJOjJ2wbE3nTDgtJ5ojK1TZR519U_TddAqAKN6Wso0NO9X34UC7wBYg7oPAWuRMvj6JYEl0vGqt2AvMD04h9kg4sWEl6jMbYnfc0fxjMas8y2K9_36vDVqgA", "opbs": "d3207d69-1f0f-4947-ac3f-9aeaefcd8dda", "response_type": "code token", "session_id": "93be892f-d987-4530-b891-a710e35e984c", "nonce": "92448424-a997-41c9-97bf-c472c0a2a032", "client_id": "c97104ca-5c53-44d1-af2a-9498c64af2ac", "response_mode": "query.jwt", "sid": "ddfa677d-d32e-44f4-bbe9-8e70d154de86", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "31f76710-150d-40c1-b582-e12d07303e8c", "old_session_id": "a25b2b6f-cd0c-4274-8e68-87ed7dc3cc16" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:58" }, { "isJwt": false, "opbrowserState": "036885af-17ee-49eb-ae56-5ef2f0b0c85a", "deletable": true, "dn": "jansId=b0407eff-d26e-4f9c-b5cb-e3999ca46376,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:58", "creationDate": "2022-11-24T09:25:57", "ttl": 0, "sessionState": "cfc50ba3ee9ef193720a4af42232e18fcd707648b633c25f0410855ce4b055a2.d904b4a3-a375-490d-b3ad-614e8cdb8a05", "lastUsedAt": "2022-11-24T09:25:58", "permissionGrantedMap": { "permissionGranted": { "8cbf5d61-2bb7-4042-b280-c454dc8095f9": true } }, "outsideSid": "0ba8f2f9-358e-406e-afc7-6af86cdcf602", "id": "b0407eff-d26e-4f9c-b5cb-e3999ca46376", "state": "authenticated", "sessionAttributes": { "opbs": "036885af-17ee-49eb-ae56-5ef2f0b0c85a", "response_type": "code id_token token", "session_id": "b0407eff-d26e-4f9c-b5cb-e3999ca46376", "nonce": "42b150b1-7e26-44c1-98c0-a562ff47a1ac", "client_id": "8cbf5d61-2bb7-4042-b280-c454dc8095f9", "response_mode": "query.jwt", "sid": "0ba8f2f9-358e-406e-afc7-6af86cdcf602", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a7dd60be-4d1f-4daa-ae6e-211244fef53b", "old_session_id": "d58955b4-b34d-4488-9951-0f58485b49fe" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:57" }, { "isJwt": false, "opbrowserState": "634d95be-b620-4b8b-969d-788b9001b827", "deletable": true, "dn": "jansId=10e69799-98ee-4b82-a094-747cf5a778e5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:58", "creationDate": "2022-11-24T09:25:57", "ttl": 0, "sessionState": "18cd82bc20685770df211f7ac02e760914a58ea3c71309efeaa04399a6cfa44d.07e24b96-e212-4932-b3a3-3cb543867cb0", "lastUsedAt": "2022-11-24T09:25:58", "permissionGrantedMap": { "permissionGranted": { "9ead8c65-9b92-4d12-bcd2-5b470800a9b2": true } }, "outsideSid": "24137c73-ee7a-4f24-bb05-61282c3e3a55", "id": "10e69799-98ee-4b82-a094-747cf5a778e5", "state": "authenticated", "sessionAttributes": { "opbs": "634d95be-b620-4b8b-969d-788b9001b827", "response_type": "code token", "session_id": "10e69799-98ee-4b82-a094-747cf5a778e5", "client_id": "9ead8c65-9b92-4d12-bcd2-5b470800a9b2", "response_mode": "query.jwt", "sid": "24137c73-ee7a-4f24-bb05-61282c3e3a55", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3b51a98f-808c-4e59-9466-b322b2ce13f8", "old_session_id": "02f5b6ec-1e99-43dc-9c81-8da88199e95a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:57" }, { "isJwt": false, "opbrowserState": "962755a9-b0de-4ed3-8954-608c3c23809b", "deletable": true, "dn": "jansId=1ed7dcee-7339-4cc0-b2ed-b10c6faaeefa,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:57", "creationDate": "2022-11-24T09:25:56", "ttl": 0, "sessionState": "c16e6eec78a0a73f9472b0c0def4937fda2732bfb21ff69ccdc55ac729679b5c.c19b0d55-977d-48bb-90b3-c8689db846cd", "lastUsedAt": "2022-11-24T09:25:58", "permissionGrantedMap": { "permissionGranted": { "4b5d107e-c279-4a50-8d5b-4cacd6161b95": true } }, "outsideSid": "cc43f6d1-1b54-4513-90fe-b097f4ae6173", "id": "1ed7dcee-7339-4cc0-b2ed-b10c6faaeefa", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI5MDQyYWMwMS03Y2M0LTQxMDgtYWFlOS05NGQ2YzNlYmViYjAiLAogICJub25jZSIgOiAiMjExNzFkYzUtNjZjOC00MTM5LTkxZjktZjhhZjk5NDA3NDNlIiwKICAiY2xpZW50X2lkIiA6ICI0YjVkMTA3ZS1jMjc5LTRhNTAtOGQ1Yi00Y2FjZDYxNjFiOTUiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.uNlacJnaqsUYMBMGShIDDqKndWGZsaqN9T-9gou07oQU6CsfDGUUBE1nfXiIcAyv5mwOxJbOnBtqLz8Yt93oRG1qfkhAPJo98_IHXLyMQrImjYXCUh1dHUtR9Ppvmo2I8LZEu9LKGUaH_f8n8e-PX1WHZITMojYRjNFMm99hpLjW9mREsw01LHDbruGNglldQUvf0D_YUSLk4yuuNzXF5MM-L_5kNW4DzQbNbrOhx7wLQUJOij1823_FDCLArd8Oe1H6PGT1pI07CDJKp6xtXeMDquiQJK5rbEG1OAn9qR9Dl5ECAaAnqRHL13jlLPMtRyR7uO76cUDova72OIKKUA", "opbs": "962755a9-b0de-4ed3-8954-608c3c23809b", "response_type": "code token", "session_id": "1ed7dcee-7339-4cc0-b2ed-b10c6faaeefa", "nonce": "21171dc5-66c8-4139-91f9-f8af9940743e", "client_id": "4b5d107e-c279-4a50-8d5b-4cacd6161b95", "response_mode": "query.jwt", "sid": "cc43f6d1-1b54-4513-90fe-b097f4ae6173", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9042ac01-7cc4-4108-aae9-94d6c3ebebb0", "old_session_id": "546b9db6-a1b1-4fd2-b5c3-858e5b1426e3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:56" }, { "isJwt": false, "opbrowserState": "3d8f5bb1-6324-4b80-8ad4-4b0b73e50613", "deletable": true, "dn": "jansId=5cbbac49-bece-45e3-95a5-56754b22d4c2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:56", "creationDate": "2022-11-24T09:25:56", "ttl": 0, "sessionState": "0ed7e71f39351c8ab894f430826934153f42a8df96e30d37c546d6deb64d0e9e.23c3c956-7a09-4bca-87e9-9c05eb72f6e0", "lastUsedAt": "2022-11-24T09:25:57", "permissionGrantedMap": { "permissionGranted": { "2c243bd0-6aeb-44e0-a611-d931a71668a1": true } }, "outsideSid": "8954d1fe-8cca-4c4a-8384-4dc22afabedf", "id": "5cbbac49-bece-45e3-95a5-56754b22d4c2", "state": "authenticated", "sessionAttributes": { "opbs": "3d8f5bb1-6324-4b80-8ad4-4b0b73e50613", "response_type": "code id_token token", "session_id": "5cbbac49-bece-45e3-95a5-56754b22d4c2", "nonce": "ff6dcb46-9263-4ecb-98da-ac5fde6a948f", "client_id": "2c243bd0-6aeb-44e0-a611-d931a71668a1", "response_mode": "query.jwt", "sid": "8954d1fe-8cca-4c4a-8384-4dc22afabedf", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1cb691b4-7390-4884-95e0-97141b847632", "old_session_id": "189b44c5-c4b1-4668-ae14-e06f57ec1f7e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:56" }, { "isJwt": false, "opbrowserState": "e6e7551d-089d-427a-a0d4-290af136d3d9", "deletable": true, "dn": "jansId=290a68a1-5d4a-42b4-9bd3-006122aa4240,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:56", "creationDate": "2022-11-24T09:25:56", "ttl": 0, "sessionState": "7cbc712c6d1057054ecfa6f90652a4bf0bdd7818f9e16929b8951f80b4eba57d.b4b8d652-476b-41af-b271-cdf547b2354b", "lastUsedAt": "2022-11-24T09:25:56", "permissionGrantedMap": { "permissionGranted": { "e0828741-8e29-43c0-9f71-e60ef22e8a60": true } }, "outsideSid": "e740e70d-139f-4725-8c54-7a05a113cd93", "id": "290a68a1-5d4a-42b4-9bd3-006122aa4240", "state": "authenticated", "sessionAttributes": { "opbs": "e6e7551d-089d-427a-a0d4-290af136d3d9", "response_type": "code", "session_id": "290a68a1-5d4a-42b4-9bd3-006122aa4240", "client_id": "e0828741-8e29-43c0-9f71-e60ef22e8a60", "response_mode": "query.jwt", "sid": "e740e70d-139f-4725-8c54-7a05a113cd93", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d3f2f0ab-88d7-4634-8d9c-6cc76cf3415b", "old_session_id": "e8909867-8d47-4aa9-83e3-260bcca3f4b1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:56" }, { "isJwt": false, "opbrowserState": "12b7895a-120b-45c4-915f-fbf4ef6bf543", "deletable": true, "dn": "jansId=7d63bcbd-d122-48e6-981c-a900ac08c4d0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:56", "creationDate": "2022-11-24T09:25:56", "ttl": 0, "sessionState": "48e661d686b714c71ffde107320a0e78e7b60c0398030579157e0d9e45646832.334e3ac2-aac6-463c-a933-680f5bc0ff8d", "lastUsedAt": "2022-11-24T09:25:57", "permissionGrantedMap": { "permissionGranted": { "b03bddef-187c-481b-a6a6-91c5148f376c": true } }, "outsideSid": "a49e3869-90af-4984-a1a6-53153a960677", "id": "7d63bcbd-d122-48e6-981c-a900ac08c4d0", "state": "authenticated", "sessionAttributes": { "opbs": "12b7895a-120b-45c4-915f-fbf4ef6bf543", "response_type": "code token", "session_id": "7d63bcbd-d122-48e6-981c-a900ac08c4d0", "client_id": "b03bddef-187c-481b-a6a6-91c5148f376c", "response_mode": "query.jwt", "sid": "a49e3869-90af-4984-a1a6-53153a960677", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "bca4a201-29c3-4470-9d5a-67523f1ee49c", "old_session_id": "a9355be3-14ca-4a96-aee6-7e8932c0528c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:56" }, { "isJwt": false, "opbrowserState": "9a270a2c-1655-44c1-ad2a-109e375a5f3e", "deletable": true, "dn": "jansId=871723cf-77c0-421f-bdf3-c201db854134,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:55", "creationDate": "2022-11-24T09:25:54", "ttl": 0, "sessionState": "3d5928d3af60a83c007efc2bed231922c712f0b4ea464b59d21412098ee5d9cd.932533a4-78c0-4b1d-9726-6a6f9bf5f868", "lastUsedAt": "2022-11-24T09:25:56", "permissionGrantedMap": { "permissionGranted": { "6f7b18d8-3521-411d-9b31-d2e099772de1": true } }, "outsideSid": "4bbe2aca-b8bd-4c9d-809c-35687d6c5953", "id": "871723cf-77c0-421f-bdf3-c201db854134", "state": "authenticated", "sessionAttributes": { "opbs": "9a270a2c-1655-44c1-ad2a-109e375a5f3e", "response_type": "code id_token token", "session_id": "871723cf-77c0-421f-bdf3-c201db854134", "nonce": "a05973fe-a2db-4f35-90b7-ff15540924ae", "client_id": "6f7b18d8-3521-411d-9b31-d2e099772de1", "response_mode": "query.jwt", "sid": "4bbe2aca-b8bd-4c9d-809c-35687d6c5953", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5ed78877-ca7b-4e2c-ba69-a18537a72d4b", "old_session_id": "46e06402-fd60-4f8a-985c-128610741e95" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:54" }, { "isJwt": false, "opbrowserState": "51eccb73-a3b4-45db-931d-59befb31f967", "deletable": true, "dn": "jansId=53789472-d130-4c0f-a4b4-bccd7c743cc5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:54", "creationDate": "2022-11-24T09:25:54", "ttl": 0, "sessionState": "7c81e3c26405db6835eae4da961b973f87446ca94856c6f7a9995fae3ad47781.cc921597-d344-4f4c-9829-0b0e1d5d898c", "lastUsedAt": "2022-11-24T09:25:55", "permissionGrantedMap": { "permissionGranted": { "0006abbf-013f-4902-9b21-57a60d5ba01a": true } }, "outsideSid": "12005255-2b9b-4fdf-a45d-702e0e7858ca", "id": "53789472-d130-4c0f-a4b4-bccd7c743cc5", "state": "authenticated", "sessionAttributes": { "opbs": "51eccb73-a3b4-45db-931d-59befb31f967", "response_type": "code token", "session_id": "53789472-d130-4c0f-a4b4-bccd7c743cc5", "client_id": "0006abbf-013f-4902-9b21-57a60d5ba01a", "response_mode": "query.jwt", "sid": "12005255-2b9b-4fdf-a45d-702e0e7858ca", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "edc81ec9-4765-47cc-af02-91fb32a92359", "old_session_id": "140bb72f-a9ae-4ff7-9464-ae5b8dcb9f48" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:54" }, { "isJwt": false, "opbrowserState": "190769f9-9d47-4988-83da-9e5c713a689b", "deletable": true, "dn": "jansId=5f4dfeb1-8ff4-44ca-b786-b85b277b59fd,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:55", "creationDate": "2022-11-24T09:25:54", "ttl": 0, "sessionState": "d24cb191bd4e0dd2bf9aafef0a28f5d5a9e016d3f4f5e5c8186583cea1bab6b1.9e01b598-2bc4-45f3-a37d-c1182d28f72a", "lastUsedAt": "2022-11-24T09:25:55", "permissionGrantedMap": { "permissionGranted": { "4cea305a-83ba-4e3e-8815-305d505dd39e": true } }, "outsideSid": "30635d73-1b71-46d3-ba55-05521b2d1b8a", "id": "5f4dfeb1-8ff4-44ca-b786-b85b277b59fd", "state": "authenticated", "sessionAttributes": { "opbs": "190769f9-9d47-4988-83da-9e5c713a689b", "response_type": "code", "session_id": "5f4dfeb1-8ff4-44ca-b786-b85b277b59fd", "client_id": "4cea305a-83ba-4e3e-8815-305d505dd39e", "response_mode": "query.jwt", "sid": "30635d73-1b71-46d3-ba55-05521b2d1b8a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c0321501-4a64-4bcc-8f14-3098446256d6", "old_session_id": "8b19aeda-6751-4026-b08c-4451b29659b3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:54" }, { "isJwt": false, "opbrowserState": "9b482ee1-b176-4d31-a45e-26533147f87d", "deletable": true, "dn": "jansId=1a181f89-fd25-4c0d-b280-b9e5dad79364,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:53", "creationDate": "2022-11-24T09:25:53", "ttl": 0, "sessionState": "ebb1c29cb5c647cad17654dc2bed424f4816ef6aed184b71ac63604ab4903e68.3d31e990-fc9c-4b28-8ecb-751585f8f69a", "lastUsedAt": "2022-11-24T09:25:54", "permissionGrantedMap": { "permissionGranted": { "9c722b1c-91f4-4f37-8dc2-2084b5789d1d": true } }, "outsideSid": "0a82cc32-e4ad-4f5c-9652-ce28c2056e6d", "id": "1a181f89-fd25-4c0d-b280-b9e5dad79364", "state": "authenticated", "sessionAttributes": { "opbs": "9b482ee1-b176-4d31-a45e-26533147f87d", "response_type": "code id_token token", "session_id": "1a181f89-fd25-4c0d-b280-b9e5dad79364", "nonce": "c0373f77-e606-4dab-840a-8b22a28c1ecb", "client_id": "9c722b1c-91f4-4f37-8dc2-2084b5789d1d", "response_mode": "query.jwt", "sid": "0a82cc32-e4ad-4f5c-9652-ce28c2056e6d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "65a3ce97-b4fc-477b-823a-b93c515d0f62", "old_session_id": "e0cc8846-2b76-4d7a-95a8-50b10f0a4e6d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:53" }, { "isJwt": false, "opbrowserState": "df25402f-5c23-48a4-984d-e3274d8463b8", "deletable": true, "dn": "jansId=a4e44687-1785-417d-87de-391c0867e7e2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:53", "creationDate": "2022-11-24T09:25:52", "ttl": 0, "sessionState": "da658dbab299388374210ac70148d9f4c9d01047a2b63efcdc6e5dec52929d4a.db48cb59-f67a-4489-b3ac-98ec018507b4", "lastUsedAt": "2022-11-24T09:25:53", "permissionGrantedMap": { "permissionGranted": { "42bbbdd6-4be7-4921-8521-74901db48ed3": true } }, "outsideSid": "d43389f2-2a67-4622-8e66-94e3ef4bc2f6", "id": "a4e44687-1785-417d-87de-391c0867e7e2", "state": "authenticated", "sessionAttributes": { "opbs": "df25402f-5c23-48a4-984d-e3274d8463b8", "response_type": "code token", "session_id": "a4e44687-1785-417d-87de-391c0867e7e2", "client_id": "42bbbdd6-4be7-4921-8521-74901db48ed3", "response_mode": "query.jwt", "sid": "d43389f2-2a67-4622-8e66-94e3ef4bc2f6", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4bdcf6e5-c1a0-4837-b056-025d46f0da6f", "old_session_id": "af25acdc-6c8e-4b9e-a6f1-f0c80702e92f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:52" }, { "isJwt": false, "opbrowserState": "910ac584-6f0c-4771-b113-da8ec0d45471", "deletable": true, "dn": "jansId=783b787e-e54c-4acb-817e-d521109d4f50,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:53", "creationDate": "2022-11-24T09:25:52", "ttl": 0, "sessionState": "c5b520aef0dd15b502fcfc2b708b8c6561a35fa1330b8b15acbd738513e8a11c.4583428f-e4f5-498e-b930-1756a53cf670", "lastUsedAt": "2022-11-24T09:25:53", "permissionGrantedMap": { "permissionGranted": { "c4a265e0-76ca-4493-8d2e-f5fe26913981": true } }, "outsideSid": "a132a94f-922c-4fee-8c5b-160886933a2e", "id": "783b787e-e54c-4acb-817e-d521109d4f50", "state": "authenticated", "sessionAttributes": { "opbs": "910ac584-6f0c-4771-b113-da8ec0d45471", "response_type": "code", "session_id": "783b787e-e54c-4acb-817e-d521109d4f50", "client_id": "c4a265e0-76ca-4493-8d2e-f5fe26913981", "response_mode": "query.jwt", "sid": "a132a94f-922c-4fee-8c5b-160886933a2e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9b4a816f-ec50-4a55-82be-8f5f0f7ea643", "old_session_id": "d5e75345-3a2e-4b8d-b2aa-99a3980495ee" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:52" }, { "isJwt": false, "opbrowserState": "efee0146-ad60-4317-9052-670e1a634742", "deletable": true, "dn": "jansId=184702b4-fe73-4c36-8083-55caa71a18eb,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:52", "creationDate": "2022-11-24T09:25:51", "ttl": 0, "sessionState": "8512a245e738cbfac1f7c89c8153c2df331228d8e59e3da9fc7b1904cd165804.22d2a54e-4778-43d3-a061-ab357246838e", "lastUsedAt": "2022-11-24T09:25:52", "permissionGrantedMap": { "permissionGranted": { "bc49b0b5-dca5-44c0-90b5-e57f72b98d89": true } }, "outsideSid": "743d92e6-7bea-4c6d-875d-5544e848c6ec", "id": "184702b4-fe73-4c36-8083-55caa71a18eb", "state": "authenticated", "sessionAttributes": { "opbs": "efee0146-ad60-4317-9052-670e1a634742", "response_type": "code id_token token", "session_id": "184702b4-fe73-4c36-8083-55caa71a18eb", "nonce": "c1e54d0f-fbfa-44e2-bd91-4e3e921c805c", "client_id": "bc49b0b5-dca5-44c0-90b5-e57f72b98d89", "response_mode": "query.jwt", "sid": "743d92e6-7bea-4c6d-875d-5544e848c6ec", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "fe2f343d-bce1-49ac-ac67-0cf35e2ccb8a", "old_session_id": "bf35e291-7b61-4cf4-85c8-7cae6b9b52d3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:51" }, { "isJwt": false, "opbrowserState": "9294e774-837e-478e-bc21-1cc7e21f46f8", "deletable": true, "dn": "jansId=a3fa4a22-7adf-4ccd-9f6d-9fd2d0d2fbc9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:51", "creationDate": "2022-11-24T09:25:50", "ttl": 0, "sessionState": "c512f40e463633f93d54b7997ec609cc4c0b02ef2ee8f69c14a74bef499bc7bf.8956153c-49f1-4cb9-b40e-90611e340eff", "lastUsedAt": "2022-11-24T09:25:52", "permissionGrantedMap": { "permissionGranted": { "3cbf5143-8620-4170-9651-bb7e3b42caad": true } }, "outsideSid": "318754a9-a65c-446f-9046-db9d33166b77", "id": "a3fa4a22-7adf-4ccd-9f6d-9fd2d0d2fbc9", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJiOGM3MjI1Yi1hYTRlLTQzOTMtYmM4My1mMzUzOGMyZjdjZjYiLAogICJub25jZSIgOiAiNzU4NGRkNGEtMTBlZS00MGYxLWFhZTUtNGJhZjg4MTEwYjRlIiwKICAiY2xpZW50X2lkIiA6ICIzY2JmNTE0My04NjIwLTQxNzAtOTY1MS1iYjdlM2I0MmNhYWQiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.3NGP-dfVpbRZeNxBoJnL5TREjoiHlpfLvbamt-T1JdmTSmYRPLX5dnXO-YVIE1SwCLQmzn9aX5G9LS28gbupDQ", "opbs": "9294e774-837e-478e-bc21-1cc7e21f46f8", "response_type": "code token", "session_id": "a3fa4a22-7adf-4ccd-9f6d-9fd2d0d2fbc9", "nonce": "7584dd4a-10ee-40f1-aae5-4baf88110b4e", "client_id": "3cbf5143-8620-4170-9651-bb7e3b42caad", "response_mode": "query.jwt", "sid": "318754a9-a65c-446f-9046-db9d33166b77", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b8c7225b-aa4e-4393-bc83-f3538c2f7cf6", "old_session_id": "17f02aff-dd73-419b-a696-f1936598d652" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:50" }, { "isJwt": false, "opbrowserState": "90ebceab-883f-4c05-a2a2-8449e946a8b7", "deletable": true, "dn": "jansId=95b8e972-e2d2-4866-b37c-dd4d0128c3d5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:51", "creationDate": "2022-11-24T09:25:49", "ttl": 0, "sessionState": "ce6a40e9f91573742113c72e1f0fc78ce429038a16713bdb4b88e1ff3ac2d139.cfb81d2b-5ec1-44d0-8db2-5346b2a5931f", "lastUsedAt": "2022-11-24T09:25:51", "permissionGrantedMap": { "permissionGranted": { "143959e2-b376-484f-a0c9-3cde654cda58": true } }, "outsideSid": "545c4deb-b8ac-42d2-ad4c-6a7998b26454", "id": "95b8e972-e2d2-4866-b37c-dd4d0128c3d5", "state": "authenticated", "sessionAttributes": { "opbs": "90ebceab-883f-4c05-a2a2-8449e946a8b7", "response_type": "code", "session_id": "95b8e972-e2d2-4866-b37c-dd4d0128c3d5", "client_id": "143959e2-b376-484f-a0c9-3cde654cda58", "response_mode": "query.jwt", "sid": "545c4deb-b8ac-42d2-ad4c-6a7998b26454", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5fd2f159-28da-4aa6-be1b-5902ee45899e", "old_session_id": "49a082d1-ba72-4acc-a258-ae72c758eaaa" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:49" }, { "isJwt": false, "opbrowserState": "9a27657c-f25f-4a2f-891c-bf5b23d3db0c", "deletable": true, "dn": "jansId=4001425d-9469-47d7-b3c0-a9fb008a7e10,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:50", "creationDate": "2022-11-24T09:25:49", "ttl": 0, "sessionState": "615e3e7ac9c8817f09bff6847c2fea760bd0f685dce96c9b1175358869bb858f.99185227-e793-477b-80e9-b425c1e554c6", "lastUsedAt": "2022-11-24T09:25:51", "permissionGrantedMap": { "permissionGranted": { "3ad8a3eb-5583-466b-b8c9-84bba8c1f872": true } }, "outsideSid": "10af39e1-d5d5-4e34-ae78-270882e8b987", "id": "4001425d-9469-47d7-b3c0-a9fb008a7e10", "state": "authenticated", "sessionAttributes": { "opbs": "9a27657c-f25f-4a2f-891c-bf5b23d3db0c", "response_type": "code id_token token", "session_id": "4001425d-9469-47d7-b3c0-a9fb008a7e10", "nonce": "a2c2e89c-c087-4a02-ab82-09e16269e94b", "client_id": "3ad8a3eb-5583-466b-b8c9-84bba8c1f872", "response_mode": "query.jwt", "sid": "10af39e1-d5d5-4e34-ae78-270882e8b987", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a491e992-b529-4922-a3e0-4c8af75524af", "old_session_id": "d453d325-f898-4614-a4e4-2bb7e0bab4f1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:49" }, { "isJwt": false, "opbrowserState": "5ff6d8d1-10d7-4abd-b9bb-a3f4adf398c1", "deletable": true, "dn": "jansId=ab1d7a02-5dfe-487f-81bb-7161ee49a7e4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:49", "creationDate": "2022-11-24T09:25:49", "ttl": 0, "sessionState": "413b6261253ac638c3563b5fd329cbcbdaddd8fd24c75e322526df92af500973.fafe6154-f6a4-4235-8616-c3bbd1c7b944", "lastUsedAt": "2022-11-24T09:25:50", "permissionGrantedMap": { "permissionGranted": { "143afd60-c78d-40c8-b373-767df43c516d": true } }, "outsideSid": "64bb57e3-8be7-480c-a3a4-7feaeffa5d37", "id": "ab1d7a02-5dfe-487f-81bb-7161ee49a7e4", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiI0Y2E3NjMyMi1mY2ZkLTQyNWQtOTc0ZS0zMjBlNTZmM2U2YjFfZW5jX3JzYS1vYWVwIiwidHlwIjoiand0IiwiZW5jIjoiQTI1NkdDTSIsImFsZyI6IlJTQS1PQUVQIn0.Qs-chtOCp9ERbEMzx14wYxsma1GdJ_Q4K37L92OvAtYe2DHizXOIvewUimLMWG7A03m3dZ1dJwing3fkYGTHQgkIEZxoUsOl9wKVKdkbf7HWRNiQNvNJ2jJmZoK_B1yf-Me-Gf37hEcVVEhWZEz8BOcGM3G0V6gZ3luca2UKC4Wk89jbXQWOaRQ7TqojvOZTuZF9_8SXg6_vKHrZdrIcif0CzpwKPv-UEUSqeQlUkGfLpwf-q1-qRVBFN23H0cEKeHO2ByImINnFApgFo3wvnkly_H9y-gAbCDiWRKtRxD4voZAYNt--a1drYJXOd6AThIOPYQZoCVVdDozhFgMYwg.QsGeMfXMCf1SOqZ1.nvTu1lNjfwxxk0YIw458aosGNHxKXiuTlaUms8ysTKSGxv6AAqQtE-wr9l-sFMiy1AORZKKcLUCLDJmJXTHiHnQQ3_MFKtWueXD8u3YL_EFsFP0oSuWkUzjIJhxdEQ7ZtGKSDK5iriUY5L70c0TPjTyY0DkijHPsAPFidk3u1RKQW5uFuwGnlFEQb0EwoBCICm2A7YikFl7Fsx79sNAOdm6nHncwtgGQtGRGCPf5l3QEMRZtgNhAWQpqpWVahmm9_XIPnA22Eb4olNnPk4BNT8gaAxDxMxgPlv65EvFQ1YKZyopJq3AeqYHg5SZBx4OvJLepvRiz-kqCQaxZElA53YsBwS1t6JoRlVeUlZ0SwLtrGyUfJotLUsxkoSmkS01Rfb1EKKL_CcKwwzscm6CQee1BEC938zl-b08GCj8N0dNvq87ydSJk5pHYn7MZT2Po4QWIEmWE3J2DucgqhqDKjPY5UsSM4NBGhMVw0_PBoDs-k_xc5lPjaojvcIfvd0xIlr2HPNN7TZNCdSpfYtGr1_zZ_J07PoTxxoTi9NmY1XJET4C6Clb7C9_bNo5GA_Eg6_iUnMMCLw01T1JkK1csL5G5jn9L-u08qAUl05krKfxv8DgK2J_v1dAwU8wf6mFziXW18t4Z3F3N5LdhlmyXRefGUFuwP3KFZ95gXEeuE7Zy61zd1d7g7nPtF3ECBzSxY4YIC-UhYgE5uatkCowAyEkKUjvXjPtJv-V7VPc_Yl7mn0dCeJ4u6EVeUJdzTa5R-oGMs78DgyUTscKURUPvyTBrn8FKiv6_3YtRVr4PgXXkZ1BitdsPcm5uRDauJ9TrRPHeMD_NaZTmEXv2R1qUtGtDhkTJQiH180Kl1rdFrhaxTPqSRd_gbuQvmkd-93JzlQKTutSk6mTyXg.4Q7gLf-pjXelU4bmQh8xag", "opbs": "5ff6d8d1-10d7-4abd-b9bb-a3f4adf398c1", "response_type": "code token", "session_id": "ab1d7a02-5dfe-487f-81bb-7161ee49a7e4", "nonce": "c14e0347-aff0-483b-8e69-ff7d9198b506", "client_id": "143afd60-c78d-40c8-b373-767df43c516d", "response_mode": "query.jwt", "sid": "64bb57e3-8be7-480c-a3a4-7feaeffa5d37", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5098f826-e9dc-4451-bd60-15803d2d43b8", "old_session_id": "018487b5-cbbb-47ff-8335-34efe49e48c2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:49" }, { "isJwt": false, "opbrowserState": "1ae7b008-2a3e-441d-a25e-ac93952895e4", "deletable": true, "dn": "jansId=b0342d5a-293a-46bf-8c26-fa54d43f0361,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:49", "creationDate": "2022-11-24T09:25:49", "ttl": 0, "sessionState": "0ef29a282e132a35ef0dcfd4f50d2c98844acb02335cddc9ef35f71004f6642d.feafa27f-ba2a-4747-8f8e-6e1cb8127104", "lastUsedAt": "2022-11-24T09:25:50", "permissionGrantedMap": { "permissionGranted": { "5084d58f-7084-4c55-a3e9-7702122a1bfb": true } }, "outsideSid": "dd749fd2-9837-4580-8813-6bbfc51c32b9", "id": "b0342d5a-293a-46bf-8c26-fa54d43f0361", "state": "authenticated", "sessionAttributes": { "opbs": "1ae7b008-2a3e-441d-a25e-ac93952895e4", "response_type": "code id_token", "session_id": "b0342d5a-293a-46bf-8c26-fa54d43f0361", "nonce": "4415702b-64d3-46b7-8084-3196a29611c0", "client_id": "5084d58f-7084-4c55-a3e9-7702122a1bfb", "response_mode": "query.jwt", "sid": "dd749fd2-9837-4580-8813-6bbfc51c32b9", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "294c0910-7e7b-468e-be64-e2f6ea741b75", "old_session_id": "68d9b4f5-4f7c-4db2-b21a-5e2e514104bd" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:49" }, { "isJwt": false, "opbrowserState": "2c34b69e-cd96-4626-8bb0-c0f7c02efc53", "deletable": true, "dn": "jansId=03cd8c5f-ef8a-4c6e-a3f6-97a37238224f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:48", "creationDate": "2022-11-24T09:25:48", "ttl": 0, "sessionState": "ea6a49d3e5478b5b182bd59f81a995f45f34c7f93e46288527e55c2b734ecd29.c3525918-ffa6-4505-a1b8-a33cfb61dcf4", "lastUsedAt": "2022-11-24T09:25:49", "permissionGrantedMap": { "permissionGranted": { "750d648b-8e12-4673-8fa5-32f5b668a456": true } }, "outsideSid": "06d847c0-c0cb-41d8-b751-b6a986998126", "id": "03cd8c5f-ef8a-4c6e-a3f6-97a37238224f", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjQzNDk3MGNmLTc5MTItNGJhZi04ZTY1LTMxZTRhNTllYzc2MyIsCiAgImNsaWVudF9pZCIgOiAiNzUwZDY0OGItOGUxMi00NjczLThmYTUtMzJmNWI2NjhhNDU2IiwKICAicmVzcG9uc2VfbW9kZSIgOiAicXVlcnkuand0Igp9.5dOaC-MBvmQt8jStmjmBl_fbeJNqaYl2Q8Ew51q7-SZzdAyn-6ikhtlQ7l23tq9i0H_BuUR0RWmfwUCxJkLNFEjnzn2VYK1FNGIpqq38hJhc8ePO12X0KPhwYaLIrekfbBfoysT3I_A2NW0DxZKmD5DI7XymHb1PYT37Bcikaw73oNIe_SHEmRtYHq5SZCefCISsgcffhsDgspTWc_P4-QGj9-EMq3PB-52T6_YKrkCkex710Wll0pPrNBWtpbEzrD7tsz3TnrDSTuhzXyRugmiMI4cVtiiNUCHAYg7qibxDI2Hba8e-39ItZ6Xt22_vfjZrXt2YMj6EbDgfv7fH0g", "opbs": "2c34b69e-cd96-4626-8bb0-c0f7c02efc53", "response_type": "code", "session_id": "03cd8c5f-ef8a-4c6e-a3f6-97a37238224f", "client_id": "750d648b-8e12-4673-8fa5-32f5b668a456", "response_mode": "query.jwt", "sid": "06d847c0-c0cb-41d8-b751-b6a986998126", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "434970cf-7912-4baf-8e65-31e4a59ec763", "old_session_id": "e76fb415-7e7b-428d-b21f-4c3081f70b97" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:48" }, { "isJwt": false, "opbrowserState": "fc1093da-b38e-493a-b7d7-8445d940532e", "deletable": true, "dn": "jansId=65fda632-e04e-4afa-9e0b-6d6804937be9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:48", "creationDate": "2022-11-24T09:25:48", "ttl": 0, "sessionState": "bd8f7069b7b07b05c49dcc53878911e88e8fdad95b45a46a49822f7e88fbb08f.c9623213-5e55-447e-b56c-b91ec5d3938b", "lastUsedAt": "2022-11-24T09:25:49", "permissionGrantedMap": { "permissionGranted": { "5239f940-028d-481d-86cd-1a2911a5574d": true } }, "outsideSid": "ff944d6b-f9fc-49f8-a474-953600a4f3cf", "id": "65fda632-e04e-4afa-9e0b-6d6804937be9", "state": "authenticated", "sessionAttributes": { "opbs": "fc1093da-b38e-493a-b7d7-8445d940532e", "response_type": "code id_token token", "session_id": "65fda632-e04e-4afa-9e0b-6d6804937be9", "nonce": "78861a4c-5938-4124-8b51-12be7d873314", "client_id": "5239f940-028d-481d-86cd-1a2911a5574d", "response_mode": "query.jwt", "sid": "ff944d6b-f9fc-49f8-a474-953600a4f3cf", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "60f55adb-ac3d-417c-a1cd-1b4be83018c1", "old_session_id": "ff6de4e7-d977-4db9-b55b-10c3bcc2ef66" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:48" }, { "isJwt": false, "opbrowserState": "a24a9558-3907-4c59-b650-ae94db9e1bd9", "deletable": true, "dn": "jansId=91bff679-68c5-4032-bea4-924743250b4e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:47", "creationDate": "2022-11-24T09:25:47", "ttl": 0, "sessionState": "03572a011c0008c5cb87222677be6aa057391936e5a1d1d96e5e5ab914b167b4.13d12066-4416-4a22-9be6-193dd7ed5858", "lastUsedAt": "2022-11-24T09:25:48", "permissionGrantedMap": { "permissionGranted": { "2db98c0c-f60f-476b-af49-1da471086680": true } }, "outsideSid": "0088d452-83a3-4217-8156-2234e3c67795", "id": "91bff679-68c5-4032-bea4-924743250b4e", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkEyNTZDQkMrSFM1MTIiLCJhbGciOiJSU0ExXzUifQ.EgN110peuM1UNH40IXTyb0jewrLCla5YOG5nXIBvpP8aJC6ztQ2rsh2Kk3-eAc3RNOVzTUCZ9xP12eN1P8Dlyz81JL24Lxg4xOj0Bgu0DelTH2ABiuXh-0EqaaRpqeIt80cysIxSFx5gekrCVjhKIdMxHIaH-ax68k4VDRd5-NfdQACkvxrXgjC4EBzD9agEHackLTy9DP1ptAvR2y814SAiLMDcmlYE8kKD8arLED42VFSRyvK3OJhKF_iFZn4BgWL9NwJe4_N4iIiKyKtv1yKRd0YHHrZRT5dgBuRuyG47tiog592glfggP_JSJQ3zOoO4dL-KTD75c5rqmryCZQ.PSx6k1avgE70dgkYgSPPog.UMTpPEmh5iTBXtBWJMwMD9KkSTkUtOeccgh-OGdnTwNJbNbgIeoTlFQA1pEVV-e0-DQiAVHVrUHCoP72OvL4jCANm8M8FMS54gPEZyN9pmqpWYqLCA7C6J-FngmyDHFyc7MZ3abTm_M_ZSxTGeFjNbSpm2CVa7dwPTY6L0djpOI7t4hcVACrOMH8hGf2HXAsstVMuFoiZS6BvWtOd2Jf6N113hg5XKi6ZmOkzjBIv7YB_c9fKebDxxbYBNnwVMj4NQiy2uvCan_iYSXa-O2Nq_CXBkMDEdeOfT1QSeipB5Rmf2zaVD6KWINn-GmXuYLGlAcaQm7ni6yLJclDcaaMKzXd8STL7cnTRmbSkvkYUHqcaqnM3TJWqtv-xFAOGcDFQMreoavykvCCBScySSOrDfYeh4lXnjnq7R3aDUGKUx60jmdjFVNh0yDaNq2bm19fYcSPcpBUyZ_dAxLcsdxnw1h58wGuwfzLv32TOvjDSo1NRUukdLFXtwalIPVKJ8Xj1K5L44MyQPNU6NUhrsqgPQ490zBaaWa0ZqsaS7-WeGqxydZ9gyKYYt_3LKdDyA7zaSYRo5e4r3Ce_6YrbopBfv8fUqPEhtJEXxxOEXpVDy-1yEpbp9Dash5R5vkIMG6RfQKvZDD5RPEjcq6K6GsYEVbgQ-ME_1r8ZLUNxYmMZ_AYulDLg6rR0s7JCHwi2ZqaoCWTccngUJk6dUV02SGo9yp23cnw7Llu7Myilo0_8w5qLXEATNg8tGzNOZrmX5GwJ8RlA4-BNobDIhKqxgvGvo-Y_PYRecljjkcVto0SBTuiZeMuRZ_OffFkfZkENLk0ZLzje7TNusC0u4dEX-WmKqu1-cq-99dPomubnZ8OvOs_grH1X05BnLVKXLQVW41mQ_Kn68VgBuRH_NWoGNxUoA.Kr_B7bMnFymwnK8kEutKN85k1cYJNwWUdoIagwatqcFLOWOH3mDDUFwjOILTa_kXKW7IyPQ2rQoQWqUnz-b7Jg", "opbs": "a24a9558-3907-4c59-b650-ae94db9e1bd9", "response_type": "code token", "session_id": "91bff679-68c5-4032-bea4-924743250b4e", "nonce": "11860e6f-04ce-457e-a14a-70dec728c5ec", "client_id": "2db98c0c-f60f-476b-af49-1da471086680", "response_mode": "query.jwt", "sid": "0088d452-83a3-4217-8156-2234e3c67795", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "26427192-15fa-4aee-b168-fcdd4d4103de", "old_session_id": "0d60ddf3-9939-4ffd-b35f-4da4199f5b39" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:47" }, { "isJwt": false, "opbrowserState": "b9b7f836-13cd-469d-b861-a48e21b55be9", "deletable": true, "dn": "jansId=376872ac-4afc-4b1c-bde1-fb008be39385,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:47", "creationDate": "2022-11-24T09:25:46", "ttl": 0, "sessionState": "ea292c9dddfb6b040bc95d31a99d731ea066917acc9f4c939a159b1cccb37fd7.acccbcc3-e41f-4fbc-8396-7eeb8e6164cd", "lastUsedAt": "2022-11-24T09:25:47", "permissionGrantedMap": { "permissionGranted": { "23cc0e43-78d2-4633-b28f-16e287560e5b": true } }, "outsideSid": "e21a3f4b-33c1-45e9-b5d0-a31b9149edb0", "id": "376872ac-4afc-4b1c-bde1-fb008be39385", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjQwYzQ0YTNkLTk0ZWQtNGU5NS04ZTMwLWZhY2JmZDUwNjU2MCIsCiAgImNsaWVudF9pZCIgOiAiMjNjYzBlNDMtNzhkMi00NjMzLWIyOGYtMTZlMjg3NTYwZTViIiwKICAicmVzcG9uc2VfbW9kZSIgOiAicXVlcnkuand0Igp9.AGHSbyhhIgo9NiDX2-K_oiOtJGV0xb7K4I-WfWO0Xo0k1G9OMwX0vMzmrGyDLQZA926lWG-9Ic6AhDANopzVYLnK7OeiCDXtYsMkHoQGabIZxvhuqwLoO0WyqWr9mAGcs4udUkCNH3nyB2rda3hUqVgysecXfX7PFrEEQmnqYIDy7XunVfSNIjjWRPe5b98IKWrHl_KH1bxt6PxdfialuGNeWJFnK_vhvSo5Kb2W-LsFvLZzDKBpbSOSWORtEAjhjANbJa5CcmzkHXR70IU6RKg9bLGJ5-SyQMTKTdeLDhmg9oEDAgCGTA4iWqxD_QzYtzA-MQfXa81pUX4SB9YGpQ", "opbs": "b9b7f836-13cd-469d-b861-a48e21b55be9", "response_type": "code", "session_id": "376872ac-4afc-4b1c-bde1-fb008be39385", "client_id": "23cc0e43-78d2-4633-b28f-16e287560e5b", "response_mode": "query.jwt", "sid": "e21a3f4b-33c1-45e9-b5d0-a31b9149edb0", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "40c44a3d-94ed-4e95-8e30-facbfd506560", "old_session_id": "5ceef850-3fa6-4c56-8461-60a5208b1299" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:46" }, { "isJwt": false, "opbrowserState": "e678a500-ac79-4cbb-8cd3-a1099ea73b9c", "deletable": true, "dn": "jansId=6157f2e7-2b18-4955-ad61-cbf050e0f946,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:47", "creationDate": "2022-11-24T09:25:46", "ttl": 0, "sessionState": "fbe06a9e00a88b6162279236753dd05e8d14322347938a8681b8a3023fffb22e.f984aaa9-396d-4aa5-a7ee-f6fc72785390", "lastUsedAt": "2022-11-24T09:25:47", "permissionGrantedMap": { "permissionGranted": { "1f1aa2d6-b231-450c-9cc3-cffd19096e63": true } }, "outsideSid": "8132b8e9-83c8-4196-ae7c-333fcd0d4653", "id": "6157f2e7-2b18-4955-ad61-cbf050e0f946", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI3OGEwZDc0OC0yMjUzLTQzMGYtYTI2NS0zZTAyMDkwMmI4ZTIiLAogICJub25jZSIgOiAiZDliNmI3MjMtNjVlNC00NDdlLWIzODctNzk1YjBkODU5NjA5IiwKICAiY2xpZW50X2lkIiA6ICIxZjFhYTJkNi1iMjMxLTQ1MGMtOWNjMy1jZmZkMTkwOTZlNjMiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.5XZCawrsMIi5Rh7OtNTy_ErIOpflqWvJkBtkCZ9EP9HlSgkHjIb_8vxAAQ_XYPqqvHZifoLq-L3ZbNiSTFEwxQSDOCvW98Bary9aFMFT4tUgkC0xRJxDzHprPDwiASrOl35JViezeRiLplQbH3Dwcnwuk8T3r2jfcQYF7EIg7-B3c97e6ODtjiR_KXEL-G5gTxcbbPSKzQtCaM11mNHQGrCCfiApan0uJsL-c68CX91XSpSV9SyUWaCvWPApoEwYoYofqUmHXcIqnjUmqgHMO0ymiGbOhPEqNhC1gT09C6SLCXELq0XtMqFL-b4WmQHj7xFTCaUZS_u7-02RpYgjcA", "opbs": "e678a500-ac79-4cbb-8cd3-a1099ea73b9c", "response_type": "code id_token token", "session_id": "6157f2e7-2b18-4955-ad61-cbf050e0f946", "nonce": "d9b6b723-65e4-447e-b387-795b0d859609", "client_id": "1f1aa2d6-b231-450c-9cc3-cffd19096e63", "response_mode": "query.jwt", "sid": "8132b8e9-83c8-4196-ae7c-333fcd0d4653", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "78a0d748-2253-430f-a265-3e020902b8e2", "old_session_id": "3f82d8dd-947e-4d85-afc4-e05a73294d8d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:46" }, { "isJwt": false, "opbrowserState": "6202184d-508b-466d-a163-015316b2e6a6", "deletable": true, "dn": "jansId=593a0c1a-1aaf-440c-a4cb-99cda360cebc,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:46", "creationDate": "2022-11-24T09:25:46", "ttl": 0, "sessionState": "ddfcacb96c60c94b323da64326e777bf7d1b267060654fe23e6d5552e1179547.6933396b-057e-4d75-9e91-ac9d555b56bf", "lastUsedAt": "2022-11-24T09:25:47", "permissionGrantedMap": { "permissionGranted": { "60a507b9-fee2-482d-8f20-e1320c4c019c": true } }, "outsideSid": "811f0399-99aa-4df0-8bfe-c5e3d757ed45", "id": "593a0c1a-1aaf-440c-a4cb-99cda360cebc", "state": "authenticated", "sessionAttributes": { "opbs": "6202184d-508b-466d-a163-015316b2e6a6", "response_type": "code id_token", "session_id": "593a0c1a-1aaf-440c-a4cb-99cda360cebc", "nonce": "4267b8fb-67b9-434c-a092-1bc19a126982", "client_id": "60a507b9-fee2-482d-8f20-e1320c4c019c", "response_mode": "query.jwt", "sid": "811f0399-99aa-4df0-8bfe-c5e3d757ed45", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ab8683df-4e2b-4367-93f4-3cf70618f2d7", "old_session_id": "b77b5dfd-1ea4-4598-9425-427bc3e635f7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:46" }, { "isJwt": false, "opbrowserState": "13c82465-d73f-4c2e-b9b9-a25c251d1267", "deletable": true, "dn": "jansId=377a2d9a-ac92-472e-9ad1-35d5514aacbb,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:46", "creationDate": "2022-11-24T09:25:45", "ttl": 0, "sessionState": "f49971163693be7894f2c577d1a0bb5ae6407babd7611d4b0c5021543f99f583.8ac16200-7fbf-4f6b-8f7d-cf3b454f8cd8", "lastUsedAt": "2022-11-24T09:25:46", "permissionGrantedMap": { "permissionGranted": { "22134d57-56b3-4f10-97d5-a560a649d92a": true } }, "outsideSid": "6bc3af3b-8ecd-4f8a-94eb-daf1386a9341", "id": "377a2d9a-ac92-472e-9ad1-35d5514aacbb", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.OAZ-aT6Up91UM70PDTbzNoBjrqsF-Wk-PgwnYpWwLXw52gmUrWfH1XyYRj-nKOn25mIac1IY2lQx1rDSTBWUTZL85lTLhDvOLATaBLzUEBXgyPJWwL00_5A6PD-mcNe2nBi5uHGSCOpcTDrngMn13aPWvkt_bA_qYMj0OmP-t--kSqdN_5vUR6-IZ1TzdMU-Legb1zo-tuESh6kAbqC2DOxvEzHbbrq0sZpiT-QJbUvSkoBGV25M7eHGETFdcwjFYUwt67Qtn3Sb9gyUw24W9icuOPsWeYqRjZpX3DrgJbvkHO3EnlLipoXUJfO94PgjCBIvt6LSVDEW-oMHakulLQ.PZ-vV5gci_3mf8yQN-P61Q.oYD5n66gCM5DmNzUTAaMwkf0_s7jgApXiOq1UJtUM3EMZuC2B4DHEmfijS4NG_NQ1E4ENHQ5KI1W7W9OaapaEr7sW9P1Z57tanpUuv6jccRGlZcHhHB__sJ0-j8FWXQOCQ8PKOvr9hJx0q_CRFwsygOcu5YgtGkR4On62uFUaU2cIxUWOLdFhSLu91vmrvJ44oBIxNbfGKzyvfIOzsNQ4J1RP83ZcDn8ihKdmM7yYSh3osuIRhK7XtjedWJLQJvNIebALGv1uxcj5r33xZARnfrBrH0K1Rihn-dlsaVRvG9X9BeUOtVi0U-KPOSaXVFwec3IsuqAuoNbl8fPY7eCJhl730g-gCOec1m49qm4oLXppbxSTgr8GmqASypCCEo2YoZYA-SCQcsCJKK2y1V5SzHUs4JIsonIE_KHybx-oJ5QPFzOu4nsucCAUftpVqoBGS1nfODC6ab0jfRBQHdqf91aN6aUZ3Z3Yj7cjK0DgbsyAxOJuMI3ZJCU4Cobi15Cq__c0zZZMX0VPJq5IM1C4576OE2_Js-Rj_UG_TVkNH6ZILAXBj8Ky8LP1Uo4dcbQN2hhjgAdJAvdtaDlvgf9j-JlEOSA5vrjXaoj7TVpzS57USm7zAjcgd7mCvkrhu97rb-nC_PZoDm4jwCOafHy5xRCgn-IS8lYYqdTW-kld0tg9qpf8Ye0FjLfSqMOFobmiewpx6rYOF1Vs1gcL9NLZjHOcvnj0QG-ixFv_i9kLwgDHqX_ZOyCQVtc5creMiepZC2IsfdRm-cSeroP9q2tVSbbhAJeRaaWZk0dTrlAIChY6J1DPs2p77WbcQ4wplR8cP5zFFUCzVH_Diokt4m4UUXmhqLVsxLtf_Lsd3z5rG9HQ_wrjZcuDUOm7NWsYuwT60grUz1P8R8VedNzwKEPIw.D1ODKy7aNR9eNm8PsH98cUDX4hdioCo3gpEt7bIYHDo", "opbs": "13c82465-d73f-4c2e-b9b9-a25c251d1267", "response_type": "code token", "session_id": "377a2d9a-ac92-472e-9ad1-35d5514aacbb", "nonce": "8b2d60ec-771d-4b1f-bafb-2dcb1d760ae7", "client_id": "22134d57-56b3-4f10-97d5-a560a649d92a", "response_mode": "query.jwt", "sid": "6bc3af3b-8ecd-4f8a-94eb-daf1386a9341", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ca2200d1-dd04-47d9-b95f-4a4cb51ae8e4", "old_session_id": "63e4b07f-ecd5-455f-8217-f4cdcead9e5a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:45" }, { "isJwt": false, "opbrowserState": "4d473420-9e48-4807-8cad-43e25093b7c9", "deletable": true, "dn": "jansId=3cc808e6-6546-4b93-934a-a41a500da1ec,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:45", "creationDate": "2022-11-24T09:25:44", "ttl": 0, "sessionState": "8bc33880abde61c3fd20c78cf866441c3b0878d7cbc1f72c3e9a3b8f5ad4d650.12759b8d-c6d1-483f-b472-aa568a762b73", "lastUsedAt": "2022-11-24T09:25:45", "permissionGrantedMap": { "permissionGranted": { "f8a0ba14-050d-4737-88e9-7cc59b6d667e": true } }, "outsideSid": "20d52e11-a329-4330-8b44-36eb8d9c432d", "id": "3cc808e6-6546-4b93-934a-a41a500da1ec", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjQzZDUyODYxLTU3NGEtNGQwMi1hZDg4LTNjZTdkYjdkZDNhNSIsCiAgImNsaWVudF9pZCIgOiAiZjhhMGJhMTQtMDUwZC00NzM3LTg4ZTktN2NjNTliNmQ2NjdlIiwKICAicmVzcG9uc2VfbW9kZSIgOiAicXVlcnkuand0Igp9.KhK2ZPvh7iIEkz8aLKxmVgzDon3IoyKxMmGLbcVbQUnGYoPHsgLJc6wCJb9RspvzcOK7xQV9AiHJOkjdquwXSURkbPFneVmtYT6vfUgoN3NtFnyP8HLTHP85TJnEGEBZYAlEYpddES-vyfqxo61LkJn_PsxkT7_xnGYPCiFy7IUqyDil22tnmXXDAHOFRVXdjYTQsTkoqUvI6r4dNrK0pU4eiEKvDxaBuQiYoQZtcAax_ybqpOhNE_3MTGBZxwgIqEMtDlElEHkquaJQzVTiMEYuZORK2-PqSFDbRvny8ed6QplhBL21BF1rt2xClNCnfbV1-lL4bDnQ9AnQ7tPkyQ", "opbs": "4d473420-9e48-4807-8cad-43e25093b7c9", "response_type": "code", "session_id": "3cc808e6-6546-4b93-934a-a41a500da1ec", "client_id": "f8a0ba14-050d-4737-88e9-7cc59b6d667e", "response_mode": "query.jwt", "sid": "20d52e11-a329-4330-8b44-36eb8d9c432d", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "43d52861-574a-4d02-ad88-3ce7db7dd3a5", "old_session_id": "a5547c6d-ff6e-4597-9e30-4800df908709" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:44" }, { "isJwt": false, "opbrowserState": "19ecccde-4d96-40f6-b913-1dd35da7733c", "deletable": true, "dn": "jansId=3eee1437-1a58-4001-a2ab-c5c316e268fd,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:45", "creationDate": "2022-11-24T09:25:44", "ttl": 0, "sessionState": "9b975496b28be48a0412a36fd84c5573bac8539022002ced23864c6f7ecae607.113f8045-b191-475f-b7e2-d92cb7a75e35", "lastUsedAt": "2022-11-24T09:25:45", "permissionGrantedMap": { "permissionGranted": { "4722d64d-fcc5-4360-a581-a1a4a88b3f24": true } }, "outsideSid": "ddd1d280-8d6b-422a-a756-7d62f68f870b", "id": "3eee1437-1a58-4001-a2ab-c5c316e268fd", "state": "authenticated", "sessionAttributes": { "opbs": "19ecccde-4d96-40f6-b913-1dd35da7733c", "response_type": "code id_token", "session_id": "3eee1437-1a58-4001-a2ab-c5c316e268fd", "nonce": "406436ff-1a22-4878-88aa-a38d383a41f5", "client_id": "4722d64d-fcc5-4360-a581-a1a4a88b3f24", "response_mode": "query.jwt", "sid": "ddd1d280-8d6b-422a-a756-7d62f68f870b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "96c8496a-2610-449c-8e3b-ceea7a5dcbaa", "old_session_id": "73a9f82a-a33a-49df-b774-55f8b5fc1a5b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:44" }, { "isJwt": false, "opbrowserState": "46efff1e-9fb1-4853-884a-d7894430ab69", "deletable": true, "dn": "jansId=66f241ee-4658-4b9a-853d-358e3f42a6b7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:44", "creationDate": "2022-11-24T09:25:43", "ttl": 0, "sessionState": "a06f4596bfb957c43b1a597b86b987c34cb81e7927bb25041e037892d5de9807.719ad5cb-fcdf-494c-b9bc-a1904327697d", "lastUsedAt": "2022-11-24T09:25:44", "permissionGrantedMap": { "permissionGranted": { "51a18511-defc-41df-a3f3-3e3f00b1f4e4": true } }, "outsideSid": "6e0bd5ec-2120-4e86-b20c-6548c897452f", "id": "66f241ee-4658-4b9a-853d-358e3f42a6b7", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.pLchwlWsNF2vWcyJEdhpunDBrBV8e_1zzqXHFogE0_iL2RYTFxgngg.3Z5XUk6GSHdk-3KK.4rg6gdnGy4ahldq3igH5_Ue5EnXtZks40eV_TawUpBVvRplSd57vnMzJNqYupgTQN7ovUvPY3mWXdZ1iatWCYA80VSirJcLlaSl62cWx4jK-c2ixSMW9vKZ6oRDadTH3l7clwG6KsTbT9IlvF8rMkNRVqv_-yD_PCwRddviXZffPWvR2lqGOBhRVV4VPW9Un4oBfUmOar-odfmeiFo25grsGVmHdiYND9Nb1czZNVqGqo5ZIB0a7LHI4jI8cfNUvSyUNM2U-Sr-ZFynlnoyht20xIWX-tD1jiVsZSzsjZnZanALmkmwN4nlfUJUgZP4l0rrYmYnE8np32SWQQFtoP-fJL_tsP0ItrvBNiBXL32n-GFJYA9vYUIewScUd99gAYrI6IXwYYzPS4NGNwrEpt4n7rvi62esREwwJ9h4Y8gUYGjcbcdQi0-OqWucP6h-i5bq5TeaMbAk4c1NHTNnp35MJ1LARE1MuM2M66ssqM-z81YbpKPhjm8Jha8HFGfPjZ2tejGcQFhCmvttZxsnyF95GGY4TU3poyKX6mk05ae9ybkm0ftGsm6vnWsj7k59AmSQCKrLdVyOHlJc-UB-kCdc0V_nXbLZXdEEjEdlwlxFBVPdvilULMIAVFy1JXi5x_qXT4uL-9uwpEGiYNn9_db61a_bcwQKExyENPaDpGuQ49bqhPpx9oG6Xfd-xXlxCy8iRi2VitR-Z0wtx7fjuX656vdGTL30Rj-OJFpEHvmo4yqeiqd6IfefUg8fLiEllmdOeXkQUe1gQ6TJ3h4zlkMGNIWg8feBSppyBL_l5gUxfHZIRdyq9MKuDSvcrC8VfzVreohQExCKBiysSPICBP2rgFv9FVXGSxLPNfba-6yKgrk1B0lSzAlc_9l8_rAjXBiWIdxWtahR8AQ.ohRuLgP23T4TJrnLMbCklw", "opbs": "46efff1e-9fb1-4853-884a-d7894430ab69", "response_type": "code token", "session_id": "66f241ee-4658-4b9a-853d-358e3f42a6b7", "nonce": "e12bfbd7-29cc-42fc-b156-76b629232625", "client_id": "51a18511-defc-41df-a3f3-3e3f00b1f4e4", "response_mode": "query.jwt", "sid": "6e0bd5ec-2120-4e86-b20c-6548c897452f", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "912bbbfe-03e6-4bc4-8be1-9f06c4cb1213", "old_session_id": "d4d8416c-e44a-4983-9f7f-1c1715dfdf29" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:43" }, { "isJwt": false, "opbrowserState": "6c6a2788-fe8f-4c51-b832-da82cc7f0351", "deletable": true, "dn": "jansId=612bdf84-f297-4f76-ad58-b50a7f92db0d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:43", "creationDate": "2022-11-24T09:25:43", "ttl": 0, "sessionState": "e4b430fb36cf432b55119dde96e183d1a641033535f0d0bbcbc538ba8f60412d.cb7d338d-9284-40a6-85e1-0f8da8825270", "lastUsedAt": "2022-11-24T09:25:44", "permissionGrantedMap": { "permissionGranted": { "3bd9b018-d97a-4e28-a1de-4e212b1f7c73": true } }, "outsideSid": "89fc0586-f7aa-44f4-8202-c0f4abe880ac", "id": "612bdf84-f297-4f76-ad58-b50a7f92db0d", "state": "authenticated", "sessionAttributes": { "opbs": "6c6a2788-fe8f-4c51-b832-da82cc7f0351", "response_type": "code id_token", "session_id": "612bdf84-f297-4f76-ad58-b50a7f92db0d", "nonce": "a1a4eed6-7f69-4a61-bf49-0f274a874b9f", "client_id": "3bd9b018-d97a-4e28-a1de-4e212b1f7c73", "response_mode": "query.jwt", "sid": "89fc0586-f7aa-44f4-8202-c0f4abe880ac", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9e4fb238-5b46-4297-9aef-6b09cddac335", "old_session_id": "43519681-b603-4516-a2e8-9c1af5ef6e6a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:43" }, { "isJwt": false, "opbrowserState": "846d49ac-3d7b-4a4e-87b1-be71cc19308e", "deletable": true, "dn": "jansId=594de61b-c3e1-4ba9-86c5-651da9e4c4a1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:43", "creationDate": "2022-11-24T09:25:42", "ttl": 0, "sessionState": "1930402fdc75d99f016f2a76c8fb453e87336887ade78355e40094cf323f973a.0df6032a-0771-4629-8343-68c1b9fb9bea", "lastUsedAt": "2022-11-24T09:25:43", "permissionGrantedMap": { "permissionGranted": { "e6b9dce2-0c2a-4e64-bc82-32b2d966ddd7": true } }, "outsideSid": "10fd9ee3-c621-4b57-876a-9f1fddb63f32", "id": "594de61b-c3e1-4ba9-86c5-651da9e4c4a1", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjJkYWRiNjg3LTFjMDktNDk4NC1hZjllLWQwOWQ2MmM0MDQzNiIsCiAgImNsaWVudF9pZCIgOiAiZTZiOWRjZTItMGMyYS00ZTY0LWJjODItMzJiMmQ5NjZkZGQ3IiwKICAicmVzcG9uc2VfbW9kZSIgOiAicXVlcnkuand0Igp9.jgmWyvDkm0cvLxevORzKTd1P6tufS0zBY-FJKR7l2l9JdXDCuSRBd9wj3lQBAwiyYFRDe9EUmMCwMf5xFsZnSEWBl3HE9EciDp2FmoUHfZ7991tCsdu1RlYATf_GvEX07hyLDPoVMssNqiCsd_S8ekMqPhGAUCdxY1_S9w4JcIk8CoRABZk0SVssHQkh6soSKJpqXSZS80-zqumNgaRzJQ7Rhvk9B-yW4QV1XfKAxCFlsQP9StU0A-C_dCqjV3NvX5C9QHflXnCCK9NF6T_7RBTGbd8k04FaMlUoAMT7Iv8P83sNKLN0cFvBQ1FXt-2uGC1pmzFSLE7z1z-kULTLfA", "opbs": "846d49ac-3d7b-4a4e-87b1-be71cc19308e", "response_type": "code", "session_id": "594de61b-c3e1-4ba9-86c5-651da9e4c4a1", "client_id": "e6b9dce2-0c2a-4e64-bc82-32b2d966ddd7", "response_mode": "query.jwt", "sid": "10fd9ee3-c621-4b57-876a-9f1fddb63f32", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2dadb687-1c09-4984-af9e-d09d62c40436", "old_session_id": "93e88db7-30f9-43f5-a7bc-68511fe5e523" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:42" }, { "isJwt": false, "opbrowserState": "2b0cd852-7707-4068-875f-79f883d678bf", "deletable": true, "dn": "jansId=08ce97fb-3dd4-4f69-b43b-57038b82c1ee,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:42", "creationDate": "2022-11-24T09:25:41", "ttl": 0, "sessionState": "e3c242fa71febfd7f8a013089c988d0fe839b24c8fca7e8e242b96e7b0e32704.2b1d40de-0f45-41c0-84bf-ea95708491b4", "lastUsedAt": "2022-11-24T09:25:42", "permissionGrantedMap": { "permissionGranted": { "21056cb9-e67f-4043-a012-8cc4054e63ea": true } }, "outsideSid": "1a31a8f3-d45d-4bbd-835a-f298b5adfa4b", "id": "08ce97fb-3dd4-4f69-b43b-57038b82c1ee", "state": "authenticated", "sessionAttributes": { "opbs": "2b0cd852-7707-4068-875f-79f883d678bf", "response_type": "code id_token", "session_id": "08ce97fb-3dd4-4f69-b43b-57038b82c1ee", "nonce": "c2b34dce-2803-49b5-a9e2-b483eded73e6", "client_id": "21056cb9-e67f-4043-a012-8cc4054e63ea", "response_mode": "query.jwt", "sid": "1a31a8f3-d45d-4bbd-835a-f298b5adfa4b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "24cb1e32-efb1-49f2-88c0-4a89fb795ffe", "old_session_id": "6b02e0e6-2288-4331-96c7-7efcc22a8878" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:41" }, { "isJwt": false, "opbrowserState": "43e4aae3-6e7e-4b29-97b3-011af6278654", "deletable": true, "dn": "jansId=75708f72-693a-42ea-b8ba-29954dae34d0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:41", "creationDate": "2022-11-24T09:25:40", "ttl": 0, "sessionState": "3df5eeb1c620d0f59649706ceaf6950c4db30688aec9b70e04c4f28cb37e9ae4.0a8c706c-6428-4563-882d-8493fd11cc44", "lastUsedAt": "2022-11-24T09:25:42", "permissionGrantedMap": { "permissionGranted": { "386dd483-1f34-4a47-8b1f-a201e0d878db": true } }, "outsideSid": "ab1560a7-d8a8-45a9-a175-1fc6b7b73bcf", "id": "75708f72-693a-42ea-b8ba-29954dae34d0", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogImE3NTUyMDI4LTBhMWMtNGRkYy05ZmVkLTc2ODg1ZTVlZGMwMSIsCiAgImNsaWVudF9pZCIgOiAiMzg2ZGQ0ODMtMWYzNC00YTQ3LThiMWYtYTIwMWUwZDg3OGRiIiwKICAicmVzcG9uc2VfbW9kZSIgOiAicXVlcnkuand0Igp9.rzUugOv-KSf5zdlObiyn-kYPfgc93d4F4P4IHpp9JLxwv-G3z7a1Lw8Em7OCNPIwCdGCCnaIIIb0iUnWS5EJ_zURx3wRQ-XP_-jYvWYEPJvGKVDGYiXepStIpAxrQGpxweT9sHj_gAXqtMYuPd_ThOAgskeDY7eF-EJITVwTUjCFveLGa3YGBeMGfaQVB0WkL2KVQsnCUglmBO4Y289zmMzBPZ3LBUetOeEd4S0c11EZb5liDoR_o1q5Cg-sZBjxlQeTcbKAuFVpWdHFz4hTu9xXeZoTbtdbgWnM1ax5o7Ld7kiX0BI_AVi4PNjdKLofc8h6SyllJXSW8qYGxDFQ6Q", "opbs": "43e4aae3-6e7e-4b29-97b3-011af6278654", "response_type": "code", "session_id": "75708f72-693a-42ea-b8ba-29954dae34d0", "client_id": "386dd483-1f34-4a47-8b1f-a201e0d878db", "response_mode": "query.jwt", "sid": "ab1560a7-d8a8-45a9-a175-1fc6b7b73bcf", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a7552028-0a1c-4ddc-9fed-76885e5edc01", "old_session_id": "20d0e202-43f6-42ba-9a4e-640d7fa61676" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:40" }, { "isJwt": false, "opbrowserState": "fd94d9c6-d894-44e8-b303-14b3081583eb", "deletable": true, "dn": "jansId=aaf7f8be-cd63-4713-9722-3c98dd49f656,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:41", "creationDate": "2022-11-24T09:25:40", "ttl": 0, "sessionState": "844837f293c36db1f5d1ea3f8b6b4579a46bf94a057476e85b0d2e82fc85057a.f2df6e29-322f-4f84-9740-99795aa09e0b", "lastUsedAt": "2022-11-24T09:25:42", "permissionGrantedMap": { "permissionGranted": { "12efe666-e8d6-4372-9847-dbe4678ff147": true } }, "outsideSid": "2c308745-5d40-4ac4-8ef0-afc64eeb63fa", "id": "aaf7f8be-cd63-4713-9722-3c98dd49f656", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJlMTkzYzQ4Mi00MGY4LTRiZTItYTczMi1iNjA5MjA4MzU4YTkiLAogICJub25jZSIgOiAiZDE5NmRlY2ItYThlOS00MDA5LTgyOGQtMTVlYmRjM2FmNGFiIiwKICAiY2xpZW50X2lkIiA6ICIxMmVmZTY2Ni1lOGQ2LTQzNzItOTg0Ny1kYmU0Njc4ZmYxNDciLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.IzHkQy6b-Koi72_Zu8fApDPhIMk3BHEF1cj7gsL_RlNcirrpigU6MDSiSGJkIPX4XtnaLcGspJBG1k8ZXUwFOO3DNM9hAJbsMeFDq1_D4zVFq8gwHi2VDT3C1IqnFs4TuUYmz6ghJyJFNSvcQtccLGUGA9cor7tlp-3NFSCmqL5Kbpjro49uMsJfJdVsgolM7kRJXX_wbcFXGrjkV4CJwmk9X0sMa22pO90JX1nLiH9LxURQP9IfIMKgh3ZgXuDc-Vr700UZxYm3swlfHce9q1-byC0hE8xvD_A_Dmdib6nnuvNjUx7hnftZBHlFwGlhQNsxYzPW9hB3t3VSZraSCw", "opbs": "fd94d9c6-d894-44e8-b303-14b3081583eb", "response_type": "code id_token token", "session_id": "aaf7f8be-cd63-4713-9722-3c98dd49f656", "nonce": "d196decb-a8e9-4009-828d-15ebdc3af4ab", "client_id": "12efe666-e8d6-4372-9847-dbe4678ff147", "response_mode": "query.jwt", "sid": "2c308745-5d40-4ac4-8ef0-afc64eeb63fa", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e193c482-40f8-4be2-a732-b609208358a9", "old_session_id": "a79fa915-b6ff-4187-bbe2-9ce161cf596f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:40" }, { "isJwt": false, "opbrowserState": "ff12fef3-7e0f-4d5f-90c2-7ca5b3725e27", "deletable": true, "dn": "jansId=46827af4-a54b-4384-9816-c0c0286fddeb,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:41", "creationDate": "2022-11-24T09:25:40", "ttl": 0, "sessionState": "19d11bafe01f49b4216d43b5ba712624ca3a3db424123bfa51d138dc691dcfba.ca8ddfa3-43ab-42b6-aaed-225b62606d4c", "lastUsedAt": "2022-11-24T09:25:41", "permissionGrantedMap": { "permissionGranted": { "4613635f-db62-453f-afaf-c971a1a8e856": true } }, "outsideSid": "8cc9bbce-c332-4498-bc91-f089119f9068", "id": "46827af4-a54b-4384-9816-c0c0286fddeb", "state": "authenticated", "sessionAttributes": { "opbs": "ff12fef3-7e0f-4d5f-90c2-7ca5b3725e27", "response_type": "code id_token token", "session_id": "46827af4-a54b-4384-9816-c0c0286fddeb", "nonce": "cac3f2d0-f87f-40dd-b18a-445e9c048a1b", "client_id": "4613635f-db62-453f-afaf-c971a1a8e856", "response_mode": "query.jwt", "sid": "8cc9bbce-c332-4498-bc91-f089119f9068", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "756fdadc-c7d6-458c-a8b0-a52de1083f9e", "old_session_id": "06377354-567b-47c8-a441-ec5e07c05eff" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:40" }, { "isJwt": false, "opbrowserState": "fd4bd373-b790-4ece-bf96-783379c0f12d", "deletable": true, "dn": "jansId=2a6b4ba4-884e-4d4b-a31a-c82842e83628,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:40", "creationDate": "2022-11-24T09:25:39", "ttl": 0, "sessionState": "39a8fe598ed637d810f638c48a8cdd6aaaa24fc886ed491aa3b43e71247a0598.8b4f1a0d-0bcb-4f57-9ae8-7bc4dd19a58c", "lastUsedAt": "2022-11-24T09:25:40", "permissionGrantedMap": { "permissionGranted": { "6e504b7f-c15f-4785-8315-f2192ab629f6": true } }, "outsideSid": "ede09364-90c3-4ae0-a702-4e465c87b3b2", "id": "2a6b4ba4-884e-4d4b-a31a-c82842e83628", "state": "authenticated", "sessionAttributes": { "opbs": "fd4bd373-b790-4ece-bf96-783379c0f12d", "response_type": "code id_token", "session_id": "2a6b4ba4-884e-4d4b-a31a-c82842e83628", "nonce": "af4e2a8e-61ec-4a75-87f5-5f67794ca277", "client_id": "6e504b7f-c15f-4785-8315-f2192ab629f6", "response_mode": "query.jwt", "sid": "ede09364-90c3-4ae0-a702-4e465c87b3b2", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ae849f9f-15ab-424b-954a-00cd42ba408f", "old_session_id": "d724f71b-1c7f-400b-a78a-a1bd10011a9f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:39" }, { "isJwt": false, "opbrowserState": "c78c41b5-c1c9-46b9-b9a8-4b002bf870c3", "deletable": true, "dn": "jansId=60e187ff-27bd-47d2-976e-c2fa17a1244d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:39", "creationDate": "2022-11-24T09:25:38", "ttl": 0, "sessionState": "fc0b9d4e13ef2311e60023068af5d747271d1fd27e5a6cf6c5c58419ad1c031e.772704af-9e23-4826-83f1-b379bd403601", "lastUsedAt": "2022-11-24T09:25:39", "permissionGrantedMap": { "permissionGranted": { "9cb06d00-5520-4cb3-ae0e-087b56d1b2d0": true } }, "outsideSid": "befe784e-5953-4b67-b52a-b779cdb2f1fa", "id": "60e187ff-27bd-47d2-976e-c2fa17a1244d", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI4MGUyMjFlZS1jNTBkLTRhNDEtYmM1Yy1kNzc3ZWMxYTFlNzYiLAogICJub25jZSIgOiAiNjY1NzJhMzItNDI0OS00ZDAzLThjOTQtZDJhYjEzMjBlOWNkIiwKICAiY2xpZW50X2lkIiA6ICI5Y2IwNmQwMC01NTIwLTRjYjMtYWUwZS0wODdiNTZkMWIyZDAiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.UVJxw5eYjKirjMtZtblGqSmKGqJUQPRf1CvOV14LWS5VtBQdc6zneF1pbMgNEm6WqAQblMTR71tcBZWZshjpDJ3poFqUZeK-AOLTOnSgbvAlVALm-iAxkk6cvDmA15ZRz4wAuIIfX0werrmaS-CHXGL3cprIuB9qnfv0XuXkt4FDz5VBS20ntOdTtM4FnDevXDjxtuDPchHyg8aKUqkQ0VsCV9N0vu3DHFHJU8d9lsByBEh6TcY2qzopYezxC3L1gdfKCDANpNMJ4oMSwS9qCT2ttW0QfgoHdVPPJpffNFR2jQfJlyR1cChhlA-pYs7hWThW7L0t_qKUVXcuokA8ow", "opbs": "c78c41b5-c1c9-46b9-b9a8-4b002bf870c3", "response_type": "code id_token token", "session_id": "60e187ff-27bd-47d2-976e-c2fa17a1244d", "nonce": "66572a32-4249-4d03-8c94-d2ab1320e9cd", "client_id": "9cb06d00-5520-4cb3-ae0e-087b56d1b2d0", "response_mode": "query.jwt", "sid": "befe784e-5953-4b67-b52a-b779cdb2f1fa", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "80e221ee-c50d-4a41-bc5c-d777ec1a1e76", "old_session_id": "a438966b-6808-4372-b486-0e87758829b0" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:38" }, { "isJwt": false, "opbrowserState": "7e22e9c6-4616-4f1c-b8fd-c48a2e0cba29", "deletable": true, "dn": "jansId=975f615a-800c-4dfd-9d9d-c7f9b4039c24,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:39", "creationDate": "2022-11-24T09:25:38", "ttl": 0, "sessionState": "5ad7cadb2f3008133ba79108bbdfe5ee3c1b43380b4e606d8693e874706f553d.46da6ab7-3539-48f2-b7fe-b064b068399f", "lastUsedAt": "2022-11-24T09:25:39", "permissionGrantedMap": { "permissionGranted": { "bc865e91-d32b-40ad-8387-d6f0d28b8850": true } }, "outsideSid": "5bbcd63d-3cb4-4a42-899f-4bc4d4686b56", "id": "975f615a-800c-4dfd-9d9d-c7f9b4039c24", "state": "authenticated", "sessionAttributes": { "opbs": "7e22e9c6-4616-4f1c-b8fd-c48a2e0cba29", "response_type": "code id_token token", "session_id": "975f615a-800c-4dfd-9d9d-c7f9b4039c24", "nonce": "dea6d03e-d7a0-4357-9a12-7d9dab9b6b88", "client_id": "bc865e91-d32b-40ad-8387-d6f0d28b8850", "response_mode": "query.jwt", "sid": "5bbcd63d-3cb4-4a42-899f-4bc4d4686b56", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "cfecf59b-743c-45e2-8e5e-6467424fef73", "old_session_id": "08de099d-f38a-4206-8c3c-bece5dcbd40a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:38" }, { "isJwt": false, "opbrowserState": "369727e8-6c77-4399-8feb-04ef13f1f0ac", "deletable": true, "dn": "jansId=083ab75e-4871-4dcf-9120-42fd5823f0de,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:38", "creationDate": "2022-11-24T09:25:37", "ttl": 0, "sessionState": "cb4a131bf26a8f092a7c0551897ba6e13fc896e4ab1066d09b461a427b225919.dd6239af-ea1e-4e0d-a266-8405e7bf0141", "lastUsedAt": "2022-11-24T09:25:39", "permissionGrantedMap": { "permissionGranted": { "5420e5b5-7327-491d-a117-57f442687f6b": true } }, "outsideSid": "d178b773-6b91-4a9c-aef6-49b31dcaae47", "id": "083ab75e-4871-4dcf-9120-42fd5823f0de", "state": "authenticated", "sessionAttributes": { "opbs": "369727e8-6c77-4399-8feb-04ef13f1f0ac", "response_type": "code id_token", "session_id": "083ab75e-4871-4dcf-9120-42fd5823f0de", "nonce": "365c9c30-75e5-4533-b20a-3dc2753ba6dd", "client_id": "5420e5b5-7327-491d-a117-57f442687f6b", "response_mode": "query.jwt", "sid": "d178b773-6b91-4a9c-aef6-49b31dcaae47", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "200a4100-3bc9-45b2-91f5-8cda1643305c", "old_session_id": "b6fc2913-4b2c-4cc7-842c-d23a43e29997" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:37" }, { "isJwt": false, "opbrowserState": "2daa212e-9829-493a-9cb4-920c426a061c", "deletable": true, "dn": "jansId=0777a523-bf08-451b-a663-09d0fe97611c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:37", "creationDate": "2022-11-24T09:25:36", "ttl": 0, "sessionState": "65594331b2f0eb6275e98c0ff055fdee5af79717d306ea8ddef96907c6140d73.bfe0b6fd-819c-4e1c-999c-fad42fa8fc77", "lastUsedAt": "2022-11-24T09:25:38", "permissionGrantedMap": { "permissionGranted": { "e8edffed-cefb-4628-91c6-4cf110a7d6b9": true } }, "outsideSid": "d53089db-1fbf-4daf-ab62-3e901e714083", "id": "0777a523-bf08-451b-a663-09d0fe97611c", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjQ5OTgwOTM2LWY1ZmYtNDVhZS1hM2QyLTVkODY2OGIyZWFiMiIsCiAgImNsaWVudF9pZCIgOiAiZThlZGZmZWQtY2VmYi00NjI4LTkxYzYtNGNmMTEwYTdkNmI5IiwKICAicmVzcG9uc2VfbW9kZSIgOiAicXVlcnkuand0Igp9.AEkl7p1N6rapK7yBeV6DN4ADUSE9z-dwjCdQC6M_T7wED3zMTyWk9Ah4F17LoZhZinlbthWRsm5ND8DWkUb-dKnlAftAEaT3qS-s-dmbSUfJ_pDLLmLvOPrDehH7THe7610iK39BopUDA_NXQ7rkostjhRWdJzfsyzpjwzQO1HT9A7e4", "opbs": "2daa212e-9829-493a-9cb4-920c426a061c", "response_type": "code", "session_id": "0777a523-bf08-451b-a663-09d0fe97611c", "client_id": "e8edffed-cefb-4628-91c6-4cf110a7d6b9", "response_mode": "query.jwt", "sid": "d53089db-1fbf-4daf-ab62-3e901e714083", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "49980936-f5ff-45ae-a3d2-5d8668b2eab2", "old_session_id": "3b2e2f94-d191-4d3e-b477-0c268c44827e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:36" }, { "isJwt": false, "opbrowserState": "974822bb-40f0-4a34-8aef-3432badf9dfe", "deletable": true, "dn": "jansId=36b2f064-57f4-4ff4-9202-8735df56d303,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:36", "creationDate": "2022-11-24T09:25:36", "ttl": 0, "sessionState": "2c466115cbb8fe2ac4234bb28f9a24663f16df5641330dda47af0cfde7513176.797d73c1-4d9d-4b7f-a658-d2c68ab10523", "lastUsedAt": "2022-11-24T09:25:37", "permissionGrantedMap": { "permissionGranted": { "26606f83-3da3-4bb0-be01-42d768284fa8": true } }, "outsideSid": "1f383f94-a2d5-479e-9c32-46bc71e391b5", "id": "36b2f064-57f4-4ff4-9202-8735df56d303", "state": "authenticated", "sessionAttributes": { "opbs": "974822bb-40f0-4a34-8aef-3432badf9dfe", "response_type": "code id_token", "session_id": "36b2f064-57f4-4ff4-9202-8735df56d303", "nonce": "6ef1508b-65e9-4a36-8088-6c59aca260d4", "client_id": "26606f83-3da3-4bb0-be01-42d768284fa8", "response_mode": "query.jwt", "sid": "1f383f94-a2d5-479e-9c32-46bc71e391b5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3b316f12-bf30-44c7-88a3-7742e87dedc1", "old_session_id": "babf2036-d44a-4dc1-856c-dd0afa565713" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:36" }, { "isJwt": false, "opbrowserState": "5a370d53-3ad4-43a9-8c1f-f2789d58c1ff", "deletable": true, "dn": "jansId=abf96a43-eea4-4387-8d6c-e1303f2ef96e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:36", "creationDate": "2022-11-24T09:25:35", "ttl": 0, "sessionState": "0ffbc3cdd71c175d5d78e63c4cd72d442bc2dd62decdf4498a23e476a92e7554.b84439ee-2b5a-4d4e-9fe5-dd442f99bbed", "lastUsedAt": "2022-11-24T09:25:37", "permissionGrantedMap": { "permissionGranted": { "3c5c6678-7de7-4b67-8b07-60fb690bd019": true } }, "outsideSid": "7153b925-2e10-471a-8389-763e803c4ca6", "id": "abf96a43-eea4-4387-8d6c-e1303f2ef96e", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIzYWUxMjNkZC0yN2I3LTQwNjktYmVhNC05ZTI3YjRhM2E1ZjMiLAogICJub25jZSIgOiAiNzgyMDg0MmYtYjU5My00NWQ4LWIwMTEtYWRmNGNkZDE5OTEyIiwKICAiY2xpZW50X2lkIiA6ICIzYzVjNjY3OC03ZGU3LTRiNjctOGIwNy02MGZiNjkwYmQwMTkiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.EFa75A4wptusoIuNeV2wwgDZjjfzdgB16eGI1iXvFh9HmZkPAvfF_ErWHTzKbMnGSMEm5pFUSof_r7asWRVezoaGF6CIT095xzOUQaoKePnAjmgy8ml7mRtl3rUoo19rPn_B_ORqhZmjekrCFv947_vQ2uwY0RBqdAS3B6HY0aIIuOlm83HwoxxrrCwqvDgEneFXXISjBdw2ha02yPQeZ_0rd92JLyEi6WjR9wuFpH4tg7QgHyP_VLnakXZN6_4Beba8Ay2dX_bMpK41ozpMpjb3bF_r7L4iI2GUT9yzdtxzKDVCbRYEgGCu1Ar6bVOhj1nrzQaXJBtvBraeaDvcEw", "opbs": "5a370d53-3ad4-43a9-8c1f-f2789d58c1ff", "response_type": "code id_token token", "session_id": "abf96a43-eea4-4387-8d6c-e1303f2ef96e", "nonce": "7820842f-b593-45d8-b011-adf4cdd19912", "client_id": "3c5c6678-7de7-4b67-8b07-60fb690bd019", "response_mode": "query.jwt", "sid": "7153b925-2e10-471a-8389-763e803c4ca6", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3ae123dd-27b7-4069-bea4-9e27b4a3a5f3", "old_session_id": "03c1cc82-d967-4a75-8a3f-c8ee853059a2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:35" }, { "isJwt": false, "opbrowserState": "bdfd3a4b-ca6e-4779-88f1-d08f9796f18f", "deletable": true, "dn": "jansId=21c1e50d-21d6-4b29-af4d-a82015c94ff1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:36", "creationDate": "2022-11-24T09:25:35", "ttl": 0, "sessionState": "e252cf6ca7631efa9974d67444e192458d1f9e4f0838fd55b2eb8b1aefff6f56.3735813a-42d3-49cc-b537-c5a8734ebad5", "lastUsedAt": "2022-11-24T09:25:37", "permissionGrantedMap": { "permissionGranted": { "af5f4af1-529a-4a88-ba8d-70db82b76cdb": true } }, "outsideSid": "edd9af00-98c5-45dd-8a9b-e28f4e780bd4", "id": "21c1e50d-21d6-4b29-af4d-a82015c94ff1", "state": "authenticated", "sessionAttributes": { "opbs": "bdfd3a4b-ca6e-4779-88f1-d08f9796f18f", "response_type": "code id_token token", "session_id": "21c1e50d-21d6-4b29-af4d-a82015c94ff1", "nonce": "718fddc6-f559-46d8-84a5-8aa330f0a1f8", "client_id": "af5f4af1-529a-4a88-ba8d-70db82b76cdb", "response_mode": "query.jwt", "sid": "edd9af00-98c5-45dd-8a9b-e28f4e780bd4", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "690ed676-64d8-4e21-b975-9f598e6cf0fc", "old_session_id": "5e226ee0-d733-4b94-a6eb-b797bd0e6ca7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:35" }, { "isJwt": false, "opbrowserState": "5fe9b133-4e0f-4098-9255-9151042f7281", "deletable": true, "dn": "jansId=86748631-ceaf-4c02-bb1e-2fba06c78964,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:35", "creationDate": "2022-11-24T09:25:34", "ttl": 0, "sessionState": "bc252c84f6c416e2984e138087f2f7832f1e0ab95808c663b59ab8e2d5b5d5fc.6ac9d867-a77e-433b-b744-a380c4b2782b", "lastUsedAt": "2022-11-24T09:25:35", "permissionGrantedMap": { "permissionGranted": { "e5f9bc08-7d45-431a-9f01-a9628c3a9e9e": true } }, "outsideSid": "88edfbae-7a1e-4259-9a01-614bd372e4dc", "id": "86748631-ceaf-4c02-bb1e-2fba06c78964", "state": "authenticated", "sessionAttributes": { "opbs": "5fe9b133-4e0f-4098-9255-9151042f7281", "response_type": "code id_token", "session_id": "86748631-ceaf-4c02-bb1e-2fba06c78964", "nonce": "1351dbda-a31b-4de2-a558-2d7422310951", "client_id": "e5f9bc08-7d45-431a-9f01-a9628c3a9e9e", "response_mode": "query.jwt", "sid": "88edfbae-7a1e-4259-9a01-614bd372e4dc", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6bb9ce9e-b0a1-4f18-99e9-e725b356702e", "old_session_id": "7ecb83e7-bd82-4be0-89cf-c3096f0bddd0" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:34" }, { "isJwt": false, "opbrowserState": "660d0c59-f41a-4856-bcc5-3dc2399ef62f", "deletable": true, "dn": "jansId=7c7ddb28-b654-4951-a835-c42beca59b36,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:34", "creationDate": "2022-11-24T09:25:33", "ttl": 0, "sessionState": "93e5663ead8ab97a1c1396705032e0bb4c7ff581afb932e9264f044a2a4ff755.61cc6098-250d-42b0-9ae6-1aefb44c15b1", "lastUsedAt": "2022-11-24T09:25:35", "permissionGrantedMap": { "permissionGranted": { "c3c6aa1c-6909-41e7-8b3c-c53159549a41": true } }, "outsideSid": "73785f93-da75-4713-9822-3b189afc5acf", "id": "7c7ddb28-b654-4951-a835-c42beca59b36", "state": "authenticated", "sessionAttributes": { "opbs": "660d0c59-f41a-4856-bcc5-3dc2399ef62f", "response_type": "code id_token token", "session_id": "7c7ddb28-b654-4951-a835-c42beca59b36", "nonce": "aded4b2f-98b5-4055-b63a-203a3851993f", "client_id": "c3c6aa1c-6909-41e7-8b3c-c53159549a41", "response_mode": "query.jwt", "sid": "73785f93-da75-4713-9822-3b189afc5acf", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "91565258-db2a-4726-b35d-cd243a6a4124", "old_session_id": "5c78562a-5166-46cb-b7f8-66d7654889e1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:33" }, { "isJwt": false, "opbrowserState": "80c0e671-b14c-492c-9825-8a0a1c3abbb1", "deletable": true, "dn": "jansId=652646e6-df64-460d-a316-f61a137874c8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:33", "creationDate": "2022-11-24T09:25:32", "ttl": 0, "sessionState": "a8bd6278efbb3a5c8b81245ac3964559dc1211312ba07c924fb9d2c0c5168cbb.3e141275-f47a-4559-8419-002db49d5a70", "lastUsedAt": "2022-11-24T09:25:34", "permissionGrantedMap": { "permissionGranted": { "0c742826-5b77-4d6a-a188-bab3b47cc698": true } }, "outsideSid": "85244bef-9e0e-46e7-84c0-34013efbc17e", "id": "652646e6-df64-460d-a316-f61a137874c8", "state": "authenticated", "sessionAttributes": { "opbs": "80c0e671-b14c-492c-9825-8a0a1c3abbb1", "response_type": "code id_token", "session_id": "652646e6-df64-460d-a316-f61a137874c8", "nonce": "31e84d01-6d48-4a10-aa8c-5b7f95fcf0da", "client_id": "0c742826-5b77-4d6a-a188-bab3b47cc698", "response_mode": "query.jwt", "sid": "85244bef-9e0e-46e7-84c0-34013efbc17e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d60f0ad6-4938-4d21-8cec-4c26b50e267b", "old_session_id": "2b8bb19e-c731-4e6f-ae42-e4a96254dbce" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:32" }, { "isJwt": false, "opbrowserState": "825f134f-0437-4b99-82cf-2dcea84c8f13", "deletable": true, "dn": "jansId=70a5f13d-487f-4918-9831-fff5530ece1d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:31", "creationDate": "2022-11-24T09:25:31", "ttl": 0, "sessionState": "c80a8dc59b8ae92d57d89e37177da5827fed42f390ebdc3431789edd3fc8bff2.4d150182-c533-416a-b5da-e29bff692189", "lastUsedAt": "2022-11-24T09:25:32", "permissionGrantedMap": { "permissionGranted": { "50f44fb3-23b1-4117-99cc-e0fd4d47d395": true } }, "outsideSid": "04353541-19b3-4bb1-b0ff-e12c6dc877f0", "id": "70a5f13d-487f-4918-9831-fff5530ece1d", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJlYTFmMTMzMC0wNmM4LTQ1NzctYTYyYy0yNzdhYWRiMTM2MmYiLAogICJub25jZSIgOiAiMjcxNWYxNTEtMmVlZS00ODU5LWJiYzUtMTVhYjljNTk2N2RhIiwKICAiY2xpZW50X2lkIiA6ICI1MGY0NGZiMy0yM2IxLTQxMTctOTljYy1lMGZkNGQ0N2QzOTUiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.BEKeGqUxGFovEWC7ZLvt67VzC5X8aHuLcubMt-1PEnPORfpvzqqdlsXyHrADtJ142mXqiRfSQLTBUQn2qnva0R4PnPbu0CWEeMsYIQfSfgB4cNFYpyIUzjdTrEjvhmg1", "opbs": "825f134f-0437-4b99-82cf-2dcea84c8f13", "response_type": "code id_token token", "session_id": "70a5f13d-487f-4918-9831-fff5530ece1d", "nonce": "2715f151-2eee-4859-bbc5-15ab9c5967da", "client_id": "50f44fb3-23b1-4117-99cc-e0fd4d47d395", "response_mode": "query.jwt", "sid": "04353541-19b3-4bb1-b0ff-e12c6dc877f0", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ea1f1330-06c8-4577-a62c-277aadb1362f", "old_session_id": "31be6f0c-2c2e-4d52-a7a9-d85e0380c71c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:31" }, { "isJwt": false, "opbrowserState": "57c232b9-a0eb-4c45-89c0-ee4580e5a492", "deletable": true, "dn": "jansId=a48fed20-1162-4bf8-8692-f600c380e257,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:31", "creationDate": "2022-11-24T09:25:30", "ttl": 0, "sessionState": "a6bf3bbc36684d7f3516bf289b670cd55da1fe2588530f6e40e6fc9f6d04bb17.89c55c83-0768-4f65-b3a8-1674d49de978", "lastUsedAt": "2022-11-24T09:25:31", "permissionGrantedMap": { "permissionGranted": { "6407e4e5-362b-4617-b9c4-ab883147b6b5": true } }, "outsideSid": "8a964d06-1d1d-4585-9a10-034c160f2c53", "id": "a48fed20-1162-4bf8-8692-f600c380e257", "state": "authenticated", "sessionAttributes": { "opbs": "57c232b9-a0eb-4c45-89c0-ee4580e5a492", "response_type": "code id_token", "session_id": "a48fed20-1162-4bf8-8692-f600c380e257", "nonce": "6120c4f2-cdb1-4479-8f85-b813a554c991", "client_id": "6407e4e5-362b-4617-b9c4-ab883147b6b5", "response_mode": "query.jwt", "sid": "8a964d06-1d1d-4585-9a10-034c160f2c53", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "365583b6-59e9-4bd8-bc7b-11a734f2e867", "old_session_id": "471aa1d3-fa12-4f20-9e4e-b03f766d2670" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:30" }, { "isJwt": false, "opbrowserState": "a748d751-4431-4610-9e9c-e7b38b509d89", "deletable": true, "dn": "jansId=918430d7-700a-4303-928d-4eba350030f6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:28", "creationDate": "2022-11-24T09:25:28", "ttl": 0, "sessionState": "739d4ba33ddf8c07c99a240c18ebfb04a9d763b1357bbcba9a509ebe3c09f7db.a5e90356-1775-4173-a40d-24ff4b6c0d0a", "lastUsedAt": "2022-11-24T09:25:29", "permissionGrantedMap": { "permissionGranted": { "328e4647-f61a-4aee-8849-ae5a337ecea6": true } }, "outsideSid": "9598b54c-d2c3-42d1-b72c-1527617acbc7", "id": "918430d7-700a-4303-928d-4eba350030f6", "state": "authenticated", "sessionAttributes": { "opbs": "a748d751-4431-4610-9e9c-e7b38b509d89", "response_type": "token", "session_id": "918430d7-700a-4303-928d-4eba350030f6", "nonce": "69590681-5e28-4b90-a867-d5dfe440e8b4", "client_id": "328e4647-f61a-4aee-8849-ae5a337ecea6", "response_mode": "jwt", "sid": "9598b54c-d2c3-42d1-b72c-1527617acbc7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a2a8bdf3-2708-48b3-92a2-c2b312f7f2aa", "old_session_id": "54ae59df-b7a9-4575-977d-fd22a21a1f9d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:28" }, { "isJwt": false, "opbrowserState": "b784862a-1255-491c-b2de-3f766a314468", "deletable": true, "dn": "jansId=65fb2331-f30c-4db3-ad8c-ffa63507b745,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:27", "creationDate": "2022-11-24T09:25:25", "ttl": 0, "sessionState": "0f631a3b8d7b1c39b1b11aaef88c9ce47ab1a2aa65f61944abbaf0ad93a98a22.49d3868a-ca25-43c4-ac1c-d7e112b12f13", "lastUsedAt": "2022-11-24T09:25:28", "permissionGrantedMap": { "permissionGranted": { "57cf180e-e5d6-4ce0-ad0c-4303055ec7ca": true } }, "outsideSid": "3e614f09-e931-4b7a-8be7-1ce559758343", "id": "65fb2331-f30c-4db3-ad8c-ffa63507b745", "state": "authenticated", "sessionAttributes": { "opbs": "b784862a-1255-491c-b2de-3f766a314468", "response_type": "code id_token", "session_id": "65fb2331-f30c-4db3-ad8c-ffa63507b745", "nonce": "c7e6b3a4-f7db-454c-b0c4-e80fc5a2bb77", "client_id": "57cf180e-e5d6-4ce0-ad0c-4303055ec7ca", "response_mode": "query.jwt", "sid": "3e614f09-e931-4b7a-8be7-1ce559758343", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "39674edd-bcc4-4430-834a-47d7234961ac", "old_session_id": "c8fe28ca-5556-42cc-b74b-325137a3c632" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:25" }, { "isJwt": false, "opbrowserState": "38110113-2ed4-4889-aad8-7321f1ba5c73", "deletable": true, "dn": "jansId=6000bfef-a5cd-4521-aee4-466483eae04a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:27", "creationDate": "2022-11-24T09:25:25", "ttl": 0, "sessionState": "d559e21557b850461e4ad3e9fc74129a8880ed59af0873f8bd3f6f45f4cb8d85.bf6d1086-d818-4162-8442-fd416411b781", "lastUsedAt": "2022-11-24T09:25:27", "permissionGrantedMap": { "permissionGranted": { "11b25c4d-57b8-437d-9e86-512828314f7d": true } }, "outsideSid": "cc89f0f1-d240-46cb-9093-6c22b2047d0f", "id": "6000bfef-a5cd-4521-aee4-466483eae04a", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIxYjlhYzk1Yi1mYmYyLTQ2MmYtYjllZC1iMTc0ZWRjNzMzOGEiLAogICJub25jZSIgOiAiOTA2OWMzZTUtNWExZS00MGI1LWFlZDAtZWVmODA3ZDVjZDBiIiwKICAiY2xpZW50X2lkIiA6ICIxMWIyNWM0ZC01N2I4LTQzN2QtOWU4Ni01MTI4MjgzMTRmN2QiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.Ng-GsuhgPBVao33AQKdTufYGT63-uxP1M1tfCbq4nEqajFhmyBLsCWbwn3-82qCPU6qSx6CiQS8TBxcS9G9W8jFPobAUoX9jL1Rbmc8rm9BhadyfeGoyO2_4GmeYyplPcYq5sTUoGNfEujvEwXzePbddbccrMxPU5C_Z5f1UHzPsA43Nw3Lhihnpd32rPDda_WFpalp-xcmiTdYvDXjQXSbsupiE8AObmoc1-lCGM86dS4e3hJ3WHdYQdAxO5w5yxc4e60pe0P9ou0XFwpDMmAjL-PzghOtVNTQfSnDcDbrtw2R6f7oP8AMGnGGEVttDOGs2wLjdjPCAvYFGdKhC5Q", "opbs": "38110113-2ed4-4889-aad8-7321f1ba5c73", "response_type": "code id_token", "session_id": "6000bfef-a5cd-4521-aee4-466483eae04a", "nonce": "9069c3e5-5a1e-40b5-aed0-eef807d5cd0b", "client_id": "11b25c4d-57b8-437d-9e86-512828314f7d", "response_mode": "query.jwt", "sid": "cc89f0f1-d240-46cb-9093-6c22b2047d0f", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1b9ac95b-fbf2-462f-b9ed-b174edc7338a", "old_session_id": "6320748c-4f55-4a90-987f-e902899aac70" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:25" }, { "isJwt": false, "opbrowserState": "41ff8f25-dbe7-457e-88c0-9c8b1f3e2f3a", "deletable": true, "dn": "jansId=7fde376f-5660-49e4-bb9f-09206e9006b7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:24", "creationDate": "2022-11-24T09:25:23", "ttl": 0, "sessionState": "500d1256ac7a3c7d95ebd1aa2549a77575f3dc3d10bf23b4e1a0c398d9f049af.3c017719-76aa-48d4-a0e0-cc798d189da1", "lastUsedAt": "2022-11-24T09:25:25", "permissionGrantedMap": { "permissionGranted": { "c748cb52-a2b8-491a-ba4a-9711bbb90389": true } }, "outsideSid": "5d0026a1-b9b7-4a6e-97ee-727459fb79cd", "id": "7fde376f-5660-49e4-bb9f-09206e9006b7", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.B70k5sdm0sTFat8QEEW1XfHAerf_aeqfxZY-5nPYJQMbg36J4D3Sdfdz-UCjSegL7_YBDR6BTsChADd48GyRSN9KxUxbp-tQgou20pb3tUV0RuvMs9B4JhBrhJnoJm2j7H093AxKFsmaGwBBOC_C9tGlY0-i_9u6W24FGctgVKPxNqBR6l0tyAx_kaCvCAMhK1HuOM1k4Cfhe5aueQYIIKrFcgszg7QEbH-AwNTPHZfthMp2dx4Um2hfNi4ntDTi0X3c0Ezl_cmmKqO1A-da_tAmemJO96vSaBODr0KtL9dyxF2RAFZczoBz7BMbn4R9tGgY9E6ljfmK5widfis85Q.C5ld20Xf2-AGXtSap54JVg.adtjUne9Zo5UIegKO0ZBX345t1JU2DEdM5naaalOqHTuj7KeWG89Bdnv_v8Wpwwv2dHEIh0ftYOYMNwIijyCTQN-87IaOSEFlsT7bheXsJjgNKaxcG0MNamjSKSbVwFeopWvKy0tXI-gE8gNJRorTcMs6e7QK7fhNh_ReLxHTKIsLh172XszIqnTjNPORgJ35h5okfpYAAti2iKKDEE06aA859JO3ptkT_TqseJnZ57aG1T2X7qaXZ-aQX2N_oc3OCSSXjidW1i7LAcoCcqiPua1qbJufYxyxVR0vasPj-njlF84Pf07b1U2F_84a7XeAVxsiiO1Wd6J4Xn94JKtmb3czuruDAGJJs-At8lF87-PrEhh73lwAnTHmv68UKrhOv_iQmI9S0rqGSzp2ad64wRKPPELTmEjf1V0Sq--gzsslriRYoxZAmiulT5Kr6BQXIemh9XItLtrp-7e0MuWu1RibW45K8VCz5y0_J6_aIHFPlhW-Pb4jlDnhjF9hr8b6zogzkZpTu8VXcKHJEd5-YX9a-_6S6dBnlHVT2EZq5A_5FOujX8ojReIPyGutfb9Bp-Fkr5fvja-wP3VE6_77fnIqgavwl4TmMdlTLHUBH6XysxAvuw5XLyfoMzjJRPRxUoW813XX0HfFxLLomeCROWxx3OoMial7qkHNedKKzVE5IK1X62FEifElvQGSA8UDUA3cTyRdDiquzmvPAPbOuFKiTgduarniInTQNyGZq1aS4jh4Kj4igk_HQufUt0bCDFMphQohT45iWrB0P_DZLIvWd67sBZwJovYmScpF6H0vC4evDmeI5R8khENvJi4SAR4HnvOIisWNSgjXpquN6L7YKJiH9USAyn3ae_-cSrFm4wX4CHRsyqiZj8_09uDIgGHEB7LgX-Y-boFMCEPnC-L84AXiFzCcnnOcczZUFs.qxp6a-TCoH3m7l9ufwqSP4Wxr-D_0BjBpZo0shjcl0I", "opbs": "41ff8f25-dbe7-457e-88c0-9c8b1f3e2f3a", "response_type": "code id_token token", "session_id": "7fde376f-5660-49e4-bb9f-09206e9006b7", "nonce": "3e4b8281-615e-4908-909e-c1f49124b554", "client_id": "c748cb52-a2b8-491a-ba4a-9711bbb90389", "response_mode": "query.jwt", "sid": "5d0026a1-b9b7-4a6e-97ee-727459fb79cd", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6863a35a-eb4d-4ba1-a09a-979d5eea3e46", "old_session_id": "bbe870fa-63c6-44da-a040-86430e5c67bf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:23" }, { "isJwt": false, "opbrowserState": "7679561b-c426-4d63-86ba-fcf5bb5b72ad", "deletable": true, "dn": "jansId=0d8e7d9c-2c47-480b-8dae-a9efd43a9bac,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:24", "creationDate": "2022-11-24T09:25:23", "ttl": 0, "sessionState": "6c3e4fa2023f9627c5e1879398584c2f9f42ffd8c186f1ab8f48d96d2b58f5f5.9210158a-af01-4bb4-8589-02713b62ed4c", "lastUsedAt": "2022-11-24T09:25:24", "permissionGrantedMap": { "permissionGranted": { "59e6ab20-82f5-4cc9-9567-9a6eb84fe7fe": true } }, "outsideSid": "735da57f-4315-42e5-8551-83498317f4a4", "id": "0d8e7d9c-2c47-480b-8dae-a9efd43a9bac", "state": "authenticated", "sessionAttributes": { "opbs": "7679561b-c426-4d63-86ba-fcf5bb5b72ad", "response_type": "code id_token", "session_id": "0d8e7d9c-2c47-480b-8dae-a9efd43a9bac", "nonce": "ac2c3c54-4786-4996-9832-e940e34e825a", "client_id": "59e6ab20-82f5-4cc9-9567-9a6eb84fe7fe", "response_mode": "query.jwt", "sid": "735da57f-4315-42e5-8551-83498317f4a4", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2a9de25e-7e1e-43ca-97c9-4520b017b4be", "old_session_id": "10559704-e963-40a0-904e-26cb4d294ba5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:23" }, { "isJwt": false, "opbrowserState": "c076d378-1f23-40b0-a1f1-f98954730399", "deletable": true, "dn": "jansId=1510403a-6c45-4b0a-98dc-ca45d90301bb,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:24", "creationDate": "2022-11-24T09:25:22", "ttl": 0, "sessionState": "c98fa7ace76d0c40c570c9f1de635f9a145f86a1e5e8e33d012039e36ed77468.c7842a18-5c45-4789-83c1-b2a0b414c946", "lastUsedAt": "2022-11-24T09:25:24", "permissionGrantedMap": { "permissionGranted": { "07df2b6a-6080-4200-a92f-4c20b2120514": true } }, "outsideSid": "d4e69ca8-d7b7-4d64-8b6a-07fee4ad2fd5", "id": "1510403a-6c45-4b0a-98dc-ca45d90301bb", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI5NGVmOTQ2NC0zMjE3LTQzZGYtOGJhNS05NDUzMjY0NGI1Y2UiLAogICJub25jZSIgOiAiNjkxMGYxMWUtN2U4Yi00MDllLTlhNTktNTUzOTFjYjFmZDMxIiwKICAiY2xpZW50X2lkIiA6ICIwN2RmMmI2YS02MDgwLTQyMDAtYTkyZi00YzIwYjIxMjA1MTQiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.i1aLjcokqPqozuw60BZjOVfXKDjyaLmd8MsDX178g7kX6nvxUuj8C26sNCDAtWNuZO6a7OeQgwH2YOdTKXLHkZesBA03BWF387tM2dd4MMpNbjiySaqlm2jq_-sDCf7QSgyLd8CB0XTBuX6vlBeQ8wbK0-TkirU8nL7Wucnzanhy92kUd-XGWJCcjvF_InT893vzdQscW_6G8LfKkIDhzMCd8UifI6sMuBpbnUUYDTK2dUFmw8Bbmmru7PkGwCJ5XKumppDzw3oK66QKepxmQqpm4aqdExeqshQSazFqt18H6q72LRMrWIvp1qAJSeA1E0z6gXbsimhRAJbC7KmF5g", "opbs": "c076d378-1f23-40b0-a1f1-f98954730399", "response_type": "code id_token", "session_id": "1510403a-6c45-4b0a-98dc-ca45d90301bb", "nonce": "6910f11e-7e8b-409e-9a59-55391cb1fd31", "client_id": "07df2b6a-6080-4200-a92f-4c20b2120514", "response_mode": "query.jwt", "sid": "d4e69ca8-d7b7-4d64-8b6a-07fee4ad2fd5", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "94ef9464-3217-43df-8ba5-94532644b5ce", "old_session_id": "353e5aaa-94de-4cbf-8f8e-dae29b33555c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:22" }, { "isJwt": false, "opbrowserState": "486afdf4-232d-4bca-a25f-e2db4b15f81f", "deletable": true, "dn": "jansId=546d3bb7-09b3-4283-b4c1-d69e85cde12a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:23", "creationDate": "2022-11-24T09:25:22", "ttl": 0, "sessionState": "3a159b709331667087f3682296b155eb51c664cf661e274d44bb6f23655755fe.faf1528d-68f0-40f9-b776-c1fb6c5cef5d", "lastUsedAt": "2022-11-24T09:25:24", "permissionGrantedMap": { "permissionGranted": { "99ce4e27-824b-4699-9de3-378cead668e3": true } }, "outsideSid": "1abc373c-a1fa-44f5-af5d-859e349c05af", "id": "546d3bb7-09b3-4283-b4c1-d69e85cde12a", "state": "authenticated", "sessionAttributes": { "opbs": "486afdf4-232d-4bca-a25f-e2db4b15f81f", "response_type": "token", "session_id": "546d3bb7-09b3-4283-b4c1-d69e85cde12a", "nonce": "46e77050-2567-4fe4-81ca-0e428d943fec", "client_id": "99ce4e27-824b-4699-9de3-378cead668e3", "response_mode": "jwt", "sid": "1abc373c-a1fa-44f5-af5d-859e349c05af", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5e1c5b14-a1a3-4a3f-b672-3f3126fbcf0f", "old_session_id": "801ce667-2638-4afa-8474-64feb37ffc46" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:22" }, { "isJwt": false, "opbrowserState": "ebb48443-ba32-40a9-8238-0bad3a7f8a06", "deletable": true, "dn": "jansId=3ec76dd6-e3a2-40ae-9e2c-9b389e0312f4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:21", "creationDate": "2022-11-24T09:25:20", "ttl": 0, "sessionState": "da2b44a683beb16ddd7be52c8f7609692f0cf5a1c75d7361fbdae8c6d3dc990d.83d73c8d-1532-436d-a9f9-f62a36d47cbf", "lastUsedAt": "2022-11-24T09:25:22", "permissionGrantedMap": { "permissionGranted": { "3a1f08fc-a287-4219-b94d-4d587dacef56": true } }, "outsideSid": "d8addf7a-66c3-4719-b8c9-e4fa0f229358", "id": "3ec76dd6-e3a2-40ae-9e2c-9b389e0312f4", "state": "authenticated", "sessionAttributes": { "opbs": "ebb48443-ba32-40a9-8238-0bad3a7f8a06", "response_type": "code id_token", "session_id": "3ec76dd6-e3a2-40ae-9e2c-9b389e0312f4", "nonce": "60054879-2b8b-4b39-8ae4-ff7550ed6690", "client_id": "3a1f08fc-a287-4219-b94d-4d587dacef56", "response_mode": "query.jwt", "sid": "d8addf7a-66c3-4719-b8c9-e4fa0f229358", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3277e48e-bbec-4c6f-a008-9dcb6c5a39f7", "old_session_id": "a0852023-aa83-42f9-a914-d60130c8f378" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:20" }, { "isJwt": false, "opbrowserState": "8079c68e-3dfe-466e-8413-47a81b79b7a0", "deletable": true, "dn": "jansId=3eced5a2-8c5c-4eb5-9bc4-350f31958518,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:21", "creationDate": "2022-11-24T09:25:20", "ttl": 0, "sessionState": "15d37ce9cca41b7e320b19f0efd893013b49e545bee5db38bd4cd84188c62ef2.34a312d2-0b1d-45ef-aa47-21f08a648367", "lastUsedAt": "2022-11-24T09:25:22", "permissionGrantedMap": { "permissionGranted": { "e9a49a3b-811d-4309-8f0d-1a2df9718457": true } }, "outsideSid": "4b528831-79a9-451a-8666-ac62764201ba", "id": "3eced5a2-8c5c-4eb5-9bc4-350f31958518", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.dD3tVhUD-g0yZGjp79RfDR2RiHLUnlGR_07dih2v2NLeXg2JpLGrxw.xDhpeVNnJa4XmzmU.hwCDWrVaUG7LMGFpTHuRN2S1JtH_Tt2jHGyvLTmJXlEEUuUb8GB-khYZjPEmBNLA38pQYcvQ71ryTRLpLV0JsvkFvUJE2KRg7Sc4L-opYMA-ZlTtacAsqAay8OJo3vuiguWGdm5hFDoGXnAzVU4ojIddXww4uCFZzcpfpl1sC7wCvp0IKlNKs4QCSEi0mU2wSDQTreD1nSRv_9FJLOhEJYMETpaYCHAwhiR9_RaWV0F-LjSM_ApQEjfc0LRwZY9xVDfPrd34yV37tWANhisnHfrQPWrsxzosoh_SIi9XNufUHtDoB1ts46JtG7FsuaKKPJCpieHjXH3WYfLkUB_wVOaGMQMtgxu8aH-Vpewf2Mw7T10x_Y5JR17ImELjhT-EqigjC_-DWzhbN-7kKBB7JXH0VB6ZiBBJ9oi7bBiEZUAQaGQjwsMJNK1Y3UT0cEGFIV64DZY-yEOeB7QcLb5-1fL_tJFBB0C_W2nk8P_sQGVjLNdCS7TI912n9EcUSbNzJjj--vyRjIFtuqYD8p2G8qpuDElLqHthZ51rVLnT_OM1O6kgNhPAXjBgvRSXVg6tZhtE30FTKO4t-95EYo8CCPADVZqjHPEbym60zC8p9y7gZkvfEmoJU2JHrfpWef2fFEO1QrJfvO7q-g4F-sd3g1AOjK8fdlaqjJpNyz0kTqNzC1K-8MXbIwnPBiAZb0uqEo171ookkHTLZFoPT3BFbBdcwxTec0rfjcLJxMSqJXyEhLrKQEILEpITeWqd_NIMSxfTXLVvuwrYoOk_x_V8cE_IcXHFgT7HOl7nsxz2kfK5Jt0G5ex50quzS3ogMYx3dvyxzvmegEqfl9ivnXZBV_OpOsJ3S8-gAW0KWISqVBqpPT9GWorhOiH5XELfSbnU3uqfHjC6iL0ri857PXXvFBprdjJoLdAV.5aNtgfloYJvEhnHwMG2URQ", "opbs": "8079c68e-3dfe-466e-8413-47a81b79b7a0", "response_type": "code id_token token", "session_id": "3eced5a2-8c5c-4eb5-9bc4-350f31958518", "nonce": "bf3dddb1-1730-4274-9d2b-28f571b9c064", "client_id": "e9a49a3b-811d-4309-8f0d-1a2df9718457", "response_mode": "query.jwt", "sid": "4b528831-79a9-451a-8666-ac62764201ba", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b7d9dbc1-fa9e-4478-b886-75a5f3ae212e", "old_session_id": "1b110d28-04e2-4be4-84a1-fabc71ab4650" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:20" }, { "isJwt": false, "opbrowserState": "a2ba49fd-0235-466a-a2b7-e7e169fb5402", "deletable": true, "dn": "jansId=a30b6e4f-f139-494c-9c53-7e610b35e377,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:21", "creationDate": "2022-11-24T09:25:20", "ttl": 0, "sessionState": "c256c88cfe6d3b2699e3de0e50bdf47018be3fe2c57847cb1fcab5d02336dc6e.d9e9b3ea-b8d0-40f1-83c6-515dd060f8b8", "lastUsedAt": "2022-11-24T09:25:22", "permissionGrantedMap": { "permissionGranted": { "dc14b034-c0db-4638-9ca3-61aa3ca8284e": true } }, "outsideSid": "6e72cde2-4234-4778-a88d-e4953bb11a22", "id": "a30b6e4f-f139-494c-9c53-7e610b35e377", "state": "authenticated", "sessionAttributes": { "opbs": "a2ba49fd-0235-466a-a2b7-e7e169fb5402", "response_type": "token", "session_id": "a30b6e4f-f139-494c-9c53-7e610b35e377", "nonce": "10e3b837-a85c-4857-8428-9e12f5adc06a", "client_id": "dc14b034-c0db-4638-9ca3-61aa3ca8284e", "response_mode": "jwt", "sid": "6e72cde2-4234-4778-a88d-e4953bb11a22", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2d7b0841-3144-43e3-b40c-ed330fd7e8f1", "old_session_id": "e05cf60a-aafd-4007-b777-ffdeacc992f2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:20" }, { "isJwt": false, "opbrowserState": "7ab266ec-4528-4cec-bc87-2aec9f8530a6", "deletable": true, "dn": "jansId=484d652f-0185-45c0-a05d-7f9f121f8876,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:19", "creationDate": "2022-11-24T09:25:18", "ttl": 0, "sessionState": "9940ea9f000138d8d7befe3748235e22af21e5c16dc90dbcd42b2b6dfeba94c3.98a976bd-b6ae-48cf-8a21-75466c7eabdc", "lastUsedAt": "2022-11-24T09:25:20", "permissionGrantedMap": { "permissionGranted": { "16bf888c-a50b-43a2-98ee-98c54d721514": true } }, "outsideSid": "a022bad5-9570-4eec-b2e6-2e74a7f135e7", "id": "484d652f-0185-45c0-a05d-7f9f121f8876", "state": "authenticated", "sessionAttributes": { "opbs": "7ab266ec-4528-4cec-bc87-2aec9f8530a6", "response_type": "code id_token", "session_id": "484d652f-0185-45c0-a05d-7f9f121f8876", "nonce": "140a1b18-5066-4bc1-812c-f286726c6a81", "client_id": "16bf888c-a50b-43a2-98ee-98c54d721514", "response_mode": "query.jwt", "sid": "a022bad5-9570-4eec-b2e6-2e74a7f135e7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4f7b33d9-1e04-4595-8f91-6649a2e04b18", "old_session_id": "a474e48c-c287-4196-8d15-873b32c18015" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:18" }, { "isJwt": false, "opbrowserState": "4f521aac-e3c6-470b-8e62-a9d463199934", "deletable": true, "dn": "jansId=53e29d11-12d7-49a9-a4a8-78d8841b4ec8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:18", "creationDate": "2022-11-24T09:25:17", "ttl": 0, "sessionState": "a5eeb96472495fdffbaa5c81518db985ea2059fd21cf482a0b3e4325672ed0c4.7d0ef092-1825-487b-abf6-02f5e1182a6f", "lastUsedAt": "2022-11-24T09:25:19", "permissionGrantedMap": { "permissionGranted": { "fcc18a0e-8802-4770-8921-a18a07f5577b": true } }, "outsideSid": "e863de66-e845-40b4-8274-4f638acccc42", "id": "53e29d11-12d7-49a9-a4a8-78d8841b4ec8", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJmYTg5Njc2Yi1jZDNmLTRhNjYtOTc0Zi0yZmU3NzIzOGU4MzYiLAogICJub25jZSIgOiAiMTJjOWVjNGYtZjk5OS00MjM4LWE2NmItNTIzOGJhYWJlOTdjIiwKICAiY2xpZW50X2lkIiA6ICJmY2MxOGEwZS04ODAyLTQ3NzAtODkyMS1hMThhMDdmNTU3N2IiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.sUPCrdJDvFOWjVlujGevyaJcMDVSQ84PSfENbv2chZpqdFpmJ-84HcHLo8-UXyKX_6u5Q_JmH2V-wsblsHRRiwLN-5z1Q2-KFlK-WyIqZv6Y2GAq4EsnWp45K95FINLf7j-2bQSlhYiDMoUn4q6ZlJIyd87IMKaoCpXtw5hejxXkPJNwcMv7yqjuX3vkv04i1PRQhfZyVqcl62-ymgwLV3KKeyCcuUWMY9fI6TfZTxz1Q0JTRVvuPh2d62EL6F5UQMLzMWomt1dKoMzs-v8oTjLFbqD5ShfbJ7nXYSpOwRfyO2aee5AN_Y7Zp4PYe0T_cl3iZSAMQdlJaVIZDxzDOA", "opbs": "4f521aac-e3c6-470b-8e62-a9d463199934", "response_type": "code id_token", "session_id": "53e29d11-12d7-49a9-a4a8-78d8841b4ec8", "nonce": "12c9ec4f-f999-4238-a66b-5238baabe97c", "client_id": "fcc18a0e-8802-4770-8921-a18a07f5577b", "response_mode": "query.jwt", "sid": "e863de66-e845-40b4-8274-4f638acccc42", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "fa89676b-cd3f-4a66-974f-2fe77238e836", "old_session_id": "3838f532-2f35-4c90-b225-13e276011e75" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:17" }, { "isJwt": false, "opbrowserState": "50b5cae8-be59-4082-beee-6b7fc916fcf8", "deletable": true, "dn": "jansId=1174714c-e170-443d-9ed0-885e5118a3a2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:17", "creationDate": "2022-11-24T09:25:16", "ttl": 0, "sessionState": "ba1a54f9a02cec083821e80ac3675c5a909efb5a657a1ee6f823a0861e7d8b66.ac8c34e2-b268-442d-a150-a0d7dc67a4ef", "lastUsedAt": "2022-11-24T09:25:17", "permissionGrantedMap": { "permissionGranted": { "ea2adfdc-7ed9-4437-851a-0d9ffc4463ae": true } }, "outsideSid": "64a68f70-9d1b-4e70-b134-e55612769476", "id": "1174714c-e170-443d-9ed0-885e5118a3a2", "state": "authenticated", "sessionAttributes": { "opbs": "50b5cae8-be59-4082-beee-6b7fc916fcf8", "response_type": "code id_token", "session_id": "1174714c-e170-443d-9ed0-885e5118a3a2", "nonce": "f572b994-1e4c-4ef6-8411-ad9a99b5d662", "client_id": "ea2adfdc-7ed9-4437-851a-0d9ffc4463ae", "response_mode": "query.jwt", "sid": "64a68f70-9d1b-4e70-b134-e55612769476", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "64f23d2e-a69f-476d-8114-93fbeeec2488", "old_session_id": "1b84e90a-9d43-47b5-9ba4-ccacfbf671a2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:16" }, { "isJwt": false, "opbrowserState": "e4947367-1e03-475a-b7f3-6c390e654307", "deletable": true, "dn": "jansId=78e8584f-31ae-4c70-b944-e0bc1024c074,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:16", "creationDate": "2022-11-24T09:25:15", "ttl": 0, "sessionState": "bb304f635115d2264912d97e9c3fd6990f70c4ceabd82618f59791149bfda2c5.25b999b8-3664-4898-a480-9b9f47c76a48", "lastUsedAt": "2022-11-24T09:25:16", "permissionGrantedMap": { "permissionGranted": { "2c9fc32f-2ddd-4865-b268-2f1bf3d7892e": true } }, "outsideSid": "bd1a5313-649e-452d-b895-3b9709dc2662", "id": "78e8584f-31ae-4c70-b944-e0bc1024c074", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJhNTlhMWI4NS03NWNiLTRmN2MtOWVkMy1hYzdlMWEzNmU0MTQiLAogICJub25jZSIgOiAiYzQ3MmU0MzQtZmMyMi00YzU5LTljOTUtMjA5NWZhMGQ2Njg3IiwKICAiY2xpZW50X2lkIiA6ICIyYzlmYzMyZi0yZGRkLTQ4NjUtYjI2OC0yZjFiZjNkNzg5MmUiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.F3ENWwreTwLQhRRmkodE3wOTiuB0XrD33R1nIPkhBsdUfn5iiFh5BGJSeVGotKDD2eEAlhVbtkkP_DvRPdnnaYSaRY_6XBz2nleQVBYgu5ipj15PDFKdnAm1NPb9D6z8sdRwJ-8zK20Kzeymce8nNWLwQGr58dOUvT5Lrt2TJp7Eii-YCXGxQ8OGgdtJzmpqDzrZjQo08ZrpqTzBWIACVfDKPQn0rgd8d61k3J1sh3J-Nx8M8XZqD2NzAddeuRotV7xXssFYZGOkCbTSiHdUm-pn0qT1Mf0FU_5zkUbdDOWWah39FlFfoPsEa4y0aUBQ50maS0FrEjB1-LOJdy0yiw", "opbs": "e4947367-1e03-475a-b7f3-6c390e654307", "response_type": "code id_token", "session_id": "78e8584f-31ae-4c70-b944-e0bc1024c074", "nonce": "c472e434-fc22-4c59-9c95-2095fa0d6687", "client_id": "2c9fc32f-2ddd-4865-b268-2f1bf3d7892e", "response_mode": "query.jwt", "sid": "bd1a5313-649e-452d-b895-3b9709dc2662", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a59a1b85-75cb-4f7c-9ed3-ac7e1a36e414", "old_session_id": "744d235f-f0ad-41d5-8b35-daba67a042cc" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:15" }, { "isJwt": false, "opbrowserState": "53360d74-544d-4209-ae24-b95cda84af65", "deletable": true, "dn": "jansId=0c126f3f-9d5a-4383-83b4-a3c21023ad3a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:14", "creationDate": "2022-11-24T09:25:13", "ttl": 0, "sessionState": "3074dc926b24961ccc2923be6d2099ea19f48060bd9403cddb2d674aea4b31b7.b4a93344-57dc-4568-b344-411dbacdff6d", "lastUsedAt": "2022-11-24T09:25:15", "permissionGrantedMap": { "permissionGranted": { "a831405b-63b7-403d-8c31-3b34a4114a87": true } }, "outsideSid": "805905f6-1a10-4611-9907-e6a6da98c400", "id": "0c126f3f-9d5a-4383-83b4-a3c21023ad3a", "state": "authenticated", "sessionAttributes": { "opbs": "53360d74-544d-4209-ae24-b95cda84af65", "response_type": "token id_token", "session_id": "0c126f3f-9d5a-4383-83b4-a3c21023ad3a", "nonce": "c32b1a03-c11f-422b-a610-e3b4e8ed336b", "client_id": "a831405b-63b7-403d-8c31-3b34a4114a87", "response_mode": "jwt", "sid": "805905f6-1a10-4611-9907-e6a6da98c400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4f654b47-0fca-4bfd-bee3-a638dda794d6", "old_session_id": "0ecfed7d-dc46-4841-b4e4-0689a38c6923" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:13" }, { "isJwt": false, "opbrowserState": "99971bbf-58e1-428a-9bde-4f656343dd8d", "deletable": true, "dn": "jansId=20f22c8a-6599-489a-b242-18e31ee47224,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:14", "creationDate": "2022-11-24T09:25:13", "ttl": 0, "sessionState": "51c7204d4374931c90602b01b0fbb272e5800a1a47c74d439c3d1f129e483c4a.1c06cd6c-94c7-41d4-8476-f343d72591e6", "lastUsedAt": "2022-11-24T09:25:15", "permissionGrantedMap": { "permissionGranted": { "9bfabe8d-4cc0-4320-95c3-7a03e116d6df": true } }, "outsideSid": "276774d7-3909-4a38-a862-a6f8a6c79dee", "id": "20f22c8a-6599-489a-b242-18e31ee47224", "state": "authenticated", "sessionAttributes": { "opbs": "99971bbf-58e1-428a-9bde-4f656343dd8d", "response_type": "token", "session_id": "20f22c8a-6599-489a-b242-18e31ee47224", "nonce": "76cb2dc0-9f6f-4ecd-8e36-23e1ba289372", "client_id": "9bfabe8d-4cc0-4320-95c3-7a03e116d6df", "response_mode": "jwt", "sid": "276774d7-3909-4a38-a862-a6f8a6c79dee", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f9eecede-7ffc-4f1c-8277-9ce75c620fce", "old_session_id": "adee422f-ca83-48ac-b09c-5ca4fb41af75" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:13" }, { "isJwt": false, "opbrowserState": "b7885d5b-d5dd-4a89-a0f8-740427723041", "deletable": true, "dn": "jansId=15d32379-3503-44e7-9bc6-597f9e4e480a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:14", "creationDate": "2022-11-24T09:25:13", "ttl": 0, "sessionState": "fe974c872a0923c376061774ac25fd52d963e7f73c9324c7d7db5db71986eb95.e38fcea5-998f-494b-9c8a-80d23d12a73d", "lastUsedAt": "2022-11-24T09:25:15", "permissionGrantedMap": { "permissionGranted": { "1e700e13-a6b6-49c8-83f0-73c6ffb22daa": true } }, "outsideSid": "bc08f9d6-0469-464f-bc45-b17952d8ff99", "id": "15d32379-3503-44e7-9bc6-597f9e4e480a", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiI0Y2E3NjMyMi1mY2ZkLTQyNWQtOTc0ZS0zMjBlNTZmM2U2YjFfZW5jX3JzYS1vYWVwIiwidHlwIjoiand0IiwiZW5jIjoiQTI1NkdDTSIsImFsZyI6IlJTQS1PQUVQIn0.IU0ZDXUy8SiKzaxJOlLoEaDeLutlDmtVVPUYBX0E_g1oSbCHmy4DKJqGZqygs3sndT1YNvlKUmTaBZuia4dQtse8vny7MtutBusmFVl5h5F_uQyaQqkfQ03pea92zeSmWrviBrVxpoHrOgPldb0nbFTLDRQJyJQCVAQHMHUYxduoF2wbSXdPsQgt1fuqiFh3IUlCoBpZiVtF_HYtlYupLAgIygO1L074t-MmwwEE3LJ5BUscxToRN8QEr-GXKP3bQu9ViANHBmUb3DWtVRIfKavsFMMSzAsgcee9tmLTCH1zAl0QH8P7rWA9j3INv7JAP-VzlH8UejfAsjOpUq37tg.L840YMqhgfsWVUlT.kVUlIVM2L5ZAeuQfW1lgeXXnhOipeuxJaIKhTbKpBFGzbgByWhB3Du6BN6hgw60vpZLmzKXgeu1oLdsgy4I2MuclfDjy6onqsqeqNzhntIapEBd7Gt2CodLTocm00ghqk2pUhMwvwFBYyYAeVYzOAcHNzIs27M3kZLMFzCKeHCCswn2SwvZa0jh7d8pVyNhUDX2GKEVlteX1zpOLcWFvimbSaOBFVgv_myGllow3Yxcr4rnIwge_Ld6CviWcVCWUdnKcCyaMvK9OaJgRS-zaWW0UHdlkYx6Sy8j-y0GsDE_8NbBabzCa9sCDDgMtPj2x2QvfsNfAkROB-7trLnhfZClUbDoTAQhMToY6VNNlRCLkTydV4TLke7dGbINpKDI11jhXCawHdvbJBlPyTXFt4r_YS5hivY2yri4fI7RmzGajtcPffroUEkqx76UknNkq3Mp2Li-i8fLf6E1gc85qcgayOoOu0dQBwCTm_Y-Guw_Q_XWRArNbGWmtHaF3HFSWQLWccqjurAB1wNpdAiTzGdQ5UdWZsekUQzmxOGJFqK5A2nyGI8reAWPFmrLVxvZ3ydZK5g-v0ya9lZu7Yc0G62XJ_z3Yn1kQUHKd1vAVFyEJ2Zro9JgrcwU_DDw_eE4jpmE1p3OICEKBJab9HJES9TcQtotgkMnfKAhilyG3au7-EnqQhJWAiX4RcYW-ryHfcwOdg8_2rOZJhvlYeGa8M4_awYL4i4CqY98S6S5yO7533RI0F6yGivRck037kaup0VbNAx4naffRT8zu-6dPr53fXr2beDUdzR7CoRnmgNYGm_4wI2_ZFM2wz7PEpo-PB2MbY1EyzGYc1e4UfGx4GX6X4aOHLT32ZiFOfBE9TqDUZYt6stZTcoO0AXxq7-9D6sdZr1B7ha4SFQL_XLo.QRdTO6NwEq_CVc3JmJmHkQ", "opbs": "b7885d5b-d5dd-4a89-a0f8-740427723041", "response_type": "code id_token", "session_id": "15d32379-3503-44e7-9bc6-597f9e4e480a", "nonce": "ba0ec897-80bb-4881-b475-f1e9a91cff94", "client_id": "1e700e13-a6b6-49c8-83f0-73c6ffb22daa", "response_mode": "query.jwt", "sid": "bc08f9d6-0469-464f-bc45-b17952d8ff99", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ace8547c-9f5c-4d9f-848b-cfc5053439ea", "old_session_id": "380cd5cb-19c9-4592-9d2b-6bce89ea9426" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:13" }, { "isJwt": false, "opbrowserState": "5e31eae8-0368-4b66-a6c3-51823fc533be", "deletable": true, "dn": "jansId=724a6ee4-1bb0-4078-809e-35f0e3e24291,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:13", "creationDate": "2022-11-24T09:25:12", "ttl": 0, "sessionState": "6305fef3a859838beff637d4bef8daf93b14e8345581c2fe55a5e75bbc5ed394.91df80b5-d150-4644-a916-2d36851577cd", "lastUsedAt": "2022-11-24T09:25:14", "permissionGrantedMap": { "permissionGranted": { "f341d32c-6ce9-47b4-87a1-908962294189": true } }, "outsideSid": "6044c5ae-0a5f-41b1-af92-38ede5aac917", "id": "724a6ee4-1bb0-4078-809e-35f0e3e24291", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJhNTViMGE4NC01YmUzLTRiYTUtODI3ZS05YjY2Y2E2ZjAxMWMiLAogICJub25jZSIgOiAiNzVmYzc2NzItNWE3Ny00MzJlLWJmYzUtZDE1ODk3MjU3NGM2IiwKICAiY2xpZW50X2lkIiA6ICJmMzQxZDMyYy02Y2U5LTQ3YjQtODdhMS05MDg5NjIyOTQxODkiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.EFdvuL6yvY4Ng05MIrNYSFOzAcNDwfvG6mAGsUi9ZunGRFYVKMIxiaXgDIzkbLLThTViWDkANSkgyIe-G-qpwCV-pED-Cgwv9oecFEv6fyjFx5iXMbhCMstTIAy_VyRxNxfKbl-GVpAF08hsy6UrCtJaLWvgF44aDQagpSeGtLFV7Yg7lrNA6vM7P1tzUOmAEUySOwlMRGREg7mtKi89vv3Keadf4UU6hXaP2P7gtu7Z8zR_x2L1JtD1mTgFfX5Hvwwmk2-GLUR0VQW4tUkA4nvpRZEAeyx7slQuXrLRycY45b2Ga-gvn2hREyV_cjkiqzDa-V3lDmlmY9_uHleeKA", "opbs": "5e31eae8-0368-4b66-a6c3-51823fc533be", "response_type": "code id_token", "session_id": "724a6ee4-1bb0-4078-809e-35f0e3e24291", "nonce": "75fc7672-5a77-432e-bfc5-d158972574c6", "client_id": "f341d32c-6ce9-47b4-87a1-908962294189", "response_mode": "query.jwt", "sid": "6044c5ae-0a5f-41b1-af92-38ede5aac917", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a55b0a84-5be3-4ba5-827e-9b66ca6f011c", "old_session_id": "94a6e91f-72de-4822-8bb5-8a03c66f3a2b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:12" }, { "isJwt": false, "opbrowserState": "185b0d38-f719-449f-b751-ea129b4c8ed9", "deletable": true, "dn": "jansId=90086d57-4e38-4d8f-b896-d8d92bc81288,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:12", "creationDate": "2022-11-24T09:25:10", "ttl": 0, "sessionState": "c40f4c173f27a5f9ecc1fba8a3532d3d0f3906d9c776cc66317f1953268a7f38.b77f86a2-e102-4d43-8a4a-c26b438a09cb", "lastUsedAt": "2022-11-24T09:25:12", "permissionGrantedMap": { "permissionGranted": { "1611e735-dc40-4828-8995-d81b375ddca9": true } }, "outsideSid": "4d376a24-799b-41bc-81ac-2fe4a78b03e3", "id": "90086d57-4e38-4d8f-b896-d8d92bc81288", "state": "authenticated", "sessionAttributes": { "opbs": "185b0d38-f719-449f-b751-ea129b4c8ed9", "response_type": "token", "session_id": "90086d57-4e38-4d8f-b896-d8d92bc81288", "nonce": "db21b5c3-40a5-4e28-b803-bdfe28c6da7a", "client_id": "1611e735-dc40-4828-8995-d81b375ddca9", "response_mode": "jwt", "sid": "4d376a24-799b-41bc-81ac-2fe4a78b03e3", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2fead167-fc8f-49a0-a474-d850ea35272d", "old_session_id": "87f81c45-8a13-46c4-b8e7-b55325e19a3c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:10" }, { "isJwt": false, "opbrowserState": "ad95f00f-bb58-47f5-8967-606b85fcbd88", "deletable": true, "dn": "jansId=9bbbce83-3c2a-4dc6-8993-dbb32422bb24,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:11", "creationDate": "2022-11-24T09:25:10", "ttl": 0, "sessionState": "d633880dbbbd5f10d17cc253fad191b18dd03429cd6327622fd923881dde3b93.ea890e92-d6c3-43fa-80e7-b39b0de750be", "lastUsedAt": "2022-11-24T09:25:12", "permissionGrantedMap": { "permissionGranted": { "786fd09b-b161-4eaa-82c3-c4ae7b524497": true } }, "outsideSid": "866ee4a1-82e9-441c-9ef0-606d2d20fb98", "id": "9bbbce83-3c2a-4dc6-8993-dbb32422bb24", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI5M2Q4ZDRiZi1kNDE1LTQxNTgtOWUzOC03NmRmZDQ4M2E4MDciLAogICJub25jZSIgOiAiOWZiYTQwNmMtZDQ0ZS00Y2RiLTlkYmYtODlmMDI1Mjk0OTk1IiwKICAiY2xpZW50X2lkIiA6ICI3ODZmZDA5Yi1iMTYxLTRlYWEtODJjMy1jNGFlN2I1MjQ0OTciLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.AHvQsOtzBZNiWsJyXBe6DwRL0X9NNTVvRvEcrgI00CVwKPffj-6IrzZAooYOVJfGXZ_b3Sdrc9ZCefRpfNejk8NlAStq9qrDReKhR4ivvHa51Gx9gMO_q4Fwfq29YCZftcEHLrr7LLR3qgw8NQPLv_vLfeK0dBoaDM2mGQA100kNUufH", "opbs": "ad95f00f-bb58-47f5-8967-606b85fcbd88", "response_type": "code id_token", "session_id": "9bbbce83-3c2a-4dc6-8993-dbb32422bb24", "nonce": "9fba406c-d44e-4cdb-9dbf-89f025294995", "client_id": "786fd09b-b161-4eaa-82c3-c4ae7b524497", "response_mode": "query.jwt", "sid": "866ee4a1-82e9-441c-9ef0-606d2d20fb98", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "93d8d4bf-d415-4158-9e38-76dfd483a807", "old_session_id": "111182d5-84d5-4e2a-ab57-9c56cda4407e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:10" }, { "isJwt": false, "opbrowserState": "d4ba572f-6e8a-4503-adea-751602fd32c2", "deletable": true, "dn": "jansId=47bf8e9f-bb4b-42d1-8442-066b221877c2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:09", "creationDate": "2022-11-24T09:25:08", "ttl": 0, "sessionState": "31e60a24f78927e4e5ef8bd54403b5634445d56d5d518d2a27480e7ea4e07b10.44d609fe-84e0-4e25-84ab-799da392ba32", "lastUsedAt": "2022-11-24T09:25:10", "permissionGrantedMap": { "permissionGranted": { "e4c965bb-dfce-420d-b7e4-b855a26d6c74": true } }, "outsideSid": "2cf0b89a-640b-461b-a6d8-1b8256b087ce", "id": "47bf8e9f-bb4b-42d1-8442-066b221877c2", "state": "authenticated", "sessionAttributes": { "opbs": "d4ba572f-6e8a-4503-adea-751602fd32c2", "response_type": "token", "session_id": "47bf8e9f-bb4b-42d1-8442-066b221877c2", "nonce": "13612574-fdda-4873-ab3e-9e5f9f0f5356", "client_id": "e4c965bb-dfce-420d-b7e4-b855a26d6c74", "response_mode": "jwt", "sid": "2cf0b89a-640b-461b-a6d8-1b8256b087ce", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5025dd65-0039-43f8-8230-86b3ea0d3dcd", "old_session_id": "01461219-f865-4aca-90de-333cddd36bad" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:08" }, { "isJwt": false, "opbrowserState": "d9e7243c-98d3-4a8d-95fa-c5b8c37b1d0a", "deletable": true, "dn": "jansId=a63f60d0-40b0-41a2-8755-82a019b310c6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:09", "creationDate": "2022-11-24T09:25:08", "ttl": 0, "sessionState": "d18d20fde6b944bdea5f41447e1e1c2d4d92282df3a2c036e36096be9e816b5e.f8b596ce-fad4-4a7e-9f26-05a136262c74", "lastUsedAt": "2022-11-24T09:25:10", "permissionGrantedMap": { "permissionGranted": { "d2c85038-081c-4e83-acc3-0204585bb730": true } }, "outsideSid": "9e6605f0-ad94-4de0-987a-49431cedb172", "id": "a63f60d0-40b0-41a2-8755-82a019b310c6", "state": "authenticated", "sessionAttributes": { "opbs": "d9e7243c-98d3-4a8d-95fa-c5b8c37b1d0a", "response_type": "token id_token", "session_id": "a63f60d0-40b0-41a2-8755-82a019b310c6", "nonce": "2d4d5fc0-421d-49b3-a9c8-f5bb8ba1b169", "client_id": "d2c85038-081c-4e83-acc3-0204585bb730", "response_mode": "jwt", "sid": "9e6605f0-ad94-4de0-987a-49431cedb172", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c3e84c8f-dbe8-4c23-9079-4c4ed7eb0f4a", "old_session_id": "c7e03e8e-c2b2-4c24-b212-ac106c774259" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:08" }, { "isJwt": false, "opbrowserState": "23e04eb2-16dc-4d33-a32c-dfdcf340633b", "deletable": true, "dn": "jansId=60993534-ee2c-49ec-a1da-75a5300da749,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:08", "creationDate": "2022-11-24T09:25:07", "ttl": 0, "sessionState": "1ee943f4219985aaa26c796725a83e4ce8459a244cc18b3147e5b59882d7f32b.0eafba16-82ed-4997-8137-eec604111eb1", "lastUsedAt": "2022-11-24T09:25:09", "permissionGrantedMap": { "permissionGranted": { "47377846-227a-4bd5-8ff3-cbba09d4d4d9": true } }, "outsideSid": "0700a194-5760-4b02-adc6-49ed0e749622", "id": "60993534-ee2c-49ec-a1da-75a5300da749", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIwZGJkMWY2Mi1kOTljLTQ4NzctYTYyNy0xODgxNGRiYzNmYWIiLAogICJub25jZSIgOiAiNmM3MDAxMDMtMmEwZS00ZTM4LWE0YzQtOGMwMGUyOWY0OTEyIiwKICAiY2xpZW50X2lkIiA6ICI0NzM3Nzg0Ni0yMjdhLTRiZDUtOGZmMy1jYmJhMDlkNGQ0ZDkiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.i54CEwSpW05OPsUDYKHvJZur8Sz5QCUo9wY_Lu0_s5Lq5X3EvkzrU3F2PMMyaORWz83ZUHg0KkKqnSgsJ5JsQoOZozCavifYnk78pLMWYnwwVlA2fFldI4kTn9eHfs9_", "opbs": "23e04eb2-16dc-4d33-a32c-dfdcf340633b", "response_type": "code id_token", "session_id": "60993534-ee2c-49ec-a1da-75a5300da749", "nonce": "6c700103-2a0e-4e38-a4c4-8c00e29f4912", "client_id": "47377846-227a-4bd5-8ff3-cbba09d4d4d9", "response_mode": "query.jwt", "sid": "0700a194-5760-4b02-adc6-49ed0e749622", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0dbd1f62-d99c-4877-a627-18814dbc3fab", "old_session_id": "5cf08c4c-b3cb-47d3-a4b6-0fd8de946ee4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:07" }, { "isJwt": false, "opbrowserState": "dc8448a0-af56-4af9-b151-71f9b4a523fe", "deletable": true, "dn": "jansId=925c2758-65a4-4a10-adf3-babb64b2ee6f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:08", "creationDate": "2022-11-24T09:25:07", "ttl": 0, "sessionState": "af60151f7783301407215d505767a0efd84812318a2bbaf3466025d3170886f7.f13d7cd6-cc70-465e-8a92-33daffb448e4", "lastUsedAt": "2022-11-24T09:25:09", "permissionGrantedMap": { "permissionGranted": { "db8cf28b-2526-438e-9fbf-89b16ec84032": true } }, "outsideSid": "f81b7bc7-3cae-431d-9215-baa915025f93", "id": "925c2758-65a4-4a10-adf3-babb64b2ee6f", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.pISd9fJaQsw21mZvVfHCwVx3237CX6jc2n11qym_R02skrS5VrDTSGHqG8myqL9uOPDToH39yJjYruE1zkB2D6qU7Tp9LExwQDXUfZ_zRiJEh2o7j1rSwmFG1iwX1vAMkSpjKqJkSMLbrUJ1lR9F3F4No6HGGqdWNz-pHfneK62wPpog7Pw0VUVzU9P6GpHtZ2TE2o4rO84YCMowne7wn6668nqU20P8UYAWOYBKzgp69EGWA29kp5tsMKKb6sGB2rbKTvyX09GC33fGUmp3I0aUiwWgkYCXnIQvGbYjkCBQCrHL0-hLYNe9b9_z5Hq8jHmlup17J8C2uFqCqZWpIg.YvxY2NsgFasxIK9qmqtX8A.i0T0Xeudd9Gtk0KNWTPV9n0QNbDM_xEHgH-if9U7x7c2OoH-H_0ssCMUul6w1x4S4dHUolr64y4JOXvsiZlWQ0VS2aZ1xPNpk-wskpkIgFbpNrdI4FX7uC9Wwtsbs8uU1DtOOkNk7m3RDMwG9bpwlClUrgV8bMWo2wJGSWRac3ob2LriO2b2ChkIT2lC4NLCaVobpyYiM4JkzkAnBkJxbnw5u3P98FJyuyiy-UjLWCYcap3R1-OUczaTFKeK9jHohBTJnVRw9nitrd0SJRX6PkV5IzZsNKtJpmS_u_DdyeqaG0gTkq36Jql5FAWrFEXlYPStDG6LH94Uw21QYsm4f8vG2SomqJoXwV__r7F8DZxWiEpoGEjz6CD14Cy_qhvUAOUQw-nLmVaz3RCZZ_o3Ztu33-WEy-ryuRTScR8zMYYqRsqYpZx7ECVKOPT9kW4nuHscutIoF0bb50sDNn7gf6Nv1Ye9kY6KUdQLux2-p_sBewQOEqRUAXdEl-KVP2DrVyglcpsjsXg68DX5UfKflXFiJ5LIuNtfDQzxfJCWuIpcTfn4QXU5UrAPO9aYHB6RUAAJQtwEafKiLBlWSzaB5D8-uMKnsrBuSDFgwOBB8eNXrDKoblAcRhcZIUfDSSJgkLsPpEigLQ6LELNXvIaACm05Xi-2tVtZ2BtV5Bp5mNLCFJVAFcwsxbt5TstIFMaGoFmVdhSxY7cxUWQg6r-waHrAMBVScvqlXfyogP9HWHfPKeNfTsURKg2F77EAbdSCiEyCkcNbREpAYjg9TBL-AyFO48v1Po8w5AxutbW3PVwdoNcUCXswK_2228mfdpZJtox02RhLuOFxSluVUee7PoNdGZ5g4LiRiNjEqnkX98vWVbN-Q6h9P3sDP4q6jDOPCwtdxFr-fIt6sVrU2Fr0kg.1NEbO-eU7KbStQSiu2rmbzeJuPXnSqOlpVQj84QIFkE", "opbs": "dc8448a0-af56-4af9-b151-71f9b4a523fe", "response_type": "code id_token", "session_id": "925c2758-65a4-4a10-adf3-babb64b2ee6f", "nonce": "b4750c80-0289-40d8-9e8d-482b32876e72", "client_id": "db8cf28b-2526-438e-9fbf-89b16ec84032", "response_mode": "query.jwt", "sid": "f81b7bc7-3cae-431d-9215-baa915025f93", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "909f74a6-6002-4262-9953-ae6862fa2ff3", "old_session_id": "a5a3399b-4b30-46f0-a894-31dbc864992e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:07" }, { "isJwt": false, "opbrowserState": "6d0b9e72-7e1c-4226-b9d4-d9a5efac307d", "deletable": true, "dn": "jansId=871203a2-24e9-46ff-a078-f432fad8d6f2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:07", "creationDate": "2022-11-24T09:25:06", "ttl": 0, "sessionState": "e6309ccb5b5392fe7f35ef79982df7d7587de93b2b13068fb325e1d9aa397651.cb38a387-d697-4280-a763-ebac58e32230", "lastUsedAt": "2022-11-24T09:25:08", "permissionGrantedMap": { "permissionGranted": { "63b29a7a-513e-4c66-9045-5d1ec4af31bf": true } }, "outsideSid": "d603c51c-e2b5-43d7-b95b-eba90fc72412", "id": "871203a2-24e9-46ff-a078-f432fad8d6f2", "state": "authenticated", "sessionAttributes": { "opbs": "6d0b9e72-7e1c-4226-b9d4-d9a5efac307d", "response_type": "token", "session_id": "871203a2-24e9-46ff-a078-f432fad8d6f2", "nonce": "a587a80d-3b25-4e7b-946d-d4154097703f", "client_id": "63b29a7a-513e-4c66-9045-5d1ec4af31bf", "response_mode": "jwt", "sid": "d603c51c-e2b5-43d7-b95b-eba90fc72412", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f23ea31c-5212-4572-9e36-8f34ca051a2a", "old_session_id": "83f918e3-50a5-4f98-b466-c66699d2b2ac" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:06" }, { "isJwt": false, "opbrowserState": "22d3e428-0a62-49ad-a1ed-09484d02b38e", "deletable": true, "dn": "jansId=178c8ab9-5e3f-45df-9574-9a8661a5877b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:07", "creationDate": "2022-11-24T09:25:06", "ttl": 0, "sessionState": "c5817eb60a6d1e98729652a7276d4fb9f4d62b45fd597bd1da0fa5d9d3748eab.437ac686-1129-46f8-9bf8-99227163b891", "lastUsedAt": "2022-11-24T09:25:07", "permissionGrantedMap": { "permissionGranted": { "a8c8c514-7269-45d2-a6a0-1d50f40c5ba9": true } }, "outsideSid": "679e2acf-5112-4c9a-a536-42b07e3e09cd", "id": "178c8ab9-5e3f-45df-9574-9a8661a5877b", "state": "authenticated", "sessionAttributes": { "opbs": "22d3e428-0a62-49ad-a1ed-09484d02b38e", "response_type": "token id_token", "session_id": "178c8ab9-5e3f-45df-9574-9a8661a5877b", "nonce": "29de7051-09bf-4757-9dd1-c444762c9f93", "client_id": "a8c8c514-7269-45d2-a6a0-1d50f40c5ba9", "response_mode": "jwt", "sid": "679e2acf-5112-4c9a-a536-42b07e3e09cd", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0cff79f7-d896-4aaf-b6a8-0337cc45c0ab", "old_session_id": "3a84173b-fad1-4a05-b287-94528e9acf54" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:06" }, { "isJwt": false, "opbrowserState": "2c314e56-453c-4da1-84e6-c56cb91174b9", "deletable": true, "dn": "jansId=56b0e3f0-a8e9-41ef-b088-3d84e233f769,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:06", "creationDate": "2022-11-24T09:25:04", "ttl": 0, "sessionState": "fd3aa111a9d024fcac576677c8df3a84f949dfa141a61ff4e1e75d66dfab0f2b.d4ba9c5e-66ef-4523-98a6-2c198c7e56bc", "lastUsedAt": "2022-11-24T09:25:06", "permissionGrantedMap": { "permissionGranted": { "7e7343c2-80f8-4e62-90c6-580192efc0fe": true } }, "outsideSid": "ff560483-5814-4dc3-a2e7-01f09af2e5bb", "id": "56b0e3f0-a8e9-41ef-b088-3d84e233f769", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJmMDFjNzZhOC1jMjMzLTRiNjYtOWY5YS0zZTA1MzlkZTAyYzQiLAogICJub25jZSIgOiAiYmRkNjI4OTctYzYzNC00NTY3LWEyMDUtMzVkNDNkZmZjM2Q3IiwKICAiY2xpZW50X2lkIiA6ICI3ZTczNDNjMi04MGY4LTRlNjItOTBjNi01ODAxOTJlZmMwZmUiLAogICJyZXNwb25zZV9tb2RlIiA6ICJxdWVyeS5qd3QiCn0.pkvEkWwCgCLM6qon5FTGdziZsketOiIZLCcBuE3bBThRcoA-46WJb-G43aPQs62ZtvXsMVBzzwya3K-hVpWoqg", "opbs": "2c314e56-453c-4da1-84e6-c56cb91174b9", "response_type": "code id_token", "session_id": "56b0e3f0-a8e9-41ef-b088-3d84e233f769", "nonce": "bdd62897-c634-4567-a205-35d43dffc3d7", "client_id": "7e7343c2-80f8-4e62-90c6-580192efc0fe", "response_mode": "query.jwt", "sid": "ff560483-5814-4dc3-a2e7-01f09af2e5bb", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f01c76a8-c233-4b66-9f9a-3e0539de02c4", "old_session_id": "d45a9e90-fa6e-4233-babb-9f10d394b91b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:04" }, { "isJwt": false, "opbrowserState": "9c5172e5-f720-44ce-af10-89b10f6ef6b9", "deletable": true, "dn": "jansId=53ba12b9-2cd0-4909-a2c4-e693d2148af1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:04", "creationDate": "2022-11-24T09:25:03", "ttl": 0, "sessionState": "7889281989f0fd0e6b2195dd1c8b50b118a7786eaa2dd441eeeb8f11d80ba09c.ef85170e-7f89-4e3d-b2e8-d3bef7429b04", "lastUsedAt": "2022-11-24T09:25:05", "permissionGrantedMap": { "permissionGranted": { "912ea2bf-6648-4cfd-9965-ff74259f5391": true } }, "outsideSid": "46b2f4c3-ef36-4741-8b16-830c56ef9236", "id": "53ba12b9-2cd0-4909-a2c4-e693d2148af1", "state": "authenticated", "sessionAttributes": { "opbs": "9c5172e5-f720-44ce-af10-89b10f6ef6b9", "response_type": "token id_token", "session_id": "53ba12b9-2cd0-4909-a2c4-e693d2148af1", "nonce": "473b1bc1-5fad-4c3d-9a76-4dd9fc558478", "client_id": "912ea2bf-6648-4cfd-9965-ff74259f5391", "response_mode": "jwt", "sid": "46b2f4c3-ef36-4741-8b16-830c56ef9236", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c304ad17-eae0-4541-bc18-f2f707296636", "old_session_id": "c63a90a8-c37a-4ac7-a85d-8b7fa5a9ddda" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:03" }, { "isJwt": false, "opbrowserState": "bf21d523-b18b-45f0-97fe-e86972f2d484", "deletable": true, "dn": "jansId=1caf8791-d639-4bf2-a682-cf7b8b5212e7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:04", "creationDate": "2022-11-24T09:25:03", "ttl": 0, "sessionState": "667e55abd355e8495a1a131be11795ff152aff5cac4957b67cf3fb98905fa56b.46a96887-e82f-442c-ae3f-cf2fbedc824f", "lastUsedAt": "2022-11-24T09:25:05", "permissionGrantedMap": { "permissionGranted": { "2d906c17-1112-48b8-b9eb-015a49a20550": true } }, "outsideSid": "74105ee4-d1e5-440a-b5fb-6ca84ffa26d0", "id": "1caf8791-d639-4bf2-a682-cf7b8b5212e7", "state": "authenticated", "sessionAttributes": { "opbs": "bf21d523-b18b-45f0-97fe-e86972f2d484", "response_type": "token", "session_id": "1caf8791-d639-4bf2-a682-cf7b8b5212e7", "nonce": "3be213e3-0129-4b8e-b71c-4f3ba4e96e35", "client_id": "2d906c17-1112-48b8-b9eb-015a49a20550", "response_mode": "jwt", "sid": "74105ee4-d1e5-440a-b5fb-6ca84ffa26d0", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1f7576ae-ccbe-4a12-96ed-e98b84802966", "old_session_id": "100b10b9-4087-4517-9ae2-537d6881030a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:03" }, { "isJwt": false, "opbrowserState": "381ba97f-72c0-4550-9442-a3a64b2c9ee0", "deletable": true, "dn": "jansId=aae98ce5-7055-439d-b0c5-8e71a402f0a6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:03", "creationDate": "2022-11-24T09:25:01", "ttl": 0, "sessionState": "d473d3fb2c628b64bf967de2df3c6da3097b1dd55964c07fd8842803cb0df2a5.ae215432-5843-44ee-b4bb-85e5c7d579c7", "lastUsedAt": "2022-11-24T09:25:04", "permissionGrantedMap": { "permissionGranted": { "49431ece-dfb6-4514-9605-187cd58fef71": true } }, "outsideSid": "a6f5fca7-46d7-4188-90b1-b925c67f7c66", "id": "aae98ce5-7055-439d-b0c5-8e71a402f0a6", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.QiqLZf4DTAOVCsNOj6545ru7PF614Tf-.GemafIYJJlBwCq8r.jzGYuSH02jT2_CO1_SAbJ98nxfXZ5aRNFwzlXEP35yj54mmU_0We0SLkWgW_InzbJYhyQeqJL57ZwhNQ6mtIhknYdB1WerqBR0Ff-vfDQM4ybFtQmWjN5lKPmZbJb343AFAf8QLnGbnktfA4gkTuybOHfNUgUukQzdPpUW66C0n_edTR70SUfnZYoMLEfsh-Dd7Ep7tInJ3dAhu4bRb-Btda4YiXk_UrFdpqqec7c2ikZIr7u2O4LmDlQY_qeYx-dJlfCRaekZzjgMppgcQBKop4YH9zIHStiim-qVETEVOdaYFaAhSMORuykrAs94bY5k27lP7AUgBisB5XzwK720nfUCxvZbpeQnqxwizt22SpaDqdZ08hE1mIoCL8Pbmz3eurMkhnWoNhjYPdTa4c_lo1jWFwfYF_asYfVxOGWnmd5ZOR9izU43BTuCqNp_O8Ad5A8TOp6On94ltn_Rw5B7HyCark1mGXpRzk-PcX9oQorX51kidKXysT7_1SfNez_Ax3pb2o_BYj8eMbkZuUcmScN2gLw4TDXGa0sJ-_yEdkQkX_zFqsGlTCO_3ymnZQG-Jxc4sSDqJ2l-YurWWtq9HdaWhj3MEQRRZ09iwGaWpfWqsXRFzRalda0p670IOJnZUtmn2ZhLkZhivfAoM2YZM8W_NdyzjIa7yl6-jK6rpE0yfqIQTPiK0h06zq4xQQJSsTdG6-QooHPoDV06YTVcCUSTajWfyJNRm-D1Z_5DmvDEOvVTWLdJu89f5WWJUNCnq3YABUWbluNaHa2LZJ2W2LMFaOsW1JOdZMxy4blWzbnW8Lv97FP2xXBYOtSvKj6rZhmt7JFFGmUEi5aRypx-ovrBF-JhM_HeRWf-lWI2LQw7a7n7ldH9qjXELJaNtt_ttLrNUuYmLIY74dTsw.fKW05pHDM1AOqbnKnOJuIw", "opbs": "381ba97f-72c0-4550-9442-a3a64b2c9ee0", "response_type": "code id_token", "session_id": "aae98ce5-7055-439d-b0c5-8e71a402f0a6", "nonce": "5244d6fa-d5bf-42c0-a10f-280dae1282eb", "client_id": "49431ece-dfb6-4514-9605-187cd58fef71", "response_mode": "query.jwt", "sid": "a6f5fca7-46d7-4188-90b1-b925c67f7c66", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "77644fae-e816-46cd-8515-464570a7a8aa", "old_session_id": "ae7e081e-fe02-4a59-bace-7d93e7a5be06" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:01" }, { "isJwt": false, "opbrowserState": "9b42befc-48b7-4075-8815-fd47ea8ef30c", "deletable": true, "dn": "jansId=798925bf-e42a-4b72-90a3-4f9eb46106e0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:01", "creationDate": "2022-11-24T09:25:00", "ttl": 0, "sessionState": "2149590d9bb614243ee1a48f8a0572213f6959f91df4a03070d7aa9b7c057095.eda93c39-f23e-4644-a6de-9c4b26462075", "lastUsedAt": "2022-11-24T09:25:02", "permissionGrantedMap": { "permissionGranted": { "d6cf3864-dbe5-48fc-be1a-077b9ff9de67": true } }, "outsideSid": "d6b57f09-1313-496b-b350-e508bbde84e6", "id": "798925bf-e42a-4b72-90a3-4f9eb46106e0", "state": "authenticated", "sessionAttributes": { "opbs": "9b42befc-48b7-4075-8815-fd47ea8ef30c", "response_type": "token", "session_id": "798925bf-e42a-4b72-90a3-4f9eb46106e0", "nonce": "d01c2c44-dd22-4b5e-8e7e-9d90464e8421", "client_id": "d6cf3864-dbe5-48fc-be1a-077b9ff9de67", "response_mode": "jwt", "sid": "d6b57f09-1313-496b-b350-e508bbde84e6", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0044e22d-80bb-44b2-9d34-80d5108e448a", "old_session_id": "81b5923a-f8bc-450a-95d9-da3d65a2a0cd" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:00" }, { "isJwt": false, "opbrowserState": "f14880a8-52d0-4ee3-9e53-cadb4eb71771", "deletable": true, "dn": "jansId=5314db17-6c11-4e20-bb9d-408a5a2aaaab,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:01", "creationDate": "2022-11-24T09:25:00", "ttl": 0, "sessionState": "ef7619657f9505ca10a99c297ab326c7d83f90805beb9042a73a74dc4dfcca7d.da9949fb-a8b9-44d9-b285-ef761dc3a040", "lastUsedAt": "2022-11-24T09:25:03", "permissionGrantedMap": { "permissionGranted": { "7b1d8046-d6e3-4878-a017-cdca1ff1c727": true } }, "outsideSid": "abf2d79a-7076-4292-97c6-4fa0677f6915", "id": "5314db17-6c11-4e20-bb9d-408a5a2aaaab", "state": "authenticated", "sessionAttributes": { "opbs": "f14880a8-52d0-4ee3-9e53-cadb4eb71771", "response_type": "token id_token", "session_id": "5314db17-6c11-4e20-bb9d-408a5a2aaaab", "nonce": "1e552eee-4733-474b-815e-85f59ff15bdb", "client_id": "7b1d8046-d6e3-4878-a017-cdca1ff1c727", "response_mode": "jwt", "sid": "abf2d79a-7076-4292-97c6-4fa0677f6915", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9d2499bb-f8de-4981-8f86-76119c4a4978", "old_session_id": "3e4e5f69-3fdc-476a-a96c-6fa7b87f571b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:25:00" }, { "isJwt": false, "opbrowserState": "c8853aae-1a11-45ec-bfe4-77644b533d0e", "deletable": true, "dn": "jansId=66639b32-5bfa-46e8-832d-9b9163a2dae3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:00", "creationDate": "2022-11-24T09:24:59", "ttl": 0, "sessionState": "38fe65616bce38e3e657d5ae679acf933b9d5247ba75da694ccccc5b50e07f67.62dcae48-18cf-4f60-97ca-0ae025cf3d63", "lastUsedAt": "2022-11-24T09:25:01", "permissionGrantedMap": { "permissionGranted": { "48377705-646f-47b6-b1ec-8776cafaab9b": true } }, "outsideSid": "9cec029c-34d7-447c-b3c9-d6da9dc4f0df", "id": "66639b32-5bfa-46e8-832d-9b9163a2dae3", "state": "authenticated", "sessionAttributes": { "opbs": "c8853aae-1a11-45ec-bfe4-77644b533d0e", "response_type": "code token", "session_id": "66639b32-5bfa-46e8-832d-9b9163a2dae3", "client_id": "48377705-646f-47b6-b1ec-8776cafaab9b", "response_mode": "jwt", "sid": "9cec029c-34d7-447c-b3c9-d6da9dc4f0df", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1dc5e346-96aa-4db7-95ab-c92ca3145ae4", "old_session_id": "838418f2-f2ec-4eb8-8d44-80db216776b2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:59" }, { "isJwt": false, "opbrowserState": "aa494a16-8651-43cd-a90b-c2909a740166", "deletable": true, "dn": "jansId=37ac753e-bd5b-40b3-a6ca-1ee7f9fa25c0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:25:00", "creationDate": "2022-11-24T09:24:59", "ttl": 0, "sessionState": "d789929c0526deb5b1ca227bc3c63fd2b7a54705de4dfa45fd30b5924977ddb4.bfdb1bc9-bb93-48fb-b326-e346887b74f4", "lastUsedAt": "2022-11-24T09:25:01", "permissionGrantedMap": { "permissionGranted": { "bf090743-6b64-49b1-870c-8cab1f1c895e": true } }, "outsideSid": "5e315339-abd1-4838-b253-8a5334aa9b8c", "id": "37ac753e-bd5b-40b3-a6ca-1ee7f9fa25c0", "state": "authenticated", "sessionAttributes": { "opbs": "aa494a16-8651-43cd-a90b-c2909a740166", "response_type": "code", "session_id": "37ac753e-bd5b-40b3-a6ca-1ee7f9fa25c0", "client_id": "bf090743-6b64-49b1-870c-8cab1f1c895e", "response_mode": "query.jwt", "sid": "5e315339-abd1-4838-b253-8a5334aa9b8c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "df4460af-f67a-4d78-919e-3173aa37d72e", "old_session_id": "f486bcfb-89fc-44c2-aed6-4a7678e40f1c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:59" }, { "isJwt": false, "opbrowserState": "c418f301-2c10-44d7-a5ea-af9ccfa7ad85", "deletable": true, "dn": "jansId=647afd3b-2fba-41ea-83c0-8a11a2d766ff,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:59", "creationDate": "2022-11-24T09:24:59", "ttl": 0, "sessionState": "84919d335132d57c6085227524fa2f5748a62ccf3a07ef5f5040a7280e2e2476.f25765e2-c1fe-4fef-ac30-feeaf955aff1", "lastUsedAt": "2022-11-24T09:25:00", "permissionGrantedMap": { "permissionGranted": { "d84651fa-7f1b-420d-8c38-227bc9e6c1d5": true } }, "outsideSid": "2839bf6a-332c-476b-9457-a774326a62bf", "id": "647afd3b-2fba-41ea-83c0-8a11a2d766ff", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJjNTY1ZWIwMy0zODMzLTQzM2UtOTkxNy1jZWU0NTk4MmQ2MjQiLAogICJub25jZSIgOiAiY2EyNzM3M2UtMDJiZC00YTk1LWI4YmItMTc3ZjI2NjFmNzVmIiwKICAiY2xpZW50X2lkIiA6ICJkODQ2NTFmYS03ZjFiLTQyMGQtOGMzOC0yMjdiYzllNmMxZDUiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.rC_NpkOMygOYm-N5Irx-pRuKZITjiRWLKCY2PKYI_cOol46nkNHM7u2IwlVoGa3rGAd3IDDRalt7V9IvLH9Jwpsve6lKjOI5_X5qF-n8XZJqJOatlU6lyonvA9RnGzwS8D5vP88DPZfUJcjxW-45YNCq5ucAmP4Mez5zy7rR-7bGH9SwkNqjLdFDMg9M29XmSyMRddMhA83RlQpbdP8168LmLzhdFIju2SeKh4aw595picIRQQzJ1vQD7Bkpc5Yejr53CDkO0zHZLrjqcAEDOM7apKJs5yRtq-wyAGbuVZppsub05JkH4lzQaoemc1wUatwO6pCwdLq0nIM5bcS36g", "opbs": "c418f301-2c10-44d7-a5ea-af9ccfa7ad85", "response_type": "token", "session_id": "647afd3b-2fba-41ea-83c0-8a11a2d766ff", "nonce": "ca27373e-02bd-4a95-b8bb-177f2661f75f", "client_id": "d84651fa-7f1b-420d-8c38-227bc9e6c1d5", "response_mode": "jwt", "sid": "2839bf6a-332c-476b-9457-a774326a62bf", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c565eb03-3833-433e-9917-cee45982d624", "old_session_id": "3c69a520-ca46-4ca5-88d4-ddeef8ad1583" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:59" }, { "isJwt": false, "opbrowserState": "d9806adb-2025-4a47-82d1-4ab90469b860", "deletable": true, "dn": "jansId=a35db922-816c-494f-b02f-a1e429ed2263,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:59", "creationDate": "2022-11-24T09:24:59", "ttl": 0, "sessionState": "99a6b9b6c27569f94b143aeffb25da40c400b9475309699f8cb3d496778b9c5f.36ec906e-40fa-4cc1-b60b-d342244197b0", "lastUsedAt": "2022-11-24T09:25:00", "permissionGrantedMap": { "permissionGranted": { "652447b4-c0ae-45a6-bd18-df69ad87557c": true } }, "outsideSid": "5daacc08-bc20-4f57-8a8a-92f2a3434489", "id": "a35db922-816c-494f-b02f-a1e429ed2263", "state": "authenticated", "sessionAttributes": { "opbs": "d9806adb-2025-4a47-82d1-4ab90469b860", "response_type": "token id_token", "session_id": "a35db922-816c-494f-b02f-a1e429ed2263", "nonce": "cd5984d8-b648-48e6-93d8-7ce57cf212ef", "client_id": "652447b4-c0ae-45a6-bd18-df69ad87557c", "response_mode": "jwt", "sid": "5daacc08-bc20-4f57-8a8a-92f2a3434489", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "aa6e1a60-688d-4b8a-81a1-f058459c8626", "old_session_id": "80a6481b-a682-4330-b012-e2654f013ff9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:59" }, { "isJwt": false, "opbrowserState": "07e7da88-c91d-4d0c-8bd8-0aed0c3ae342", "deletable": true, "dn": "jansId=6ba1cc2c-6edd-4fe8-86ad-1f4bcdf737c8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:58", "creationDate": "2022-11-24T09:24:58", "ttl": 0, "sessionState": "9b16c85f2d643963bc4ade53dd1a2e22b031e5c786bb4f15c529b54e666a9d8c.5d351309-a689-4982-b72b-3ec1fe273886", "lastUsedAt": "2022-11-24T09:24:58", "permissionGrantedMap": { "permissionGranted": { "5e1664e2-2315-49ca-9e9f-6abe89087731": true } }, "outsideSid": "a44e31c2-2d5c-4e5d-856b-e20183594e78", "id": "6ba1cc2c-6edd-4fe8-86ad-1f4bcdf737c8", "state": "authenticated", "sessionAttributes": { "opbs": "07e7da88-c91d-4d0c-8bd8-0aed0c3ae342", "response_type": "code", "session_id": "6ba1cc2c-6edd-4fe8-86ad-1f4bcdf737c8", "client_id": "5e1664e2-2315-49ca-9e9f-6abe89087731", "response_mode": "query.jwt", "sid": "a44e31c2-2d5c-4e5d-856b-e20183594e78", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3ffbf364-890c-4b73-b0b1-891fd53d955f", "old_session_id": "49887ed7-844d-4887-9412-34822c5de42e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:58" }, { "isJwt": false, "opbrowserState": "32deb775-445e-4c4f-99b6-bea8ecaddd71", "deletable": true, "dn": "jansId=8cb9b52d-9ba7-4906-88bf-042d25ca129d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:59", "creationDate": "2022-11-24T09:24:58", "ttl": 0, "sessionState": "45bd92a1437aeb92e588360dff4eea5960b8f6e72a4a985b44a85ef97adf92a1.0628b93c-cbeb-48c4-b746-4894b32cc8ae", "lastUsedAt": "2022-11-24T09:24:59", "permissionGrantedMap": { "permissionGranted": { "799e6764-def2-496b-82a2-f708f8018114": true } }, "outsideSid": "c7c269ec-71ba-44a9-8d19-0b9178ce141a", "id": "8cb9b52d-9ba7-4906-88bf-042d25ca129d", "state": "authenticated", "sessionAttributes": { "opbs": "32deb775-445e-4c4f-99b6-bea8ecaddd71", "response_type": "code token", "session_id": "8cb9b52d-9ba7-4906-88bf-042d25ca129d", "client_id": "799e6764-def2-496b-82a2-f708f8018114", "response_mode": "jwt", "sid": "c7c269ec-71ba-44a9-8d19-0b9178ce141a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "221a9894-9f4f-43ec-905e-3313760ed862", "old_session_id": "879f285c-a9f8-46d0-aa7d-ef3010d03434" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:58" }, { "isJwt": false, "opbrowserState": "2774355d-a848-464d-84fd-74d752e54dfe", "deletable": true, "dn": "jansId=697fc26f-30c5-4539-ba80-fa11f89c2a2a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:58", "creationDate": "2022-11-24T09:24:57", "ttl": 0, "sessionState": "9c82ca2a2cd56ec403ec8db84c824806724ca59159e58ab29ff9fe32b278980a.a730f84d-a9dc-4c39-a1b2-4ea577300d3f", "lastUsedAt": "2022-11-24T09:24:58", "permissionGrantedMap": { "permissionGranted": { "827a2104-968e-4bed-91e1-5ddd02ca45a7": true } }, "outsideSid": "79090f32-d261-4116-bf87-ab992ea5f6da", "id": "697fc26f-30c5-4539-ba80-fa11f89c2a2a", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIyZWE5ODBkMi1lYTk3LTQ0MDYtYjI3OS1jZTNlMWZlNzg4YjMiLAogICJub25jZSIgOiAiNmI1NjdlYjktMWE2Yy00MGMzLTg5OGMtMDY1M2VkMjZhYTE3IiwKICAiY2xpZW50X2lkIiA6ICI4MjdhMjEwNC05NjhlLTRiZWQtOTFlMS01ZGRkMDJjYTQ1YTciLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.gbOFfgrMV17rQuqpQG7l3KyzjKgE39YGBT3yxEWonfwSfcEbWCKNvSeBG4AP46de7qlH0fQaqr8z4w3ZvC7YiZGNEQMjXovm9OKBKRjcqhsHFlUrbPTTZy0k01irGB7SX7p-sNmuB7Jle2fJpf6uq21XXskiLzBhhucio0FIyi87_vgSJlL7CpiXXKQtI1lNY6jg0uyuo7S7faaW6gUvxgxhhGdMQTMhG7OJAWi2lc2xz7PEN1usS27cokQyFTjghp7TUILiNKGmbgO9QxJzDmdrBvj8I9CBdlEUuD6iYbIHO1tQTkykgVjCHqd3p6WsvSXkeZdR_XWlmr0Or1KALw", "opbs": "2774355d-a848-464d-84fd-74d752e54dfe", "response_type": "token", "session_id": "697fc26f-30c5-4539-ba80-fa11f89c2a2a", "nonce": "6b567eb9-1a6c-40c3-898c-0653ed26aa17", "client_id": "827a2104-968e-4bed-91e1-5ddd02ca45a7", "response_mode": "jwt", "sid": "79090f32-d261-4116-bf87-ab992ea5f6da", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2ea980d2-ea97-4406-b279-ce3e1fe788b3", "old_session_id": "a97ce75b-25c2-4bc0-9cae-e53ad78c9c15" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:57" }, { "isJwt": false, "opbrowserState": "2213182a-f1b3-4dc0-9de3-99ab21f7a101", "deletable": true, "dn": "jansId=bbcd2a00-bac2-427c-ad70-146445aac209,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:57", "creationDate": "2022-11-24T09:24:56", "ttl": 0, "sessionState": "9b263975151f7c280913eb5b9816054e37dcaf77d28380ef4d5b5c147f6cb6e7.ab975992-d70d-4ee4-b1c4-e2edd2c0e1bf", "lastUsedAt": "2022-11-24T09:24:57", "permissionGrantedMap": { "permissionGranted": { "24385d68-df78-4d5d-b992-ded57655e9a7": true } }, "outsideSid": "75b55462-1a04-4cfa-99e9-a8ae6b20517a", "id": "bbcd2a00-bac2-427c-ad70-146445aac209", "state": "authenticated", "sessionAttributes": { "opbs": "2213182a-f1b3-4dc0-9de3-99ab21f7a101", "response_type": "code token", "session_id": "bbcd2a00-bac2-427c-ad70-146445aac209", "client_id": "24385d68-df78-4d5d-b992-ded57655e9a7", "response_mode": "jwt", "sid": "75b55462-1a04-4cfa-99e9-a8ae6b20517a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "19ae0a27-8533-4800-a513-ea894c551865", "old_session_id": "d39c4796-f5da-4d7b-b005-9d00213ff412" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:56" }, { "isJwt": false, "opbrowserState": "3d7b288b-b9c9-45c7-a72f-382f6c904635", "deletable": true, "dn": "jansId=9dfcf3f3-85ee-4dc2-b623-c01df04baa6e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:56", "creationDate": "2022-11-24T09:24:55", "ttl": 0, "sessionState": "d2d4acbe94d040eafd3754b6168a10fe582f790a230fc58f41c911254dbde979.258501f6-e192-482c-b646-1302036c49bf", "lastUsedAt": "2022-11-24T09:24:56", "permissionGrantedMap": { "permissionGranted": { "b666585f-0d0e-43ba-befa-d3c1afbb6461": true } }, "outsideSid": "a9db0981-b49f-4250-9bae-d51e824a970a", "id": "9dfcf3f3-85ee-4dc2-b623-c01df04baa6e", "state": "authenticated", "sessionAttributes": { "opbs": "3d7b288b-b9c9-45c7-a72f-382f6c904635", "response_type": "code", "session_id": "9dfcf3f3-85ee-4dc2-b623-c01df04baa6e", "client_id": "b666585f-0d0e-43ba-befa-d3c1afbb6461", "response_mode": "query.jwt", "sid": "a9db0981-b49f-4250-9bae-d51e824a970a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3da242a5-7fcd-4f0c-8df1-c616c1edf55b", "old_session_id": "52484f8a-fa3b-46f7-b092-ed8c5196c49a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:55" }, { "isJwt": false, "opbrowserState": "28827e2d-805b-4338-a443-816d72d09e1f", "deletable": true, "dn": "jansId=2ca31d7f-0742-4cc4-b7f8-af978714cda9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:56", "creationDate": "2022-11-24T09:24:55", "ttl": 0, "sessionState": "403bf36d94d2317516dc7b1007e7bb41f8a7d7e2998a30326488996fb4ed5419.31869633-4bf2-406b-9eac-4f47de15ca08", "lastUsedAt": "2022-11-24T09:24:56", "permissionGrantedMap": { "permissionGranted": { "a753baf8-2232-435b-a2ae-07fa463bf949": true } }, "outsideSid": "0ca35f26-5b6e-459b-848e-3ed8748b69ae", "id": "2ca31d7f-0742-4cc4-b7f8-af978714cda9", "state": "authenticated", "sessionAttributes": { "opbs": "28827e2d-805b-4338-a443-816d72d09e1f", "response_type": "code token", "session_id": "2ca31d7f-0742-4cc4-b7f8-af978714cda9", "client_id": "a753baf8-2232-435b-a2ae-07fa463bf949", "response_mode": "jwt", "sid": "0ca35f26-5b6e-459b-848e-3ed8748b69ae", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "37fe9bf0-270e-4d20-9b75-21207c2f7807", "old_session_id": "47cf54cd-009d-4a1d-b299-3affac3967ff" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:55" }, { "isJwt": false, "opbrowserState": "2e65ef03-167e-4620-89c9-d26ff77f4977", "deletable": true, "dn": "jansId=8f3a3be6-6c30-4562-9402-996bb28c8023,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:56", "creationDate": "2022-11-24T09:24:55", "ttl": 0, "sessionState": "65e880ff2a3d7fef3065c86ce756007b5d43395648a626332dd396cf10943544.01f3ffe1-1be4-4710-ba97-49024992d96f", "lastUsedAt": "2022-11-24T09:24:57", "permissionGrantedMap": { "permissionGranted": { "8aeb72c8-dd0d-46c6-bc51-f5d3898d388f": true } }, "outsideSid": "5583ddf3-096b-4788-b4be-7d3da04eef83", "id": "8f3a3be6-6c30-4562-9402-996bb28c8023", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI3YzMzZDc3Ny0wZTkxLTRmMzUtYTBiNC01YjQ1MmRhMjNhYjAiLAogICJub25jZSIgOiAiNTdmNDQzNDQtOWE5Yy00ZTY3LTgwMWMtNGUzZDU4ZjNlOTllIiwKICAiY2xpZW50X2lkIiA6ICI4YWViNzJjOC1kZDBkLTQ2YzYtYmM1MS1mNWQzODk4ZDM4OGYiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.YhIYP0xROM9Mo_UugNsDtSqUQrPbHyNRBtb_DXVoHqlt0LZBdsyvy45kjKqhL-UYSqvDILdTKaaj63zL-2P7spsBw44K0GnWk0oSFot7bUPp7O6Dl5ZCLzcVXPcpxy6rg9rW6fVm36YG08xxUJVJ8TheYHFtsD0XvzsXZOBYfCvAgA28wYgrwazcK81p-yo_lhaUvfGa9AN0kQgjCXVB65FIoiq-etUBjlRKiriHj_lB3rqqCB3JmPqQtxpQKR7NNzrc3DdIiXNcHPljsiqR43y_YNP_BaVe4gnXSHf4mBnw8uHb5jazOTdbxw862ZKvRlt__G00Cl_coLKIp7ktEg", "opbs": "2e65ef03-167e-4620-89c9-d26ff77f4977", "response_type": "token", "session_id": "8f3a3be6-6c30-4562-9402-996bb28c8023", "nonce": "57f44344-9a9c-4e67-801c-4e3d58f3e99e", "client_id": "8aeb72c8-dd0d-46c6-bc51-f5d3898d388f", "response_mode": "jwt", "sid": "5583ddf3-096b-4788-b4be-7d3da04eef83", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7c33d777-0e91-4f35-a0b4-5b452da23ab0", "old_session_id": "9c3aef58-9e42-4ea3-bdd3-b4beff40f037" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:55" }, { "isJwt": false, "opbrowserState": "5d12418c-c9d9-4602-a211-3771559a80c6", "deletable": true, "dn": "jansId=10188d85-3fe6-4c72-bf87-9c04348204eb,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:55", "creationDate": "2022-11-24T09:24:55", "ttl": 0, "sessionState": "2482942e67560b22467560995103e955f1770c1356fea2fef909bc4ceaf56b09.e3714bf4-ef49-40bf-ba4d-d0945d366b96", "lastUsedAt": "2022-11-24T09:24:56", "permissionGrantedMap": { "permissionGranted": { "975c268b-b4cc-490e-8891-582d564890cf": true } }, "outsideSid": "7dec6bd2-3409-4655-821a-666da851a123", "id": "10188d85-3fe6-4c72-bf87-9c04348204eb", "state": "authenticated", "sessionAttributes": { "opbs": "5d12418c-c9d9-4602-a211-3771559a80c6", "response_type": "token id_token", "session_id": "10188d85-3fe6-4c72-bf87-9c04348204eb", "nonce": "f3c655f4-d3b9-461b-875e-913bea151b9c", "client_id": "975c268b-b4cc-490e-8891-582d564890cf", "response_mode": "jwt", "sid": "7dec6bd2-3409-4655-821a-666da851a123", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d243d718-9bb9-4911-8d5c-efddea6aef0d", "old_session_id": "cc1f4620-96f7-4419-ab80-915be977b86e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:55" }, { "isJwt": false, "opbrowserState": "63c1ee16-493f-4dc7-a2b3-511582e1efe1", "deletable": true, "dn": "jansId=4a2148f6-b218-43d0-835c-c09f7943dacb,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:54", "creationDate": "2022-11-24T09:24:53", "ttl": 0, "sessionState": "7ba602c82c4ba49dcbf28b9b4c7081ed19022a704d0a1b4af1ae8f252b7273fb.1418f5a8-0ad1-4574-b68a-6a6f74fca2c8", "lastUsedAt": "2022-11-24T09:24:54", "permissionGrantedMap": { "permissionGranted": { "bc5a5be4-093c-471a-bab1-7bf544aa0d71": true } }, "outsideSid": "decc8e88-94c8-42b3-951a-6da8cd992831", "id": "4a2148f6-b218-43d0-835c-c09f7943dacb", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI3NWY0ODIxYy04MmZkLTRiMGQtYTQ1Ny05Yjk2NGMzZWI0NWQiLAogICJub25jZSIgOiAiZTI0ZmY0YmYtNjkxMS00YjkwLWI1NWQtNTIzZTdhNDUzMWIzIiwKICAiY2xpZW50X2lkIiA6ICJiYzVhNWJlNC0wOTNjLTQ3MWEtYmFiMS03YmY1NDRhYTBkNzEiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.VZRQDtyWRuM7QVgGaQGwm9kFNikDLnOL95flLUbxOtQrG5MbGmMF5_5kZ3i1wQ-Vo7EHl08V6gRzNjcEscbdVb0zY3c2u0psPynJLaz1Tuc-gA8nYQdnbkY4763LAjxDArj6kzobetSQA5D3jo0gPf29aLxHmm_pvAZOFc9GRnP0cl4QVuWfCpHygOPJnwDxSxxJiORZeYerghqy4dZmjX6IhXCSa10riDXbhW0535QZ9n6-KLiLdfsIjAZJ1YDWGUHYycUlpaTt8qNo0qo1kRdig-3LwshxOrQnJhi0gV09KNc5WWgFI0jrjLgx2D2S8trLIBg4QY9jH-L4CGsnsQ", "opbs": "63c1ee16-493f-4dc7-a2b3-511582e1efe1", "response_type": "token", "session_id": "4a2148f6-b218-43d0-835c-c09f7943dacb", "nonce": "e24ff4bf-6911-4b90-b55d-523e7a4531b3", "client_id": "bc5a5be4-093c-471a-bab1-7bf544aa0d71", "response_mode": "jwt", "sid": "decc8e88-94c8-42b3-951a-6da8cd992831", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "75f4821c-82fd-4b0d-a457-9b964c3eb45d", "old_session_id": "627ea865-9e84-477d-91e7-3e04d9248000" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:53" }, { "isJwt": false, "opbrowserState": "43336c99-b589-4ecf-821b-14ad527298f4", "deletable": true, "dn": "jansId=027e0fa8-5f30-46c6-b8f5-ab01e1f7e3cb,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:54", "creationDate": "2022-11-24T09:24:53", "ttl": 0, "sessionState": "5acb0ec8e928cb2cefa48d7d72ee58187c6a1a47360dc32897a6126d4a8e9492.04fec5da-e315-41de-afc1-a998e31c1664", "lastUsedAt": "2022-11-24T09:24:54", "permissionGrantedMap": { "permissionGranted": { "499a4c41-f7e3-4d75-a651-d275769ead9e": true } }, "outsideSid": "119d0419-c58d-49a3-a5d4-af55d2bcbaa3", "id": "027e0fa8-5f30-46c6-b8f5-ab01e1f7e3cb", "state": "authenticated", "sessionAttributes": { "opbs": "43336c99-b589-4ecf-821b-14ad527298f4", "response_type": "token id_token", "session_id": "027e0fa8-5f30-46c6-b8f5-ab01e1f7e3cb", "nonce": "1f583212-f126-484d-8c20-9417996b0e0e", "client_id": "499a4c41-f7e3-4d75-a651-d275769ead9e", "response_mode": "jwt", "sid": "119d0419-c58d-49a3-a5d4-af55d2bcbaa3", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b98fbfd7-d06a-4cdc-9888-c64254fe6037", "old_session_id": "4fe9a560-eeff-4e41-ab2c-5ad396445c15" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:53" }, { "isJwt": false, "opbrowserState": "76e3456e-d9a5-4aa2-9a12-6fd52e9ba1e9", "deletable": true, "dn": "jansId=69520922-4cfe-4fdd-96d2-cf0cd6d46fbe,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:52", "creationDate": "2022-11-24T09:24:52", "ttl": 0, "sessionState": "8fd2f7c9eb24d6463dfeab2027f254d840c1520a0a8388a85c7fa5603f9e32f5.ea9344e0-06d0-402c-9db5-add8615c9795", "lastUsedAt": "2022-11-24T09:24:53", "permissionGrantedMap": { "permissionGranted": { "e783198c-4320-43e2-80d9-761949457ab2": true } }, "outsideSid": "080ee309-a950-4a75-86d0-334451738e3c", "id": "69520922-4cfe-4fdd-96d2-cf0cd6d46fbe", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkEyNTZDQkMrSFM1MTIiLCJhbGciOiJSU0ExXzUifQ.ilS_u4-XMFGvABlcqXJMC_aPAMTdhGNV-NsI37JZIdyKKNpYrUMUJU0ftkcwkKcOlaZnG_8zTjONbjWp2Q4lwtovOiCfw6gLNe2i-PilvynWhZdqWP8ewJr_KJBvIIIGIxvJLIqbNQlHpdCCdnA9Ce0nF0u5NoxxRGyJF8-oLMuo9yZtSuIkWBS_xD-WHxT4L_rueuyqqJzwyVDCnJFK9dI_oonN1eEjjorL10ff0P5PtaCvmOEeout8prPUC_b_a_b7nJUnm38heXQ0umDxrlcI7OdebPl3O-cuFGKrtvDr5XPOM75WmQ3RVx5rDY6Uku-wydHTB7n2c1AL9W2u8Q.mg0H0oapvRLyCjQpM7u8dQ.s5gbaU6tbU5JFIKCJyHlzeXkj_FlJVJEEifC8SWDk-Vnt7wifCdYu_CBoDP2BmVjqoWBuKQW1CIkos-X0rkYG1ZSbKP_3lJ0oNt8wpaYUyUz0v4mwr9L2SDtSQRBWJSK23wA5nTNx2MCFwdRIz1wKerwL_t1q6lKEK0PCoDU3qyVUuBqnPMdoQGXkZJD5-7WmKnj8yNaB8BdVKIJYloyIjZUeS-T2P2uM9dLrH-Xe6VBMn9-4qFenn-iVqCk_4zYCtG6IJowYp1qntNIqQE63r5nE_jvhBp1BGZYFXjDOuodUh5u6Lmc5sEljfi1lnixLbK0OzedyQPiPQELv9K3ioFjAxpUR_9VV7i4dBQGpNMlbIIRmMk6GNBqdlV3vEQOgfo030xrUTE6MtwUV9qlPO-CW3U67623nMaIOGEnVokzjZiXHbQxqp0rDJD_fKxV4x6j0WTZjRzP1ED1qCyhkH-0yxySVVsJxp6b4ge6NI0n1YL53a5YsJj9vCIkhEXyBFEBiw7RnssGUjrD-rKRsz-FY3boLhrV3Ag-n4NCd11QmZCtv4aOxMK00vyS0eRcE1BuQxu0xXvudxaCtR4wshuAgXcbALTIcqX05d8gHZGyIz-OB6wqa4sUrT3zELWkA0pQ-fNJY5NKcoSnfgjFw26rPi_o_bwyBIq-pzms0aVHM2aAqnT6UEaQ0vxhINTPBKil8H0tNl3oD23BhE3J-2P-ztlesUU0BgXGx1TG9P_iFRQBaOgkQzKALHurUhl296w4YSXocCaWBopf1e4p2V43AqyEKuU4ZMV6NDu7jos.HDwfTfMlomVPFkdI91nNzQuHmTTvKokI89TWP9LV8ZQy-x-ScK8FD1gOJjeQjFrPyA8ivpJYxka2YCiYDt3YBg", "opbs": "76e3456e-d9a5-4aa2-9a12-6fd52e9ba1e9", "response_type": "code", "session_id": "69520922-4cfe-4fdd-96d2-cf0cd6d46fbe", "client_id": "e783198c-4320-43e2-80d9-761949457ab2", "response_mode": "query.jwt", "sid": "080ee309-a950-4a75-86d0-334451738e3c", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "65a7f4bd-926a-4010-b14a-519d113b56c1", "old_session_id": "124b020e-3417-4305-8474-c97b72586c61" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:52" }, { "isJwt": false, "opbrowserState": "c42e4d2f-6ef6-40c0-9af3-c098684cbb5f", "deletable": true, "dn": "jansId=a9f3ccef-ad19-41c0-b670-ec15dd0f7551,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:52", "creationDate": "2022-11-24T09:24:51", "ttl": 0, "sessionState": "944e765617f3643143e6d80918dc7afc8fa133c7deaa1e7bd9f30a4848195cfb.10596687-1c2b-4363-b2bc-be5b17db0c93", "lastUsedAt": "2022-11-24T09:24:52", "permissionGrantedMap": { "permissionGranted": { "deb9bcec-9c48-4c9a-8e75-b60fa14972aa": true } }, "outsideSid": "8cf4dabb-4990-4480-b948-cb88f43c8f66", "id": "a9f3ccef-ad19-41c0-b670-ec15dd0f7551", "state": "authenticated", "sessionAttributes": { "opbs": "c42e4d2f-6ef6-40c0-9af3-c098684cbb5f", "response_type": "code token", "session_id": "a9f3ccef-ad19-41c0-b670-ec15dd0f7551", "client_id": "deb9bcec-9c48-4c9a-8e75-b60fa14972aa", "response_mode": "jwt", "sid": "8cf4dabb-4990-4480-b948-cb88f43c8f66", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "28261559-b597-4788-9b6b-1e0a0407adf1", "old_session_id": "035b6dc3-5d94-49aa-bbd0-7dbc36a413ac" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:51" }, { "isJwt": false, "opbrowserState": "6c40fe8f-2b91-4be7-966e-cd5570f24f14", "deletable": true, "dn": "jansId=14964196-aabb-41be-9f13-b176aecf40e0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:52", "creationDate": "2022-11-24T09:24:51", "ttl": 0, "sessionState": "d7c3ce71c8ad5f58c187c7f27c7e1c80ad159cede7974d188879650db50f952e.b963cf32-7e92-4632-99f4-e243fde6298d", "lastUsedAt": "2022-11-24T09:24:52", "permissionGrantedMap": { "permissionGranted": { "3cf7773d-a1de-42ba-a4ba-79a189a61f8c": true } }, "outsideSid": "56fceb22-aff0-4cc8-b387-7c951eca4637", "id": "14964196-aabb-41be-9f13-b176aecf40e0", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI2ZTM2ZWE3My1hM2M3LTRmMzgtYjMwOS0yZWQ4ZGE1NzhhMzEiLAogICJub25jZSIgOiAiNDUwZmEyOWQtMThkYi00YmM4LWIzYzEtMzZjN2Y0YTc2YjgyIiwKICAiY2xpZW50X2lkIiA6ICIzY2Y3NzczZC1hMWRlLTQyYmEtYTRiYS03OWExODlhNjFmOGMiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.OmctehlmwPW-JB9hSAWAFc-w7LSWh1Ft4o9M585GMkWjFwpumL7NVEuZNK-38Uq7V4b6Sn8GSkGzzsTNUekm0qiBeG5CjP3X1yf7eYaGR2IvFuu4wu5svXpstfiD4GjX5NpE0ScDPFJyGt1Q1UqXicGGUaESYmIzGBl3_n7p7nmEj2VSz0M5TfK4m06Mm5P9swt9ZjxNrE5OD3xStGTbJkj3fcvw0nTxHaHHCqXzjtwtz0_dNqL74wMMwOCeFHMM9NmMAiT_O48s3KpHsQPtWEPzkNeqY3ZIimPa3yIDovYSjCUmpKKISFxl11uVN1E9muizWB3kC7_yZA282dJ06g", "opbs": "6c40fe8f-2b91-4be7-966e-cd5570f24f14", "response_type": "token", "session_id": "14964196-aabb-41be-9f13-b176aecf40e0", "nonce": "450fa29d-18db-4bc8-b3c1-36c7f4a76b82", "client_id": "3cf7773d-a1de-42ba-a4ba-79a189a61f8c", "response_mode": "jwt", "sid": "56fceb22-aff0-4cc8-b387-7c951eca4637", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6e36ea73-a3c7-4f38-b309-2ed8da578a31", "old_session_id": "0142176d-565e-420d-abc3-684c0a3b4e5c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:51" }, { "isJwt": false, "opbrowserState": "4d94604e-4ece-4afd-9a95-c36de1656ef7", "deletable": true, "dn": "jansId=0934eb16-790f-40ed-b50b-910c48381cfa,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:51", "creationDate": "2022-11-24T09:24:50", "ttl": 0, "sessionState": "cb851d34c6108a0853b9d87e52485d875b039fb3473aaf9e7639f2952a886ddf.eef94c4c-e3f1-4ed9-8cae-efcab9ff11e3", "lastUsedAt": "2022-11-24T09:24:51", "permissionGrantedMap": { "permissionGranted": { "85eb19e2-e88e-433f-b5b4-3a5bd642312c": true } }, "outsideSid": "f6d6a529-a38f-4742-aff2-16c7ea240c4a", "id": "0934eb16-790f-40ed-b50b-910c48381cfa", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.RnHsczzRzrJURI5wGYQUiIrCSXVZGM8GCCzyW5SmPt2RfF-H-GncLgKauuZryX2uqBJrc-9NKTdC8NI25BGCyWSMK7YKFqa5zaauzahD2SIptDnIG_wAYOZqoqUkLqr8WmvrUKcAiuCuugLmaIjtQ2jKi40b9jHvWlMlfM7ld0bBlekkuDPjJjSgJiffCRwkDHSH1-MzVR65DRm-G2WWFCvQnM_IX7ioMFumoizBWEjKtBcrDuelfyrTpGvomn2USios9roBMVhTvxNnk0hLgg7ug_MgnM-7MJeNCICPDn9JS1xTFjHyDYhXG_sW9OS-smG0Hehop7gPaWWO3wmZng.EtTVSJquliuL8uGG7NfRJA.s5zJR0DiO66YSHX6ZZB_oviWbVM2cszz-NaOu8k57mntF38pNyq5JM55_cP0K_KuhQpmQ_FeJw7dTWkWRzoTn-jmbgtvVTUJ6kAF-suHrxv9c-o3plbi9ZzMRNq4Z3zr-4E9dHWDjNhITCIulNanO-9epdDkeyUysemtIYVK5C7rQ_hd2JRrWMlXnPGykHdD4lYQFhh1w4KzFknBRZx501YLw_WKrng4LbuqHEkQ_stccz7alfPtj1QNt20TMZMKeKRRJpYgBrGNlAbp0_MD_ZiAgi9p30lFvmCfMm74ceL9u6LZC4R8xbGWgGO8AjvOCyEFICBhqN4ZdxodoYxiJSCsY7S1deTTTgbFtDpeANShOHv763SakGa4hcOOnwjLDneblpRA_3h1o7tq4GwPspLF_NeH3m1hmQMw0HofEQR_tiLukkXrXGDHd59Qi3gNCPhw16qeTMw6Duzo5Smw2Z3kmFXrgaQVfQV0Q65MWkbKFrhVd7hbHyUi5FX7YZ3meFAge5gYsp9eluyYQqFyV0nAxd14ipz9oCdQ2wA3ROa4xRwWyqMARA2L6oIpJoVih5c17baIs7E6RDfFkGML5_sM4tuT_HeIjO_OC9RAgYn6dBR8Kb43rqXFo_B170gW_qjNlQA8fAa9uCR3KAuoiLXNV7zWk2XThNvX8QxyzaiRxsyGX761NcHveu_W5fp3C5fGJijLrwBC4R_w6Yrj9BYGia7oJmE9tRDqyBvURVLyn68gZH_AdaproHBHcqkHQuTWOXCWtun7tj7FsN7nW_d72bsiUKEgOHClbk99ZbE.27bguJcm5V9QozYP7EJLpCn9qfa89winwnBlZVXa0bw", "opbs": "4d94604e-4ece-4afd-9a95-c36de1656ef7", "response_type": "code", "session_id": "0934eb16-790f-40ed-b50b-910c48381cfa", "client_id": "85eb19e2-e88e-433f-b5b4-3a5bd642312c", "response_mode": "query.jwt", "sid": "f6d6a529-a38f-4742-aff2-16c7ea240c4a", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1ed71a60-601c-414e-b656-2e24b065117c", "old_session_id": "e3167f9a-b2dd-441e-a3cd-cce0522273e8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:50" }, { "isJwt": false, "opbrowserState": "4731fc28-3ac0-4e9f-8a95-891936280a86", "deletable": true, "dn": "jansId=5730cdf9-9201-4c31-8cde-20d6b8fde8aa,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:50", "creationDate": "2022-11-24T09:24:50", "ttl": 0, "sessionState": "97f5ab73470cbcb7de14d493dca007b966b98bffe9a4b592d6881777a102e860.d09fd6e4-7782-4342-981a-e687a3ece96c", "lastUsedAt": "2022-11-24T09:24:50", "permissionGrantedMap": { "permissionGranted": { "b90baffb-21e3-427f-b41f-6cce202ac180": true } }, "outsideSid": "d5bda8b6-a955-4ea9-8058-31def6955a86", "id": "5730cdf9-9201-4c31-8cde-20d6b8fde8aa", "state": "authenticated", "sessionAttributes": { "opbs": "4731fc28-3ac0-4e9f-8a95-891936280a86", "response_type": "code token", "session_id": "5730cdf9-9201-4c31-8cde-20d6b8fde8aa", "client_id": "b90baffb-21e3-427f-b41f-6cce202ac180", "response_mode": "jwt", "sid": "d5bda8b6-a955-4ea9-8058-31def6955a86", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a2a851e4-95ee-4ce4-be3f-c7e8cd362ee7", "old_session_id": "fd50b87b-2b88-4b52-918d-f5b1f7d1a6be" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:50" }, { "isJwt": false, "opbrowserState": "a1f67134-48f2-4f2d-9ad8-eeef48abfa79", "deletable": true, "dn": "jansId=75d2caca-4375-460a-95e0-abc9d8b5eac0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:50", "creationDate": "2022-11-24T09:24:49", "ttl": 0, "sessionState": "082f7554699450fc4a7330e3654193c0e41096c18296b0434ba7a69546473010.cc8d9428-3b78-40fb-92e6-dd9946e7d6a1", "lastUsedAt": "2022-11-24T09:24:51", "permissionGrantedMap": { "permissionGranted": { "2020b859-8d11-41e1-9797-1a69cbe90301": true } }, "outsideSid": "ad89100c-733b-486b-b90c-91ade143da67", "id": "75d2caca-4375-460a-95e0-abc9d8b5eac0", "state": "authenticated", "sessionAttributes": { "opbs": "a1f67134-48f2-4f2d-9ad8-eeef48abfa79", "response_type": "token id_token", "session_id": "75d2caca-4375-460a-95e0-abc9d8b5eac0", "nonce": "bebf7a99-906b-459e-82a9-c3c50b96dbaf", "client_id": "2020b859-8d11-41e1-9797-1a69cbe90301", "response_mode": "jwt", "sid": "ad89100c-733b-486b-b90c-91ade143da67", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "cf1db1fc-6233-406a-8622-3c5ef02ee32c", "old_session_id": "f99285e4-4a51-4946-9847-f426bf2f253e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:49" }, { "isJwt": false, "opbrowserState": "e3e36381-20f5-4c75-ac85-76ffafd8c5f8", "deletable": true, "dn": "jansId=ab498eb0-6356-4506-aad8-a52ed552c5f8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:49", "creationDate": "2022-11-24T09:24:48", "ttl": 0, "sessionState": "c7271de8824592a2462d6a7f7d789ad6d6b3f502810b0db6864d313800b677ed.6eb3d13c-df39-423e-9265-c32898a348c0", "lastUsedAt": "2022-11-24T09:24:50", "permissionGrantedMap": { "permissionGranted": { "1f67bfbd-8c49-4496-bc61-2587b0c9f338": true } }, "outsideSid": "5267ec60-e320-45d0-adc6-cc393a6518a3", "id": "ab498eb0-6356-4506-aad8-a52ed552c5f8", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.wagmc4J8SG0dBGIvP9kw_BceW0kEK2ytO-st7kQFd7BruhGXsqq0Dw.6rhcAAdzyCDTmoNP.zPssPlUe6FP5RChsu3pIrGvXwupoQi_-IM3VgLcpz4gAcGjX9RvtuTwmepEdBGu3C6db5pKuBfKWZ6ZAyTA4kUmcDhHW5Pv7ZqefUsaiXWYntB-e-yQehwd-0wXvQvsrLmUKXMx7zIohfJfv40K_IuYt485VFEB5PGc9_dy9rEzOSQTOle-AQ-SpbdhbNgYXO1-AXUo3Si0LCPLcGuBiAw0lUVS9rptINDAonDYwIaLlpvwR4Xcx9uG4_p3o0jn5UqHG5xU4Q68oGGuxETI4XV06BFo36CB_Vbt4Oc9VGrs7mu8yw_EiOJDnZoN-PihrU66DUkA2leM_plAUrvz_kOJPXi_kJCULtU6GdU5aYdSoBOr-LlEoYV8FkLRcpzzF2v8dYkU7ygoVgu2Mi0RsXrC_9XNSjD1l5WU6mxxOrFRAto4TEoHF3QKdVu6MHQdHVVvc0FiW7b90B-NEWJueHQ-XRYRdBtZxzHcjRJZWTXgKmstEqTI3L38jippr5gkPmgxxvJJ9t6VhTCQBUcxPRkU3Wq2jnmZFMr6JnjNJ5wJ0rPtDB2r2kz1uk9u4beo2Jpf3IlXcTgEINYrhvf-wsB2AUaakiqZML5ck7uSHrW8GHA4YSFxKmqpo8t2OgT2RguOYIbLHvVyz-aTXEP7iaXNzCFog1zgqZNu8UNwRho6yfy2orRtYrymQ1COLAxuvlR_Kl3ugjlY1jbjqGOdXAhJmpfHK_r5b960dPZei3drgKPpX0tx6OCkr0-1Qt3evJzs0AkYxK06pkpMQpgQSjXiY4S6Cs8yvg_X-oM0_.Fl-NkYuZrh4HwdZYOT-WoQ", "opbs": "e3e36381-20f5-4c75-ac85-76ffafd8c5f8", "response_type": "code", "session_id": "ab498eb0-6356-4506-aad8-a52ed552c5f8", "client_id": "1f67bfbd-8c49-4496-bc61-2587b0c9f338", "response_mode": "query.jwt", "sid": "5267ec60-e320-45d0-adc6-cc393a6518a3", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b51603ad-487f-48ab-9f5d-969da0e69cee", "old_session_id": "91cb89fe-c46d-4d2b-a4db-72c4df1059e2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:48" }, { "isJwt": false, "opbrowserState": "1f81bb8f-aa63-4342-9e42-6e3baa3d3b76", "deletable": true, "dn": "jansId=5093406e-4983-4792-a51c-90c7ae482983,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:49", "creationDate": "2022-11-24T09:24:48", "ttl": 0, "sessionState": "938d88e660ceb148bd3b11fbf12b92b18f7ce1b7613097061951da367eb6467d.1cdf7ec5-b293-4d56-b6dd-263c7ce20411", "lastUsedAt": "2022-11-24T09:24:49", "permissionGrantedMap": { "permissionGranted": { "df3d19cf-cdad-4cc9-b338-4f9ff8bce46e": true } }, "outsideSid": "a6e3ca2d-5d27-4be4-9a3b-5308195677d0", "id": "5093406e-4983-4792-a51c-90c7ae482983", "state": "authenticated", "sessionAttributes": { "opbs": "1f81bb8f-aa63-4342-9e42-6e3baa3d3b76", "response_type": "code token", "session_id": "5093406e-4983-4792-a51c-90c7ae482983", "client_id": "df3d19cf-cdad-4cc9-b338-4f9ff8bce46e", "response_mode": "jwt", "sid": "a6e3ca2d-5d27-4be4-9a3b-5308195677d0", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4942bf1a-a509-4f79-8e2a-c37b44b688a3", "old_session_id": "e96b110d-18cc-4e90-8db0-f79f57022185" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:48" }, { "isJwt": false, "opbrowserState": "5a843d49-259c-48d3-980e-82c6832b7122", "deletable": true, "dn": "jansId=90d31600-d0c3-4641-8f50-cb0455dc0b5c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:48", "creationDate": "2022-11-24T09:24:48", "ttl": 0, "sessionState": "985132c22e0d450472ca43a04f1251843618f2ad55aab3a8574ba44fc9a250c8.067345df-e680-434d-8387-87dfb33be580", "lastUsedAt": "2022-11-24T09:24:49", "permissionGrantedMap": { "permissionGranted": { "4ef49cf1-fb70-4bc3-9cea-9567542ed5f2": true } }, "outsideSid": "51e183d9-e22b-45b0-9c09-4189a91b6f96", "id": "90d31600-d0c3-4641-8f50-cb0455dc0b5c", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI3YjM3MzVjOC04MjFjLTRmNDEtYWI1ZS05MzZlZTJiMWZlMGUiLAogICJub25jZSIgOiAiZmQzZDdlNjQtZWU2NS00MzcwLWEyZWEtNTNlMjdhNDU5YTFlIiwKICAiY2xpZW50X2lkIiA6ICI0ZWY0OWNmMS1mYjcwLTRiYzMtOWNlYS05NTY3NTQyZWQ1ZjIiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.AEHzrbZopYaYYxTs1h-6MP4h1wd-bVWKevEPPrXsSSXOyBWeFgQjTikkl8H_OVPo8x8QD1N_y5MT3V5n7QLifXZYAJnSoGi3J_U_t0tJQ3tGzx1MhCShC1UdNhADQz8QEu7bt5krumC5oK2C4n1iJBt4kuRPIXUp06wpa7AKjlWjXOut", "opbs": "5a843d49-259c-48d3-980e-82c6832b7122", "response_type": "token", "session_id": "90d31600-d0c3-4641-8f50-cb0455dc0b5c", "nonce": "fd3d7e64-ee65-4370-a2ea-53e27a459a1e", "client_id": "4ef49cf1-fb70-4bc3-9cea-9567542ed5f2", "response_mode": "jwt", "sid": "51e183d9-e22b-45b0-9c09-4189a91b6f96", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7b3735c8-821c-4f41-ab5e-936ee2b1fe0e", "old_session_id": "067ac006-1677-4b22-8b02-13dbe7c3d219" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:48" }, { "isJwt": false, "opbrowserState": "c9ae5386-2564-414f-8b8a-fceebd39cfe7", "deletable": true, "dn": "jansId=220bb31e-905d-40f9-985c-e956174511e8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:48", "creationDate": "2022-11-24T09:24:47", "ttl": 0, "sessionState": "e74d954e3df7dcf77a1374d172bc9fdfaec06d6230e09457ac0a80ff54e8c529.bfc7bd76-0936-4577-bd08-cc657e30ef71", "lastUsedAt": "2022-11-24T09:24:49", "permissionGrantedMap": { "permissionGranted": { "39fcd45c-8216-4d29-9a46-b747cc3ebfb4": true } }, "outsideSid": "b5be6585-7478-48c1-a51c-5573b5659fd8", "id": "220bb31e-905d-40f9-985c-e956174511e8", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiMzkwZTYwNTMtMjg0NC00Y2VhLWI1YmItODEwOTU3NGUyOWMyIiwKICAibm9uY2UiIDogImNjMTkwMTFmLWE0NWYtNDMyOS05Y2RjLWM1N2JmZGZmMjBiOSIsCiAgImNsaWVudF9pZCIgOiAiMzlmY2Q0NWMtODIxNi00ZDI5LTlhNDYtYjc0N2NjM2ViZmI0IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiand0Igp9.1_0_C4XaUa3ZkBBD3T7-pyTp7ALt9jd3KnG5Jli68GeYZKWDrK3L2b510vxS7EDWwrATf3Ut6h0AgW6XK7nuuFWefADeCbyWyq1_t1N58RQgkONLQlSmS2ky3pwZZbEdnYroUiTgwKHmkq4LcNMiKZ_z-ji-nin_SyoAle2Tu4168OqpISQJ22HQiCGtg0qKpcD1OWxVZ1BhmtUOsBfX6NKcTr3Uz8NJPa9Ls3MOM5NJjswh6Mdt-ou8Fjl__e_fnySwfkjh8dSQ-iUWBZM-Fe4UtgsNxQVdlsx6lf_mtGgQWV5tS7Cdh4XTO0D6JmYwp9QqNWIRjO6OnX6EmbLPMw", "opbs": "c9ae5386-2564-414f-8b8a-fceebd39cfe7", "response_type": "token id_token", "session_id": "220bb31e-905d-40f9-985c-e956174511e8", "nonce": "cc19011f-a45f-4329-9cdc-c57bfdff20b9", "client_id": "39fcd45c-8216-4d29-9a46-b747cc3ebfb4", "response_mode": "jwt", "sid": "b5be6585-7478-48c1-a51c-5573b5659fd8", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "390e6053-2844-4cea-b5bb-8109574e29c2", "old_session_id": "fed71608-b461-46dc-8b91-d933a74bd886" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:47" }, { "isJwt": false, "opbrowserState": "b0a13cf4-8994-4ee2-ae04-986e8d7a82a6", "deletable": true, "dn": "jansId=86b496af-870a-4bb0-b354-ce66ac4b078f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:47", "creationDate": "2022-11-24T09:24:47", "ttl": 0, "sessionState": "c8e05966a0353fbcfb1c3fedf75cc2d5f598928ebd1aa8d68d0e74dd3bf6464d.5ee24939-b04d-4e52-9f25-5666ebe682f7", "lastUsedAt": "2022-11-24T09:24:48", "permissionGrantedMap": { "permissionGranted": { "b0bcc5b9-6b0d-40cf-83ea-a8897d08049a": true } }, "outsideSid": "8809d7be-7e6d-4778-9774-c0106d62c460", "id": "86b496af-870a-4bb0-b354-ce66ac4b078f", "state": "authenticated", "sessionAttributes": { "opbs": "b0a13cf4-8994-4ee2-ae04-986e8d7a82a6", "response_type": "code token", "session_id": "86b496af-870a-4bb0-b354-ce66ac4b078f", "client_id": "b0bcc5b9-6b0d-40cf-83ea-a8897d08049a", "response_mode": "jwt", "sid": "8809d7be-7e6d-4778-9774-c0106d62c460", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0bf9cc7e-45fe-4ac7-87ec-9d8c20adea53", "old_session_id": "ed67184d-0f8d-4b48-8aea-4022a14ba07d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:47" }, { "isJwt": false, "opbrowserState": "04f9b478-20a6-4cd6-a90c-a6e6e2e10bcf", "deletable": true, "dn": "jansId=8ff426dc-764e-427b-8f07-f918775a1aca,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:47", "creationDate": "2022-11-24T09:24:47", "ttl": 0, "sessionState": "805395c0995a71802c64c6f1cf138b63d963e9e8496ece4368f8a45a64e4e67f.c44f94a5-ce40-4413-bde0-4eadf5f547d1", "lastUsedAt": "2022-11-24T09:24:48", "permissionGrantedMap": { "permissionGranted": { "184a664e-b9b0-4f96-9470-731a130d8fac": true } }, "outsideSid": "48d4c821-edc6-441b-a566-7269a66b2bb1", "id": "8ff426dc-764e-427b-8f07-f918775a1aca", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.dMiBsyRxa2QNbjYgOw9TtXvXGXaGd1ZA.Z-wnkhfc3UfIZ0JT.4dZAHkTCZppN6maRskfv0Y28l-neTdP2dZwTNYXT-mI-uuqxPTAU_9-2fXkhqE7wY3yMnZreQx-FuUT3u6LSp-XvPo59nUh2vGvpDg4rcWe85c0AJXQqxAuXu0e3Ow3iRf1xz42MT6JcIROxQCzFJQDSHDTKTkNuPRrA7aWk48m4FKGvi2u2wgGGwkDWoXHlItfTJqIJRGhf9M99NQ5swJwDUJTfXcXPZ8OyVvqJ2g2roe8V8xnU7Cx2t5EPBFoyiiRAn4cCcB7KFxPeNtzmjjWK48a0fFEhM-1d9AF5Px2djusHBh9wvRTlF0q4aAmvA41GDSEWgfp6RvcaB3d9EdVzIUmY1xNoBLoQhCOaNptm8plsSrs4riPGPJNbDLVNfCjffxleNZ8LKGYOmgCd8h90GLFPdNgHBeprafDJbi2kvDHQe1ApH5Lr-19-REwyGi5fga7gMma573PKAwGX1mv7NcY-uaWUf_jDOaFIidFbrHfWcIWcGqTLtp_nfZwcCzFI062s12BVDGTWGx5R8r61ZjVpm38mqs7dV7_gyaWt9nxQBXRFgS9s-Vol2_kB7t2O2WVY6GHKRtZCbgAle-nKGHJQSOtA_UTMMK6_1n5-oaLH8YEW_FWDG0MmOpwRpOSc5Og5rJuvojevawwkJyx-dFvDk78Xn1bN6WdHAvUleMmavfqECul5rU8RvbOz8oA9t5t3hl0IcHprqVelGMGaUAAVJCOU44JOlZuLOcU6JhGHIrlEe5eSe9UzC30ZX0cRa_T8s59t7KVi6-AhU_0tp9Kfzp0kP6lRIPAx.N3QrgNP6dBe64OPL9RxPUg", "opbs": "04f9b478-20a6-4cd6-a90c-a6e6e2e10bcf", "response_type": "code", "session_id": "8ff426dc-764e-427b-8f07-f918775a1aca", "client_id": "184a664e-b9b0-4f96-9470-731a130d8fac", "response_mode": "query.jwt", "sid": "48d4c821-edc6-441b-a566-7269a66b2bb1", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c4362337-0f0a-42c4-8d21-89e8ae69d47a", "old_session_id": "eb255367-83da-4f88-b74b-32e0d523b3c0" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:47" }, { "isJwt": false, "opbrowserState": "00d88919-8ed2-43f0-8edd-170a06cafde6", "deletable": true, "dn": "jansId=820c4ba9-f629-4a98-849a-391d9b2dcda7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:47", "creationDate": "2022-11-24T09:24:46", "ttl": 0, "sessionState": "9efef19e99ea043bb102aa583ee7178bd86727d589e8739e1d8ae2766a81a862.e1c02e89-da75-4e93-ada9-8c771ffcf01e", "lastUsedAt": "2022-11-24T09:24:47", "permissionGrantedMap": { "permissionGranted": { "c0045690-8f03-44f5-a066-9259b3e90486": true } }, "outsideSid": "7aa43f75-27bb-4c78-a7b8-949130eceba4", "id": "820c4ba9-f629-4a98-849a-391d9b2dcda7", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIxNDZjZjJmYy0zMWMyLTQ0NWUtYWVjZS1iMTU2ZjZkY2EyMjciLAogICJub25jZSIgOiAiNTk5ZmEyY2MtNjI3My00MTg4LThjMzUtOGI0Mjc0OTFjOTUzIiwKICAiY2xpZW50X2lkIiA6ICJjMDA0NTY5MC04ZjAzLTQ0ZjUtYTA2Ni05MjU5YjNlOTA0ODYiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.MDIYY0YGbn3ESlHt0ir1Qf9WdCEd0iMovuUOvYLNh9ps8wtB0YIsLu65xRPKCtcvirsrpyQygu7ibAeAQaSPJc2WH3KCTMVE9VZSN96zeG0Hw2L1uGtRK6nB-h8qceMr", "opbs": "00d88919-8ed2-43f0-8edd-170a06cafde6", "response_type": "token", "session_id": "820c4ba9-f629-4a98-849a-391d9b2dcda7", "nonce": "599fa2cc-6273-4188-8c35-8b427491c953", "client_id": "c0045690-8f03-44f5-a066-9259b3e90486", "response_mode": "jwt", "sid": "7aa43f75-27bb-4c78-a7b8-949130eceba4", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "146cf2fc-31c2-445e-aece-b156f6dca227", "old_session_id": "ab56ffe8-9e25-41af-868f-2bb510c1f46a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:46" }, { "isJwt": false, "opbrowserState": "3747f197-d092-4a82-b08e-58682da64f1d", "deletable": true, "dn": "jansId=3aff99ad-e003-461e-8153-67f65aea8581,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:46", "creationDate": "2022-11-24T09:24:45", "ttl": 0, "sessionState": "af0062291763d4a1a46febc81379abca85c37485e94d230baa07b300b5b12f33.f53252f8-50ee-4827-9b7c-2ccbf2cd1d5f", "lastUsedAt": "2022-11-24T09:24:47", "permissionGrantedMap": { "permissionGranted": { "4ed68984-b09f-47b1-a79d-54932581e17f": true } }, "outsideSid": "23e5fda8-7d8e-4c06-901a-0c08d8a09055", "id": "3aff99ad-e003-461e-8153-67f65aea8581", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiODRkYTQ5MzYtNWI2Ny00ZjQzLTkzZjUtYWExY2ViZGI0MDQ1IiwKICAibm9uY2UiIDogImMzNzA3YjhkLTdjNTUtNDc1MS04NGVjLWI3Zjg3MmMzOGEwZiIsCiAgImNsaWVudF9pZCIgOiAiNGVkNjg5ODQtYjA5Zi00N2IxLWE3OWQtNTQ5MzI1ODFlMTdmIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiand0Igp9.iA2usiRapfMM6gPFblix54HspdO5mPQM0k3sLIfmFQGQ4U44Vj4F7o752rUCn1b-tojjvcK4KtYwrpsk8vpq_C1OhNhVEzqXm25WDV_SPbSrLqc8fK0xdZe1HKJmeZMRT-DLx82GUz3UF5befqhnMR9ocRrLVJDSc3qXEQbskP1c7Ggbvhc3Q7p1WfdGdU2ucY6EmgJRpwjYMKn3knKLZCNScFl-sljK3f2JdD23Fj-vDh-qBlPgKW9VdVRs7BeY5_D5HRxa4p2nswvzK7TJyIUeMj654OyVTNE20reJt9SSZkL1X7w0nQK4Q541nII_IfI1Vm7Ojrsbbu9ZJXOaRQ", "opbs": "3747f197-d092-4a82-b08e-58682da64f1d", "response_type": "token id_token", "session_id": "3aff99ad-e003-461e-8153-67f65aea8581", "nonce": "c3707b8d-7c55-4751-84ec-b7f872c38a0f", "client_id": "4ed68984-b09f-47b1-a79d-54932581e17f", "response_mode": "jwt", "sid": "23e5fda8-7d8e-4c06-901a-0c08d8a09055", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "84da4936-5b67-4f43-93f5-aa1cebdb4045", "old_session_id": "e08882a9-6740-4c2f-9a7c-bc091edf285a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:45" }, { "isJwt": false, "opbrowserState": "6e8fea10-f3bc-4406-9679-1ff90db74759", "deletable": true, "dn": "jansId=259a61dd-7446-473c-a585-42aee4453251,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:46", "creationDate": "2022-11-24T09:24:45", "ttl": 0, "sessionState": "1d03be58329ceeeefb0d7abd62a266f77e4856a130a0198381374d2c48c2f7ee.c8f81c97-af51-4246-b653-53f84aba59a3", "lastUsedAt": "2022-11-24T09:24:46", "permissionGrantedMap": { "permissionGranted": { "43624fac-4c2b-4353-b532-8a0eb83e99e3": true } }, "outsideSid": "abb9c865-4b09-4cfd-b84f-d4c1e099c2b7", "id": "259a61dd-7446-473c-a585-42aee4453251", "state": "authenticated", "sessionAttributes": { "opbs": "6e8fea10-f3bc-4406-9679-1ff90db74759", "response_type": "token id_token", "session_id": "259a61dd-7446-473c-a585-42aee4453251", "nonce": "708a2294-b72d-4535-af0c-a6031d3c0088", "client_id": "43624fac-4c2b-4353-b532-8a0eb83e99e3", "response_mode": "jwt", "sid": "abb9c865-4b09-4cfd-b84f-d4c1e099c2b7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c0367805-cba4-4f28-bcca-fec1dfe38b1d", "old_session_id": "7025c8eb-f95d-4d30-8255-091cfa4582f9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:45" }, { "isJwt": false, "opbrowserState": "3ba548b5-748b-4e6c-9629-09098eb6c882", "deletable": true, "dn": "jansId=70f76e86-c8b6-4304-adb1-1f2e95d3888c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:45", "creationDate": "2022-11-24T09:24:44", "ttl": 0, "sessionState": "425cb36beaad7e38a43765932e5e7500ef2d7e061d3761a87d3055d135669e5a.653ad7a1-aab8-4036-878d-2c72deb82255", "lastUsedAt": "2022-11-24T09:24:46", "permissionGrantedMap": { "permissionGranted": { "c325a95c-b905-4c07-bd0a-b447c1e2fefb": true } }, "outsideSid": "1542d15d-47d1-47c8-a672-9d5e6a607faa", "id": "70f76e86-c8b6-4304-adb1-1f2e95d3888c", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJlYjY5YTdkYi0yNGY0LTRkYTEtOGNmZC03ZTZiZmI2NTY2MGYiLAogICJub25jZSIgOiAiNzNkYjY1NjgtZGEyZS00Y2FjLWIzMjUtMGZmM2E4ODExMDgzIiwKICAiY2xpZW50X2lkIiA6ICJjMzI1YTk1Yy1iOTA1LTRjMDctYmQwYS1iNDQ3YzFlMmZlZmIiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.Nic2_n-DI6EibegbrQU7cSCix49YR8Nz3-mwIRew6P3oD8i_JTpkFyi0WCAmo3HMcSwbP3lG8NY4Sq87zMcYRA", "opbs": "3ba548b5-748b-4e6c-9629-09098eb6c882", "response_type": "token", "session_id": "70f76e86-c8b6-4304-adb1-1f2e95d3888c", "nonce": "73db6568-da2e-4cac-b325-0ff3a8811083", "client_id": "c325a95c-b905-4c07-bd0a-b447c1e2fefb", "response_mode": "jwt", "sid": "1542d15d-47d1-47c8-a672-9d5e6a607faa", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "eb69a7db-24f4-4da1-8cfd-7e6bfb65660f", "old_session_id": "344271ce-dde0-4955-9626-1747e4987d20" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:44" }, { "isJwt": false, "opbrowserState": "a69b78b5-b4e4-46fd-83dd-a505ddec2408", "deletable": true, "dn": "jansId=52098047-5f53-4af9-a4aa-76bada8cc5c3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:45", "creationDate": "2022-11-24T09:24:44", "ttl": 0, "sessionState": "97e540f280a7018008bb829d779ec6e93b18ea07f6d71bdd55410d9606fbc34c.b6642253-a193-485c-bfd8-25d8294031ca", "lastUsedAt": "2022-11-24T09:24:45", "permissionGrantedMap": { "permissionGranted": { "eaae1514-85dd-4609-89b0-f3ab23d10e75": true } }, "outsideSid": "4436209c-7695-48cc-a60c-af8b91d7b446", "id": "52098047-5f53-4af9-a4aa-76bada8cc5c3", "state": "authenticated", "sessionAttributes": { "opbs": "a69b78b5-b4e4-46fd-83dd-a505ddec2408", "response_type": "code token", "session_id": "52098047-5f53-4af9-a4aa-76bada8cc5c3", "client_id": "eaae1514-85dd-4609-89b0-f3ab23d10e75", "response_mode": "jwt", "sid": "4436209c-7695-48cc-a60c-af8b91d7b446", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f7ff611c-baef-4413-8b8b-733cddee9b0c", "old_session_id": "1838d1b5-1917-4f73-9b06-9197d16b5733" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:44" }, { "isJwt": false, "opbrowserState": "f4ba673c-fbe2-4ffd-ba05-010db975bfa3", "deletable": true, "dn": "jansId=93cc188b-36d2-44c4-bb2a-24077560d70a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:44", "creationDate": "2022-11-24T09:24:43", "ttl": 0, "sessionState": "c8814a392ff907c960dba852e5ebd12b8b5195557c37ddbe83f4cad82c106571.71bc595d-801b-4cda-940c-2b2ab2562924", "lastUsedAt": "2022-11-24T09:24:45", "permissionGrantedMap": { "permissionGranted": { "84fa144f-fb6e-4cc1-97c7-03b9b8a30d50": true } }, "outsideSid": "8ace6dfc-0203-453e-a840-e7f31df31fe1", "id": "93cc188b-36d2-44c4-bb2a-24077560d70a", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiODkwYzA1ZmItOWQxNS00NDgyLWI5N2EtM2UzNTJjOWZjN2JiIiwKICAibm9uY2UiIDogIjljNWRhYjI4LTRiNWMtNGM5My1iYjAyLWE5ZTE4YWFiMjMwNiIsCiAgImNsaWVudF9pZCIgOiAiODRmYTE0NGYtZmI2ZS00Y2MxLTk3YzctMDNiOWI4YTMwZDUwIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiand0Igp9.oXGkdsg2j2w1xpwPQvJDjPH9eXKoXESFV35nEix3sm0G65GUG7ruHpO4eq3E8_7RbDzlIIBoAL6-oKF6ef6vtG0u2yKGMAlvnzKJNCsHPrvLOoWce1X0vr9VwIhQqQ0iQkDUTYqon0s32lkjsQz03wGtGKmsAp1r5arvRMuKUt2hFKUqVfxR9JcYEVFf7gh8M4uUKLsIxdRRWcxflXi44e8WseXR4NQTFYOlnHI8V6zoPdu4NocdFy9v_eFzCAErnTKLdy3bJa5zpmmW17v0_DXUWB7b3VDKVc2Q66kjFKyGc27CkM3RNkpvn2qvDn8dbS3nrpqw_a9VE-nhdULlhQ", "opbs": "f4ba673c-fbe2-4ffd-ba05-010db975bfa3", "response_type": "token id_token", "session_id": "93cc188b-36d2-44c4-bb2a-24077560d70a", "nonce": "9c5dab28-4b5c-4c93-bb02-a9e18aab2306", "client_id": "84fa144f-fb6e-4cc1-97c7-03b9b8a30d50", "response_mode": "jwt", "sid": "8ace6dfc-0203-453e-a840-e7f31df31fe1", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "890c05fb-9d15-4482-b97a-3e352c9fc7bb", "old_session_id": "3748592e-649b-4838-abf7-d3145478cd74" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:43" }, { "isJwt": false, "opbrowserState": "4070ede7-0389-4473-a1b4-a1d26f39e387", "deletable": true, "dn": "jansId=3905bf5a-ed94-4dc1-a51e-bc7c7b991f75,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:44", "creationDate": "2022-11-24T09:24:43", "ttl": 0, "sessionState": "7f28ef081f7c8848baea2814d3f0b42a1b4246b975764371fda0bee815b368c8.72ca23d0-fa6d-46c5-8ff1-daffd1545cb9", "lastUsedAt": "2022-11-24T09:24:45", "permissionGrantedMap": { "permissionGranted": { "29ffcbf4-9ffb-4c47-b55d-aa970039436d": true } }, "outsideSid": "58170a5e-2f25-4df2-95f8-a47028cf10f5", "id": "3905bf5a-ed94-4dc1-a51e-bc7c7b991f75", "state": "authenticated", "sessionAttributes": { "opbs": "4070ede7-0389-4473-a1b4-a1d26f39e387", "response_type": "token id_token", "session_id": "3905bf5a-ed94-4dc1-a51e-bc7c7b991f75", "nonce": "77c5e28d-c91e-4ce5-baad-c0ae52b4e144", "client_id": "29ffcbf4-9ffb-4c47-b55d-aa970039436d", "response_mode": "jwt", "sid": "58170a5e-2f25-4df2-95f8-a47028cf10f5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b671e186-d1b1-4409-895e-9fda3e5ad0fa", "old_session_id": "07164731-3f37-4f86-88ed-d8d0a233b896" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:43" }, { "isJwt": false, "opbrowserState": "b066fcf2-c362-4175-a760-5cbee404c7a6", "deletable": true, "dn": "jansId=09b1d159-aa73-4740-afd2-99ff565d45c5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:42", "creationDate": "2022-11-24T09:24:41", "ttl": 0, "sessionState": "0da3b31ae60b6ac85167654c3d9a78ea20aa6cdb86cde32e4b51dd51d7521a60.382198b5-1388-4015-9acc-274ba13a1dd2", "lastUsedAt": "2022-11-24T09:24:43", "permissionGrantedMap": { "permissionGranted": { "0e869daf-3ccd-433a-b427-3ce40fb5537d": true } }, "outsideSid": "2b3f3303-8f8c-420e-9afa-07852d0c356e", "id": "09b1d159-aa73-4740-afd2-99ff565d45c5", "state": "authenticated", "sessionAttributes": { "opbs": "b066fcf2-c362-4175-a760-5cbee404c7a6", "response_type": "token id_token", "session_id": "09b1d159-aa73-4740-afd2-99ff565d45c5", "nonce": "d08c6993-afa8-4547-8fde-62d04b9c387e", "client_id": "0e869daf-3ccd-433a-b427-3ce40fb5537d", "response_mode": "jwt", "sid": "2b3f3303-8f8c-420e-9afa-07852d0c356e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c35bfbf9-2d12-4c5b-8b8f-060dc330de24", "old_session_id": "55a6bfcf-3f92-42df-89ee-d18248eb9463" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:41" }, { "isJwt": false, "opbrowserState": "e6bfe350-507a-4d54-a00c-228ea15ca1d3", "deletable": true, "dn": "jansId=392948d6-ede8-41e9-bafd-931326f3a43d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:42", "creationDate": "2022-11-24T09:24:41", "ttl": 0, "sessionState": "87af9f5e2e73743071982de294b90fe22aaee09141fffd11535821cd52e51cad.ebe30463-df7a-4de6-ada5-1526455b0921", "lastUsedAt": "2022-11-24T09:24:42", "permissionGrantedMap": { "permissionGranted": { "33c73ee3-2bb1-44c0-8f0c-27e62bff8c50": true } }, "outsideSid": "a6999696-57af-4c96-87ca-93dd64325c71", "id": "392948d6-ede8-41e9-bafd-931326f3a43d", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiNDk4YzI5NTAtZGYzMC00YzJmLWFkMTAtMTdlNWQ0ODM3MTliIiwKICAibm9uY2UiIDogIjdjNWY4NTQ4LThlMWEtNDA4My1iOWMxLWJkNjk5YzhkMjZmZSIsCiAgImNsaWVudF9pZCIgOiAiMzNjNzNlZTMtMmJiMS00NGMwLThmMGMtMjdlNjJiZmY4YzUwIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiand0Igp9.YY0zlONOJoSLowmdapoZ6HMimALHCB15KoIxaartqhjxoWK2uwrfiSpZFTvQS584pQxZ3GvE_YKq4pQtmeuFyzua1IUh8hiFfZr8dO1C60cPz8d_EMvKrm2KHHsGG47ntVwjctE5NohAgcWYH7aIEyiVg_3lKKLUCo97ZZVTT2csEFurRDycCN14YgCGhdwaW59g-LL-_I7FSI7tMfZ1E5wYlJfDZxv3MSNeACs4kZWotSqp5p7JiH69ZdBk7UvcQ9nvC2XNxQjJ_YVFtBDjMZpnALNKBUTyqZD7lDv-lFdlE7NH-MtYBMzCypBgdvJXXliU9FlgRN15Xkg3N3V7vg", "opbs": "e6bfe350-507a-4d54-a00c-228ea15ca1d3", "response_type": "token id_token", "session_id": "392948d6-ede8-41e9-bafd-931326f3a43d", "nonce": "7c5f8548-8e1a-4083-b9c1-bd699c8d26fe", "client_id": "33c73ee3-2bb1-44c0-8f0c-27e62bff8c50", "response_mode": "jwt", "sid": "a6999696-57af-4c96-87ca-93dd64325c71", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "498c2950-df30-4c2f-ad10-17e5d483719b", "old_session_id": "1b486562-f82e-4de6-adea-c99e4929297e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:41" }, { "isJwt": false, "opbrowserState": "d62f7e5b-937b-406c-bc0e-8c9ae32c7607", "deletable": true, "dn": "jansId=3e61bbb8-7f78-4f20-8b22-75eaee059229,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:42", "creationDate": "2022-11-24T09:24:41", "ttl": 0, "sessionState": "d6728d19c643a4b545538bdde71c5f684b269d886d0193ac1df2a955fd4f3f08.f807d923-46f2-4988-beab-45d3cb50e573", "lastUsedAt": "2022-11-24T09:24:42", "permissionGrantedMap": { "permissionGranted": { "460b709c-b540-48ce-a16a-1b3307428f1f": true } }, "outsideSid": "981df35e-7296-4527-bdbf-022a36dbe209", "id": "3e61bbb8-7f78-4f20-8b22-75eaee059229", "state": "authenticated", "sessionAttributes": { "opbs": "d62f7e5b-937b-406c-bc0e-8c9ae32c7607", "response_type": "code token", "session_id": "3e61bbb8-7f78-4f20-8b22-75eaee059229", "client_id": "460b709c-b540-48ce-a16a-1b3307428f1f", "response_mode": "jwt", "sid": "981df35e-7296-4527-bdbf-022a36dbe209", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2143ed41-5f51-4536-bbde-bdea00b8c650", "old_session_id": "60519361-28f2-42a9-bbb3-4db169aa48ab" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:41" }, { "isJwt": false, "opbrowserState": "7c41af94-e767-44b4-ba1a-fb3ef1197f15", "deletable": true, "dn": "jansId=18f63153-63f4-40e0-bb1b-735f45083b37,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:40", "creationDate": "2022-11-24T09:24:40", "ttl": 0, "sessionState": "7d6002238d500b0cb6e28bbb2c6fe5ef6cdeb05be1658de8e34c804788035150.7066d900-0363-4f11-9d5c-90a93a273d7b", "lastUsedAt": "2022-11-24T09:24:41", "permissionGrantedMap": { "permissionGranted": { "c632b6ff-9752-455d-a702-0cbb847e846b": true } }, "outsideSid": "3f524b19-a5a5-4cf5-96fe-96611116e0b7", "id": "18f63153-63f4-40e0-bb1b-735f45083b37", "state": "authenticated", "sessionAttributes": { "opbs": "7c41af94-e767-44b4-ba1a-fb3ef1197f15", "response_type": "token id_token", "session_id": "18f63153-63f4-40e0-bb1b-735f45083b37", "nonce": "45ed257e-9ad6-4ef2-a69e-71f76aeaa0a8", "client_id": "c632b6ff-9752-455d-a702-0cbb847e846b", "response_mode": "jwt", "sid": "3f524b19-a5a5-4cf5-96fe-96611116e0b7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8dab4e82-6934-432f-bcd2-7b8ac8c98a8e", "old_session_id": "24e68804-bff5-4d37-b97a-2a060fbc5132" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:40" }, { "isJwt": false, "opbrowserState": "4fd9f5d8-4e97-4197-8e28-0fc51a4bab22", "deletable": true, "dn": "jansId=2539b666-7270-4362-ac52-32647106a8d9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:40", "creationDate": "2022-11-24T09:24:39", "ttl": 0, "sessionState": "a8913e9f967f9ad9ced7d74ffc898c38f5dae863c4de5e0f522c3f95ab05619d.f5161eb4-076c-45ba-8223-d75bf6a30598", "lastUsedAt": "2022-11-24T09:24:40", "permissionGrantedMap": { "permissionGranted": { "e8543374-f841-4e51-ad1b-11cbe7aefbae": true } }, "outsideSid": "3510c707-73b9-43b6-aee9-1ef5ec0e9ea2", "id": "2539b666-7270-4362-ac52-32647106a8d9", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI3NmQ2ZTEwOS0zZDczLTQ2NmQtOTFkNS1mZWEyNTUxOGJkNzUiLAogICJub25jZSIgOiAiMGUwOWMwNWYtMTA2Yy00NmZhLThhOTAtZTlmYjIzMGU1YjlkIiwKICAiY2xpZW50X2lkIiA6ICJlODU0MzM3NC1mODQxLTRlNTEtYWQxYi0xMWNiZTdhZWZiYWUiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.a8QmORiGwpoNxrmd7yDa5UqM6N-2vKl8iZz1E-z3r21XrAikWEn9Kza0ezcTyP4t7Ayr6ODjanSkNVucELbV_zZcwhyJ5WABX7AspVjoPe5GyYOijr5roIkTRuBaWYB-f6ke7lfR08uHx2AdJkYwhxAn8c1quRzIXX0Gk1_YobEtk4OosWdtL2tTcJogOzFE-0kcblI7dhB7X2NSPo8Zy8fmh8dy_3eXLgQfJm4iZFiHMTy8wZQ4s-wsOnjRlyfalY3uuc90ioPOUzemiSXxRhZmKUo6St15a_4TTSEESPVUvH12_GjDoOQqRe23m0drlCxVsnpHHqXR2n8c6GpmHg", "opbs": "4fd9f5d8-4e97-4197-8e28-0fc51a4bab22", "response_type": "code token", "session_id": "2539b666-7270-4362-ac52-32647106a8d9", "nonce": "0e09c05f-106c-46fa-8a90-e9fb230e5b9d", "client_id": "e8543374-f841-4e51-ad1b-11cbe7aefbae", "response_mode": "jwt", "sid": "3510c707-73b9-43b6-aee9-1ef5ec0e9ea2", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "76d6e109-3d73-466d-91d5-fea25518bd75", "old_session_id": "fbf394e6-6efa-4d49-9971-4f1b72b9a47b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:39" }, { "isJwt": false, "opbrowserState": "346b30b3-8a31-489b-a51b-201cdb318cd8", "deletable": true, "dn": "jansId=4d44961f-4ba3-4ce5-8eac-8656b8429afe,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:40", "creationDate": "2022-11-24T09:24:39", "ttl": 0, "sessionState": "b9aa8c48409c76685d7c0d0f3b13f28ec7c295f5b33ab243ac05343191283942.d683f5c9-54ed-4eec-8028-ef9fb440fecc", "lastUsedAt": "2022-11-24T09:24:40", "permissionGrantedMap": { "permissionGranted": { "7a0f153a-d087-4172-8f82-cd6aea923ec6": true } }, "outsideSid": "6e5154a5-92c2-4d0d-a48e-c335580dfe3f", "id": "4d44961f-4ba3-4ce5-8eac-8656b8429afe", "state": "authenticated", "sessionAttributes": { "opbs": "346b30b3-8a31-489b-a51b-201cdb318cd8", "response_type": "token", "session_id": "4d44961f-4ba3-4ce5-8eac-8656b8429afe", "nonce": "12389e51-f8f3-4c70-aee0-714e42a0b3ae", "client_id": "7a0f153a-d087-4172-8f82-cd6aea923ec6", "response_mode": "jwt", "sid": "6e5154a5-92c2-4d0d-a48e-c335580dfe3f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e16b14e0-5d53-4381-95c4-b68242977c9e", "old_session_id": "5c8c4e57-2999-4938-97d3-580db6736607" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:39" }, { "isJwt": false, "opbrowserState": "a434edb0-93cc-40ce-a2c9-d308a53c3b75", "deletable": true, "dn": "jansId=4b8daf0c-f909-40ea-8a68-6d35f8688821,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:38", "creationDate": "2022-11-24T09:24:38", "ttl": 0, "sessionState": "35a7201e092ebc0fe5f5e1ac646cd3bf6ba7352a1b56468bd1c6f1eb82dc4755.18222f4c-a354-41a2-a88b-f99819c0e933", "lastUsedAt": "2022-11-24T09:24:39", "permissionGrantedMap": { "permissionGranted": { "ca92632c-288a-4062-9478-a92bd92aa9dc": true } }, "outsideSid": "ac0a8d23-6779-4672-9fea-b05dae66a986", "id": "4b8daf0c-f909-40ea-8a68-6d35f8688821", "state": "authenticated", "sessionAttributes": { "opbs": "a434edb0-93cc-40ce-a2c9-d308a53c3b75", "response_type": "token id_token", "session_id": "4b8daf0c-f909-40ea-8a68-6d35f8688821", "nonce": "bb98c0fd-8f31-4afc-b932-c576fdbd2d98", "client_id": "ca92632c-288a-4062-9478-a92bd92aa9dc", "response_mode": "jwt", "sid": "ac0a8d23-6779-4672-9fea-b05dae66a986", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "de9fe026-cb0e-4bcc-bc17-35c62bb65f65", "old_session_id": "64e29a63-2528-437c-a454-0c04af52800b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:38" }, { "isJwt": false, "opbrowserState": "9c724b32-c68d-4e55-a05f-ca9c33f9c0f7", "deletable": true, "dn": "jansId=1d03d855-a142-4052-a8e5-b5d58c6d701b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:38", "creationDate": "2022-11-24T09:24:38", "ttl": 0, "sessionState": "5229a312aac024b52417ebdf4492dec24049c6e1d5500d50256617c5978093a3.3a2f1beb-18e0-4c00-bf25-ae318e751db0", "lastUsedAt": "2022-11-24T09:24:39", "permissionGrantedMap": { "permissionGranted": { "edc1e63d-7840-48ee-9abd-123fd10c0603": true } }, "outsideSid": "53c601e9-636d-448c-a5cb-d62d9a361776", "id": "1d03d855-a142-4052-a8e5-b5d58c6d701b", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJlOGVlOWM2ZC03MDUxLTRmZmUtYTYwZi05NTc1OGRjNmViOTUiLAogICJub25jZSIgOiAiMmJlMWJjNGEtZjdhYy00NWU1LWJlNWItZGUwNTg1YzZkNWZkIiwKICAiY2xpZW50X2lkIiA6ICJlZGMxZTYzZC03ODQwLTQ4ZWUtOWFiZC0xMjNmZDEwYzA2MDMiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.evF3QccT9kL1he07mVJRr6tq_oS64D5irhyeIDOZdDRIwJZCaTawxPDKcbnsIDo0_xMKz1Zbdapc9_Mzo-YGoc7PPSJdq9SY42AsmwB_arAV__HbTVFM7K-bre2d8wFCC4YGl7xH_R-iVc9b83503cj7fpUPs2qgzitqRhERt_BRVn-yTD84nxPHIf7e4Gvn4iIQQxuEZiJeGNHSvCVSnjus5nwiBskUjpmhd0L5dFbxaJS5YvXjnu9987WzTPoaDj1snJJFoqQcaZCbIXZi691y9r9czOYEXwi1HUQF3JSIJSwiYMiTnziBeyUkTi9h-aNw778VmHm_cuh45_wDkw", "opbs": "9c724b32-c68d-4e55-a05f-ca9c33f9c0f7", "response_type": "code token", "session_id": "1d03d855-a142-4052-a8e5-b5d58c6d701b", "nonce": "2be1bc4a-f7ac-45e5-be5b-de0585c6d5fd", "client_id": "edc1e63d-7840-48ee-9abd-123fd10c0603", "response_mode": "jwt", "sid": "53c601e9-636d-448c-a5cb-d62d9a361776", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e8ee9c6d-7051-4ffe-a60f-95758dc6eb95", "old_session_id": "2e75cd8a-41ea-4b2a-99ba-8c3a56befe22" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:38" }, { "isJwt": false, "opbrowserState": "f6cf94ff-92b0-4add-af10-9bc27c163b7c", "deletable": true, "dn": "jansId=1d89910d-f5d2-46a6-8dac-dd709d8ee7b8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:38", "creationDate": "2022-11-24T09:24:37", "ttl": 0, "sessionState": "6a534583acb2169843159b946f4542775416dfb06449b26b0865e768ba452668.5cace4cc-9979-4d52-8517-229736e6eb36", "lastUsedAt": "2022-11-24T09:24:39", "permissionGrantedMap": { "permissionGranted": { "189234d4-9ef1-439a-9bff-5336d8180e60": true } }, "outsideSid": "e92c63a4-923e-4eb0-a379-0b3ed1b467b0", "id": "1d89910d-f5d2-46a6-8dac-dd709d8ee7b8", "state": "authenticated", "sessionAttributes": { "opbs": "f6cf94ff-92b0-4add-af10-9bc27c163b7c", "response_type": "token", "session_id": "1d89910d-f5d2-46a6-8dac-dd709d8ee7b8", "nonce": "c00f3d83-e2cc-423c-b3fe-d1fb59b53371", "client_id": "189234d4-9ef1-439a-9bff-5336d8180e60", "response_mode": "jwt", "sid": "e92c63a4-923e-4eb0-a379-0b3ed1b467b0", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "84ca6789-c3b7-4b67-9ed3-5b90665cc053", "old_session_id": "749e7aff-274f-4522-823c-ede530fc7556" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:37" }, { "isJwt": false, "opbrowserState": "b361fa98-21e2-477d-8b98-a81ac635f282", "deletable": true, "dn": "jansId=108b43f9-260f-4c44-aab0-c0790f1d79d1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:37", "creationDate": "2022-11-24T09:24:36", "ttl": 0, "sessionState": "6d7c2117a9684992a33b078f7c7287dd7f553d222b9855df576b422e457e5739.d568952f-a4ea-48f4-9169-59a27e670c21", "lastUsedAt": "2022-11-24T09:24:37", "permissionGrantedMap": { "permissionGranted": { "ba9b906d-96a1-4af3-ae9e-0fea05bf6f53": true } }, "outsideSid": "3afcd2be-9595-4bca-bab9-1d9080f85f9f", "id": "108b43f9-260f-4c44-aab0-c0790f1d79d1", "state": "authenticated", "sessionAttributes": { "opbs": "b361fa98-21e2-477d-8b98-a81ac635f282", "response_type": "token", "session_id": "108b43f9-260f-4c44-aab0-c0790f1d79d1", "nonce": "2430cdcf-b448-4266-867f-827569aeee57", "client_id": "ba9b906d-96a1-4af3-ae9e-0fea05bf6f53", "response_mode": "jwt", "sid": "3afcd2be-9595-4bca-bab9-1d9080f85f9f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "42ee5d8b-1ce6-460f-926c-51b862173cd4", "old_session_id": "9c41078f-a7d7-4e39-8259-10f96e753bc8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:36" }, { "isJwt": false, "opbrowserState": "682688b8-58ac-44ad-a589-816e52fdb90f", "deletable": true, "dn": "jansId=69503aa9-13e7-45e6-8294-29ba6b294137,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:35", "creationDate": "2022-11-24T09:24:35", "ttl": 0, "sessionState": "0afb6891a3563723fc957d572bc3779f0748efa006d7142d02a74ff606fcc12e.60d7328c-7a4a-4608-bbbf-96d89b60772b", "lastUsedAt": "2022-11-24T09:24:36", "permissionGrantedMap": { "permissionGranted": { "05113d21-e104-4456-a254-0cc129ecc270": true } }, "outsideSid": "c708630f-46b0-46b0-81a6-7fa2b4adbe96", "id": "69503aa9-13e7-45e6-8294-29ba6b294137", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiM2ExYTU4NjEtOTE1MC00MTcwLTk2ZmEtNzc4Y2QyZjRhNDdiIiwKICAibm9uY2UiIDogIjZhZTcxOTBkLTFhOTMtNGNhNi1hNzAyLWUxY2U2NTBhYjZhOSIsCiAgImNsaWVudF9pZCIgOiAiMDUxMTNkMjEtZTEwNC00NDU2LWEyNTQtMGNjMTI5ZWNjMjcwIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiand0Igp9.AXTQabhlc0X9FnFs5SzviTNIdRNv_Lj84qC-UUNH0qPbK5w1kbYPn9cdNPAwkIjMrIF90vmAY30IUVf-52fOwjYKAP0SQbJ0zOij7K2DNlMJWco_dJ2VLSBHYFGVKzD1VDEX8HqSwNG8SMpHWlrw1M93rFWJliSURGAyth1CJpHdyGjg", "opbs": "682688b8-58ac-44ad-a589-816e52fdb90f", "response_type": "token id_token", "session_id": "69503aa9-13e7-45e6-8294-29ba6b294137", "nonce": "6ae7190d-1a93-4ca6-a702-e1ce650ab6a9", "client_id": "05113d21-e104-4456-a254-0cc129ecc270", "response_mode": "jwt", "sid": "c708630f-46b0-46b0-81a6-7fa2b4adbe96", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3a1a5861-9150-4170-96fa-778cd2f4a47b", "old_session_id": "0070b2ee-447e-4fbd-9c86-1ecef46f53bd" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:35" }, { "isJwt": false, "opbrowserState": "593a6f1c-5fcc-43c7-abda-2e31d61d7231", "deletable": true, "dn": "jansId=99fb2a54-20f0-4ab3-abe1-57a9632734d0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:34", "creationDate": "2022-11-24T09:24:34", "ttl": 0, "sessionState": "b899fd667b5f79aefdbe852a934bc8179b0c4f53d1cef05a1b4e3e8e06775c4e.387ec507-3f3f-45b5-a335-f5bf56285486", "lastUsedAt": "2022-11-24T09:24:35", "permissionGrantedMap": { "permissionGranted": { "1db2b865-1279-43fd-8dd2-ad6061adf3f3": true } }, "outsideSid": "e1dd97dd-e42e-4cfd-afd3-5e2574f9c255", "id": "99fb2a54-20f0-4ab3-abe1-57a9632734d0", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkEyNTZDQkMrSFM1MTIiLCJhbGciOiJSU0ExXzUifQ.dV9hRH9b8gr1u6hp-Iwn1qEHEpqPUtf6Z93AxrDVtuIVl7nte3IUg_kFUbCikyxNOKMHPaqXmoinxUiHbpeiqNQX37jSageepAp9XLhfRkF90A8-ibrihUf4kLKR3reK9CkwgVr8UoQ2fHmttIPPQb0Z5Cm0CGM0pHLMAHEPTnX_eo4jtZmB2J6VBl8lg08wC49aYvEcB5t1surzUgdH1i0mBm2znnp_6UznhKnR9W1kfzxyMKBfnN6kPRsBvID2ocXoJJhbq8JQmKcd1-aajjVPRrtjWhIIFMwA0J4VjDiQBs4VIQwGdYL4lotRqjMuk9-SDcxUsHEvPdfXyTewjA.EPX7MNBtIgpIxc5-iIqRaA.NwALORxxebspGzX6uIJCho4ZXAuWMSumllKK0xJEbI2HF2LEy9MeDPems1IHVGRJIYneq0gxAGFt2WE9SS8Nf9iOX3j3ZQ6d2jF2NjEHu7jDkZI5pVkz58g1l5dmk9WgAkbAhWhi8nutTw-EduHGZEQ891bwfHxFIsEkH2jEfwRIAYhOCjUvPTHQ3-iYU2Hb8RbcvBJlwqL6NJRVYgLboEXX6GTpSM8TBb6Q5_TAnyOy9K81ZWZWWqlj1mUyapy1tRFyjJR3ar-rl97nzeARj7yr03MRMIvS96XVye_C3JTXWb-LRzPt2mMFixmnwFp1i4FvyBIecZYNd__cLFPRWRT7OT_SxuxYwp3nu6sjNPxDM1wD2y1_dbILvw_QUNsWnsr5TVNZCoJiZCBNFyOAEgGwGsZ48nv9MS7IaodJSY-9zbKSePWPSkZIodzCfx7J8g0lMW9wN6wLzG6rMCd5gd-2N9mwPiJd-p6cF12cgqvr72xDXlaKLYMpkqZj28zB6Q1v58it9HAnxHwXBX9JtcGZc7U6i_BWJSVLbtAm3N0Y37T491wDgTZ8J20VfdL6gtwWerCw3NB8dpS_bu6iPz4drHgWRtU2sAC5EN----YSrcrXcyorPRAMLo9MIcCFO_rrMZY82YfNsZnkFMWL93GMcvCnIQEKA68LTTiod8vinbPGwhkNlAEUAQ1g0V-AryguuExLk2dndkCUOR-8PX-ibJyLvcyam0bSW0-4JlUFix4oz7yd2pNxWNINiwLBhpoF_4iptQEWekoa0_gU2sjo5HT4NYjNgKw9ONF_8YVrMgU-FpQAJ64Xw7rCuJbX9rhCZHrCRZryxIiRvsKM4m6Y1E8OM7NTlvibfXHxsKFSROb2PAAL8VzC4ffPB5kyfXPoayx4au2WHEgi5uKSaw.S-vZRlVcmkOIvs7YOM1ldsDWXYxp9ThKPTOesFQ0ajgvqza6xMsgev6T4a6tIgyXA7T7Kbpt1LXeTmEVYIMW9g", "opbs": "593a6f1c-5fcc-43c7-abda-2e31d61d7231", "response_type": "token id_token", "session_id": "99fb2a54-20f0-4ab3-abe1-57a9632734d0", "nonce": "91751a0b-d61e-4c86-9316-c651bd74c50f", "client_id": "1db2b865-1279-43fd-8dd2-ad6061adf3f3", "response_mode": "jwt", "sid": "e1dd97dd-e42e-4cfd-afd3-5e2574f9c255", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2fe1957d-827f-42ac-a0be-fa679c2b6b4f", "old_session_id": "8e7cc385-2bc5-4ae1-a661-f818a23d5dfd" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:34" }, { "isJwt": false, "opbrowserState": "43e9bb4a-ddec-4fab-a9e6-4b3040ae6f45", "deletable": true, "dn": "jansId=16f61970-1d28-418e-a6f9-cc750a55f3f3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:33", "creationDate": "2022-11-24T09:24:33", "ttl": 0, "sessionState": "ec2eb8ade01c69437762b2ea958467de55b684b5d18cc1aaa2ad8d9616a9b8cb.08dcd3d3-6c2e-4505-aca4-fc1ef5a6084d", "lastUsedAt": "2022-11-24T09:24:34", "permissionGrantedMap": { "permissionGranted": { "1e827dd1-6ca4-4051-92a3-b5940680a67e": true } }, "outsideSid": "c8758d32-7a44-4074-b835-12417cab882e", "id": "16f61970-1d28-418e-a6f9-cc750a55f3f3", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiMTdmODY5MTYtZjRhOC00NzhiLWI4OTgtZGYxOWVhNmU1Mzk1IiwKICAibm9uY2UiIDogIjdiOTdhODhlLTViMTctNDcyZC04ODY4LWI2NjdiODc4NTgxOCIsCiAgImNsaWVudF9pZCIgOiAiMWU4MjdkZDEtNmNhNC00MDUxLTkyYTMtYjU5NDA2ODBhNjdlIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiand0Igp9.OMnhJWeBStu9WoUVy5_dEXtbhZkEDBWnN5Skal9aJLR2FcGX4mOk9vCovIZ1SgsndRbyZF6T3WPYMmvLvqtvWboZbM6rEh007HYZR39EWcOiJNKuoDisOb-SoR6WZoS3", "opbs": "43e9bb4a-ddec-4fab-a9e6-4b3040ae6f45", "response_type": "token id_token", "session_id": "16f61970-1d28-418e-a6f9-cc750a55f3f3", "nonce": "7b97a88e-5b17-472d-8868-b667b8785818", "client_id": "1e827dd1-6ca4-4051-92a3-b5940680a67e", "response_mode": "jwt", "sid": "c8758d32-7a44-4074-b835-12417cab882e", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "17f86916-f4a8-478b-b898-df19ea6e5395", "old_session_id": "b31556fd-1f12-4bcd-820d-33222040c7af" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:33" }, { "isJwt": false, "opbrowserState": "06463f06-df63-4371-8271-6a913798928e", "deletable": true, "dn": "jansId=28273c88-d833-4280-ade3-09c4123275cd,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:33", "creationDate": "2022-11-24T09:24:32", "ttl": 0, "sessionState": "e95482210ddf57e7a79e5b9d123a09a86f83b91736c0b538821e2c5f45e9aaf3.3e2e2d0f-92e1-42e4-a9ae-cda39ab7f505", "lastUsedAt": "2022-11-24T09:24:33", "permissionGrantedMap": { "permissionGranted": { "a7e248b8-598f-46cd-822c-22a608174f0c": true } }, "outsideSid": "1e75210c-5c4d-400f-91d5-7d207b7fe9a7", "id": "28273c88-d833-4280-ade3-09c4123275cd", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkEyNTZDQkMrSFM1MTIiLCJhbGciOiJSU0ExXzUifQ.Y2sfK-Qjzva2GxEQ5RUU0Tfj__5BGJprfpY94gfWZwzWLb7EFgCiSQOVjNI3phd28WHmtpHblYJXZscWwI5xoqhELkWY8J_FzSMtXVz7_5SWxFVuY8baV_0puSG6_X3WjSH6aQmT5hD4SjF-c8uAOkDcXF-lNiUp6S0vQnZgvUrlxF48PXu2TEq8B7A3syke7waQE0iwlnrOJEGHq8m_DiqlsypBtvKwFyh6E5OKtTEcexG7VA8rHgeihF2bCumo2Hc5stXFyfav76HpAg5HCPk9iO75zY2izdhenUyYo8URABZ93Spsdm-JEOIU-fhH-4w03zQ5vcI7_yXICSwnYA.clwJF1VCB1Of4PVKqvrQ5A.4o8cZPORI8BqpGnFpdXKoiNHJQY8OntOxCv5On5h5-2xvyA_dQzyWbONyrEUddrGuTYy2_ZKm2LnCJHR3SR8n8HZdsanuhcoNdQYKXKoAnluT8NP6dBkH9tOGRgXNinLZoSJTkOgeAXHFxL9RlSi9pRQdMjyNRnMAFAiq0YLPqZex8r0_vLxEfbvrkdnG-GhxMnfAe_pZ0zkNY8d-Y-5-rpjN6uo6MA0eeSUY6xfoh-ATAMT0qEfvKKei-E_T16dNygXf_aEDWLmKs1l48LjpfRWKa7WZE3CK-hepaMrcSyTA9f4uDnUajjtu18itMsIARlNFJXWi8AYSo5TNa7WFIfCxUppKqahBtCd_dNAQpyDeuSfaVHuMXr6pnX8bUE4zm7HEQSzUaMdUVH2zGYNPxX5MHh0r8WZbLZ7cXGbTsTOCCATwhWY3A0B31YZ1NzECfudz_0ad6mRvxiJOtWwBofEVUtNuZRRMs_FUNGQSr0WXfoYuCfT-WbDkKMRJswfg72uwZUGNuTpToZk_syRjdt6-QPdVgrs5fgqpyKOsnj5_oPgaBuMVLiDy7K-k0SP337kDHHwIi67KCNwNWB_EaXBLd0jLT6RVUo81r1UWdRFF7muYQEYxSJj8-c_epyHE4Llf_-pxoNihdK6OzOiaDMZIHu9OaiMpBi6N-mFBlWmlndlMuV6hR-R1P4svoRwmVc8glRkiIYlMXgYde1uaMXwSPeaJJmOEZJawbQqtZILAR_-PVFocXsKBcQl6zrOt1er7-d5jqRkLBFnAJxMR9W43CZO0bxzcG_Qhkk3WS6pkNOuVIr6Z0LQm756UZ9AXh1gPdvHiqkDgmEv_hFPnkGLZ0d_m7M6RZ83mqC5YqUj328IMpU2fBEASz0i9-Zk.O3kGwzfXVwDDz_jr4VjFn-0mSZaSdgickzRZesmC-Z5TE_1g1lBlXYCgU1aiBn1ddyWohZ9TZILJ26x-N0G0FQ", "opbs": "06463f06-df63-4371-8271-6a913798928e", "response_type": "token", "session_id": "28273c88-d833-4280-ade3-09c4123275cd", "nonce": "7989b6c2-a353-4849-a9c5-b0166ca169ec", "client_id": "a7e248b8-598f-46cd-822c-22a608174f0c", "response_mode": "jwt", "sid": "1e75210c-5c4d-400f-91d5-7d207b7fe9a7", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "05872f15-1cd7-4268-ad9a-07e384de3bba", "old_session_id": "783f2a5b-786e-4016-ba24-eddbaebc701b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:32" }, { "isJwt": false, "opbrowserState": "b636706b-2b4d-4208-b65b-b71bc3a3e3a2", "deletable": true, "dn": "jansId=a581b5e7-fc60-4891-89b3-0212e7a914fd,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:32", "creationDate": "2022-11-24T09:24:32", "ttl": 0, "sessionState": "a8aab90a8aa35bcdae625a2bfe0c99893d8f93f398ee7f9ce6a784cb76e89e24.1ff6a3b2-4e87-4e95-bbcc-db09256ad54e", "lastUsedAt": "2022-11-24T09:24:33", "permissionGrantedMap": { "permissionGranted": { "bfd81267-3100-417d-a4ec-c40706c11907": true } }, "outsideSid": "4a097b41-30ae-4abc-acfb-580e1cc5e5f3", "id": "a581b5e7-fc60-4891-89b3-0212e7a914fd", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.jdTpzIgf8boAOnzo6n9gJ46Tflw33SYWhhVpXVx88UzapZ8-rh4sTHHXVlHn2Sdd-HI9nSNSrJFaP3dZbWNCyjlBh7PqV47LL5sTuGTM4BjQtZGBk60N2HMbawlA6nyv_4Q-sr-CO72j6E-1rmU1JpmXT-3LSTmvTXD7TlzJONSSFvzwWM0_xjwcYnB-59Y0tO0D08Ntm8mXPqEpEa3fYa0pXJy1Py5exQRmAawJ41V1YfJmpufQ7PbnCZ9FxiAgzhBh8HtTZ_EXldrP1rpQLsWQ_tCq3z_Mh1916RoPL8W-hyUSDQc_ZKQgggiIdjJCCb8c0CnEmYf9D4v5vR0eAw.0SgJ2rg_bhmbjWPs0Z7GxQ.7uqAuEdA1DfnIw-JS1BdiYD6A-Vkc9FWwVadTQfjDHEtGBeXgL90ySZc9Z4okW8uHFfguh0fWfu84ObjinIPS7dSi5N1e0p8TqjuMQxRXflGmNE85yDT8vmBLrKvbS3yjpp4R_6YY40goCC6ospNlpdiT-5HqKMyYz37bofuMLj6QfiCkQYgbsfR2EGFkdJUmaGXbO1bVX4wTYoDHtiI1pHGp7VpraB8Fu925G9BxadNI6sJ3qdMDGSxOwUgpFKhb7XweljwtMHu_9ql-g75rM_eBEZxgNzfhDClAXjKqTvsu4urWj15sVGfC_FE8Q2YPHW_DyQS7L4sd62ec08g4V9-8Ja9hmXSFf8ebf5WybVkejuJKG8rgJ0GR4FjR241IMyYoM67nMu3QbNcUie6y2WbfmBtdliPOVIKSOiU_zC-o7Sgru2VNx6GHPAL4vswoTIKcoM1Y7qS-wn6dQ670qZsa5eObTME_f5sVjPrHdtENYo4yP0GjQcZAfaNQjGqcXoAzmXbWRfeJ3CgSbTAwB8CG5QPLs-ByPmjZDbsPShASJqf0BsfqoDu_gh1rC_x0hGAWQF-VW3oBcvPH8fXdmBwhX6amMc5J0Lzxyd20mRwKL1a03l64iy4G-FDk-x4hsUTyCT2FwGGpS_yd8fK-jbL1qHqOQb_Grb0kaFPwWXWImeQpfigntZSCVp9SQAfRM4bHWQxz3m4F1jylOHadqOghL16Tfyy4sLnyclO4SYPEbkrx7Vv3Z5rH1KKWRFwHTurCe_prWzJE_Hm0wVIe2miUyIlbbAJsJ-v2X7IeIZV_Hpe6lJ4u1FxvczpT8hPECIWKamGQp3lFV89J1GIRXLqdpqNxdc6_eyuKbnwOYbkRZh4A8iB3bf29A5ng6hTegr9Z5nWAQXzb9uNAXc2YQ.r-3IUESNQDVNMMkUHtuqh5AWVp5j_02ese5ThyeNHQ8", "opbs": "b636706b-2b4d-4208-b65b-b71bc3a3e3a2", "response_type": "token id_token", "session_id": "a581b5e7-fc60-4891-89b3-0212e7a914fd", "nonce": "0ef4ee07-f4fa-4998-9ef8-d68eb1eaf1c2", "client_id": "bfd81267-3100-417d-a4ec-c40706c11907", "response_mode": "jwt", "sid": "4a097b41-30ae-4abc-acfb-580e1cc5e5f3", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5a221538-4f70-47d9-a798-8d42dd2903e9", "old_session_id": "a1afa723-e390-4d3f-b652-39880ec0f570" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:32" }, { "isJwt": false, "opbrowserState": "abf2c55e-3f07-4579-8747-448e2cf075fd", "deletable": true, "dn": "jansId=7f1438ae-6555-40f5-81c4-4533efee8251,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:31", "creationDate": "2022-11-24T09:24:31", "ttl": 0, "sessionState": "2edfd0bd3d7d080605806b0ab14434c726813dfe63d967dd8c1aa3e22d4d92a3.f036de12-4288-4052-926d-0f0128139263", "lastUsedAt": "2022-11-24T09:24:32", "permissionGrantedMap": { "permissionGranted": { "3401732e-a203-4e44-b5c9-8870c725ec10": true } }, "outsideSid": "2ad0e2e6-d31b-40b4-8653-5ab69c988494", "id": "7f1438ae-6555-40f5-81c4-4533efee8251", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI5YzhiMTNlNC1jNWE5LTQxZGUtOTQ2Ny0yMTEwNmQzNWQ0MWQiLAogICJub25jZSIgOiAiOGMzZDQ5NzctMzA3MS00ZWNlLWE1ZjEtMzM4ZWE0MGNkY2RkIiwKICAiY2xpZW50X2lkIiA6ICIzNDAxNzMyZS1hMjAzLTRlNDQtYjVjOS04ODcwYzcyNWVjMTAiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.eVniP9rJjqKGUX-kvyccMSXw08u_dmLcrMTbDOmFJgGk6cft7uZHq13QMT66Bs3vAJ3RjHy3mp_NUuL_p-QLVbVUIn9w_HUjQUZ4MsGuDI3nsrzYJ-I5N37Z98CjkLTqcBTO3oZVd1dnGXzKOvPQWVxAeBLWNBlNpJrcketPT_xFx4QuLxcucthFTGL7YCbRFzQDMicpCGD50Ouo-8eEaNYoFNofLEKazOc1SECFN0KhoqbbxMsVddek4Wc2vVAkeSQ1B1HYi6suGs-CeJkFg-oQkUCxPksnzvqHh63aaaxRcsLZzWkhbCWAXefic1X1CQJObOHG9uws81bqOacouA", "opbs": "abf2c55e-3f07-4579-8747-448e2cf075fd", "response_type": "code token", "session_id": "7f1438ae-6555-40f5-81c4-4533efee8251", "nonce": "8c3d4977-3071-4ece-a5f1-338ea40cdcdd", "client_id": "3401732e-a203-4e44-b5c9-8870c725ec10", "response_mode": "jwt", "sid": "2ad0e2e6-d31b-40b4-8653-5ab69c988494", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9c8b13e4-c5a9-41de-9467-21106d35d41d", "old_session_id": "88c826a5-afec-42bb-9440-4ec651fbfc9d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:31" }, { "isJwt": false, "opbrowserState": "30df29d3-20c7-4492-8dc8-059584061443", "deletable": true, "dn": "jansId=1a3f8678-1846-4119-9457-2f24cda4c301,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:31", "creationDate": "2022-11-24T09:24:30", "ttl": 0, "sessionState": "0017e34b38e6f279e2e7bad9757841400a6bf4a5851a454836c1602356981968.65ded20f-2279-4c89-bd63-b501680afb4f", "lastUsedAt": "2022-11-24T09:24:31", "permissionGrantedMap": { "permissionGranted": { "601b1874-ca8c-4e6b-9820-03a7b47ddb06": true } }, "outsideSid": "941115c0-8ff3-4efc-9934-0484e8e6bb14", "id": "1a3f8678-1846-4119-9457-2f24cda4c301", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.LIntLR0npihjGV3fNruJoTYrjC93B4g_wdXn9p3rJze1p2bZ2E7iC9f6O_xsuvMqWnK44NPiRPBTlaf9m074Y9_ZhnFvpINJ1zrBGwGy2H-dFVv2Om6GxmRR8T4qaoJkYtioAVHlPjHvhakitFD9ammilnOvxrbXlkyQvDRuD_p7uebmF7c-layu6qqSRpC7DrUbsieHXExwifwVHvXHbIuuqhyA7Nv5tadwH33ru9wyAc_P26DLPsmjI-K-bMaFZgo7kWXckajn9mu_HZQm9hC9L36sCy2TlDP8iajZN8bz4LAMl_aOedRlwx0UZdDzGVJuYXZ7DFvUw8kd8tXDmw.1SQdLVZpTBAArvGTsXCN4g.YjPEIJftUzfA6UQ-174eU-YatPTdrzk0taRKggehX7LwS3KyXuZ39-AvEQMV4o0j0EbNW12VpMPbHuAz1brPGsHeumGE0GolMpUMYcU2wNdjyCullTqEx0fcgv8Ewd44_GUCXA4kXY6IRoHCy6pI-4VwELSti21HtHu-Hyk-bB9I2DD1kCGYbX9Sr1mY4TrZi5JAcoBobPGLKrPXLYbbLugsM3hVePsbRilpTg60Z_xMpsUYPR_Jg-EywWvh3vO8gkxOXZ0gUd4wTzGo9kDKVMtj6Qwq_MJ-WTo7TT_3YynCHnYif5p3pTgzjkEO2bRJ_AA3-mYZsOPpnRUecO8X96Z2c23m7A3tF43I03vsTnfqDjYjYJAPiaH2fHmc5kZBPeAX4VWXa10wefePg5HenD--uS1FWrS2T-VZ9-G1NX4P5Ab12amXNuOYppASVZcnSiCdk6uRbDgpbbkIczKFPG2CMzxKGs6r-UTpkBj-3CU4RKPiv3RRPYi6Q15NZpW2YEEd9h_yz8_Kz2h3znFejOiSf_dzNhvgElQcdkKzGTS1_zs6lZ4Yi1S0AHmfGZdU5485ioUXxegeT9bgZr6uN_WyXpQv8r_coe9keDuWx4JCz3cB4uEKhowVq576cAcmPnwDD5rhRrFujGiH-iqQ8rHF3V9pp_hq8utqMSXAw04itX9Sbtvk9W-SLLLKNF21gTD_GCqcFjFCdLK-jbLzIfirMCF7Xjh8qZIcVFEEzJn4kBdJHZc64jlg6Vim2o0EI2B-VJweN6SiUhnYLq1GelyXEYhYUauIr434o37OpZVLLAaw1_6UXMyDJAfQNc-cxQC10pfhaviBGT9NhOxCyFmymZYnnkN8pVOvj91qCu7UVHPga6KQgQnpQ-NXgFS_.7KO0KoAVWH-gW_iSHI2FU6lrE_TBoRmMFzyjdcZ1qzQ", "opbs": "30df29d3-20c7-4492-8dc8-059584061443", "response_type": "token", "session_id": "1a3f8678-1846-4119-9457-2f24cda4c301", "nonce": "a3f70d51-3318-43ba-9e57-b5f4543b1a86", "client_id": "601b1874-ca8c-4e6b-9820-03a7b47ddb06", "response_mode": "jwt", "sid": "941115c0-8ff3-4efc-9934-0484e8e6bb14", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9def17d6-ef79-46a3-96d5-7e681177cfe9", "old_session_id": "3d9db106-c02c-4856-a9ae-1859d462a815" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:30" }, { "isJwt": false, "opbrowserState": "a3799c74-e41e-4b18-96ed-d09786619086", "deletable": true, "dn": "jansId=7ab5bbee-a442-4d17-bfa9-097acab7cdaa,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:31", "creationDate": "2022-11-24T09:24:30", "ttl": 0, "sessionState": "a1bcf1d28c2e80e29967f39fb5d63ad0fcdfaab672ea07077cdab5dde62ade35.ba0b2376-e6e5-4bbd-9aff-f812cfbff3b1", "lastUsedAt": "2022-11-24T09:24:31", "permissionGrantedMap": { "permissionGranted": { "b544dc87-d276-43f6-9b8e-3eaf9a710aa8": true } }, "outsideSid": "1e4de8c7-c19d-4313-8a71-d140fc9ffafa", "id": "7ab5bbee-a442-4d17-bfa9-097acab7cdaa", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiODNmYjFiMWMtNjI2MS00OTNiLWI1YjYtZmQ3MTRhOGVhY2JiIiwKICAibm9uY2UiIDogIjRjZjUzODQzLTc3NzItNDc5Yi1iMzhiLWZkNGQ1OTFkMmQ2YSIsCiAgImNsaWVudF9pZCIgOiAiYjU0NGRjODctZDI3Ni00M2Y2LTliOGUtM2VhZjlhNzEwYWE4IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiand0Igp9.F6-BvRwL8JASFdfpWXMIeUaHLxJJ_P9WfF7J-JsrNMU6RUz8betGa229u0zuvb6yLIJxuEJXPPzmpbh0mEi5_w", "opbs": "a3799c74-e41e-4b18-96ed-d09786619086", "response_type": "token id_token", "session_id": "7ab5bbee-a442-4d17-bfa9-097acab7cdaa", "nonce": "4cf53843-7772-479b-b38b-fd4d591d2d6a", "client_id": "b544dc87-d276-43f6-9b8e-3eaf9a710aa8", "response_mode": "jwt", "sid": "1e4de8c7-c19d-4313-8a71-d140fc9ffafa", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "83fb1b1c-6261-493b-b5b6-fd714a8eacbb", "old_session_id": "e799c503-88e4-4a4a-b517-71f5f1bdc619" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:30" }, { "isJwt": false, "opbrowserState": "1480499b-31a2-4f47-99cc-467dd6f0303c", "deletable": true, "dn": "jansId=888015ec-23bc-46a0-90ea-8bef614d64fa,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:30", "creationDate": "2022-11-24T09:24:29", "ttl": 0, "sessionState": "3ba03ca271a9967f6d5c8733a125c19592c2fc3367894645d4b82e2e3bba20b4.0794b8f6-c89a-46e3-a46a-3b13fca29c63", "lastUsedAt": "2022-11-24T09:24:31", "permissionGrantedMap": { "permissionGranted": { "8428d699-73c7-4929-9951-f0575b99808c": true } }, "outsideSid": "23022d60-cfd9-496f-84a6-720c4e07a6fd", "id": "888015ec-23bc-46a0-90ea-8bef614d64fa", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.z25ZDeqH7JozRD2OXF4Y1f-uxUabGiHNGT0EEHYd8GEXApeXfRJTBw.pL3_rY48v7QZXCCp.rB1PJJ5Hbn3GQDRvlfv93u6rIvDcoGaFU7BuaNWBDCUzGLRrLQ503AZS5sniHZYYnejE5wFUIafqQXLb1RPNoho4KqFrWFQiwpdL1dP7HIDfvgdpRPJRtVxBcf0eGQOawijLzJNbQFpNzYhixC-xGOOpSA9mcyfoalkGyDxuDniDCAjrW_lg_qeBVKQtThyJRGQ2o7liQZFSMcnYHv_v2TzVpd8anicKL884vmK5PkGy0JUewyXVJuQBrpJmitqsdXOb8toGI7S7-N8XjI3Hx-iQ7SLCOEfFdT41ehVw20rAf0oG3Rci69qvf2U8QY9K9yCaB4DaLBv1byE-TobiAXjdsmLIAuPTT8JRYF2e_bTUQyjEX9RVsfA5L8G1gsRePLPf6he3OGNC38QZniijkNZzi2Bp9iFQZWwM2nhxqi53tISB8QzkK9XCeOYp5umgz-qPsQCZHH4Z9FOvvKAaEAL-qIUr9rvjGCHWRCMWrsXvmJ-3NswFBfIH1n4hSbcRVhy1qBvMs-2nUk93FHlvaPkgMS1_LrfAsuBYFKnPCLtTDjvzQpBl5XOtFH7cdqi9bpgsfBJ95x0z0eK1k6Fvew6kf961ubqkTLSqSTAQx3fGq9Rl4MDfui07B7A9pmljIOgP16zIeO3KW2YYe4AUmvH2iJG-sxDM30VHjBBUYhjulshTfh36CNLG1-h2JZBhbl7XFaSwMuGalYTVAsmBIURorFufs6kuT_DTtb0pJVY7haQG7PLm9c2zxF1JOn1NpUi5q8KjPSP2L_jEIBA6GKTFUgbBoCdMiRHiuszAvgQJiRIwR97CPKWokBc0aNqd64aVOozO1dDXngR7emQ0c1QV-Hx35qztYxRgl--piizVte7XZqiTMa4f0r2aKR35CpRrBDELgg.W5cwBbQxEA4E013j3UyKZw", "opbs": "1480499b-31a2-4f47-99cc-467dd6f0303c", "response_type": "token id_token", "session_id": "888015ec-23bc-46a0-90ea-8bef614d64fa", "nonce": "f683df9e-5a10-4d76-a4c3-af61c6fd1343", "client_id": "8428d699-73c7-4929-9951-f0575b99808c", "response_mode": "jwt", "sid": "23022d60-cfd9-496f-84a6-720c4e07a6fd", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9e964dfc-27f1-48b1-88f1-f8a99ec10c3a", "old_session_id": "cfca0b07-8299-4202-a6c9-297f9dde5606" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:29" }, { "isJwt": false, "opbrowserState": "8d5b89ad-6cf0-4c83-8dba-51fabaac3a04", "deletable": true, "dn": "jansId=2526669c-9601-42d1-9cd2-95f6d3d7ad3e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:29", "creationDate": "2022-11-24T09:24:28", "ttl": 0, "sessionState": "191056b381d799f860f65d43516fda8bbb9c7a5696cce8306c6c869c289a3a2d.9205a585-eadf-4cdc-ac78-52ba3b15d89e", "lastUsedAt": "2022-11-24T09:24:30", "permissionGrantedMap": { "permissionGranted": { "1ccd5c90-91ff-46cb-baee-42b0f80b8764": true } }, "outsideSid": "a10222af-2f3c-4abb-9cf7-5836aafa13bb", "id": "2526669c-9601-42d1-9cd2-95f6d3d7ad3e", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJlMWY3M2FiMS03Yjg0LTRlNzMtOWQzMS1iZjI1MjRhMTU4M2IiLAogICJub25jZSIgOiAiMDRiNTJjM2ItYmVlOS00NWY5LWI0YzktMTRhODhiODExZWUyIiwKICAiY2xpZW50X2lkIiA6ICIxY2NkNWM5MC05MWZmLTQ2Y2ItYmFlZS00MmIwZjgwYjg3NjQiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.AQ4JkuJzPGrzap_IljLuame6dJRif6xolr1x_t-ZgGtI5xtlDWK_aergMUAtD8SZLRlX2O5zIM-uZ6wmAGbNNVJFAehg1hLBzYSRjalp_klLNtk5cYaqzPD5smcrtSxtllAS4W9v0dORJRDPttxMvXdEMvVwF01cDIpmPm8rG6c5Vb1Q", "opbs": "8d5b89ad-6cf0-4c83-8dba-51fabaac3a04", "response_type": "code token", "session_id": "2526669c-9601-42d1-9cd2-95f6d3d7ad3e", "nonce": "04b52c3b-bee9-45f9-b4c9-14a88b811ee2", "client_id": "1ccd5c90-91ff-46cb-baee-42b0f80b8764", "response_mode": "jwt", "sid": "a10222af-2f3c-4abb-9cf7-5836aafa13bb", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e1f73ab1-7b84-4e73-9d31-bf2524a1583b", "old_session_id": "2165098d-c72e-480b-8f26-6d47e372aeb1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:28" }, { "isJwt": false, "opbrowserState": "f6d2e0ea-16bb-4329-b46e-6ce8808f9d64", "deletable": true, "dn": "jansId=9b426db6-8acb-4e3d-b724-424e36a82190,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:28", "creationDate": "2022-11-24T09:24:28", "ttl": 0, "sessionState": "308f0f0dbbf5838f2501727895d2af31a107662a762c0ee95bf419e76729df28.233319ac-6a48-4c32-8edd-c035fa403914", "lastUsedAt": "2022-11-24T09:24:29", "permissionGrantedMap": { "permissionGranted": { "92ce1d99-7818-4a00-9ff4-541d654ed5c6": true } }, "outsideSid": "c343debb-e7f2-466d-b12c-6725ca4e5a91", "id": "9b426db6-8acb-4e3d-b724-424e36a82190", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.5I5vTpw0wJWRDJ4y-C3gH6NOwydcylYSg9PJr7h-o019SRs6JAaTCA.-U5yKsHozQKTFMGH.PN_JBIIYatDDSvrX8dHY4mSeHH_GWY_XwiHfz785qaTKzEGKXaBgOsmPfjJi3wVKiNyqgsdeddDsWbi4yHLNoltvLNdO1edRauiepAHJXG5nrwBn-_mueb6a4ibm9RQss-ebeA521WP0zsA7Wi1TFijbTW5RWmNa_rmVb-OPjCJJnaK3nUH_YKFkJAEOpXALzTJzzZB951SfAdmlPmLBb9C4XBsRrEUiE2_My4AtvznPq_2U075O6a8dIocGCJkHLT6zAJ5P2qE0YcGycJc1g3siW39Lb9mlrqB59t90EkLCwkPhiLtEQlm5P2SBqbV0qVs_sKhbyvFEgeguvO1zzQAwZ4V8oytbhxihSYreGA1TJ1h96fzE9ryfiZJi7UEVnubkbavz9LDMKXFZ7Znmonao3Tpl2R9i1C_NQJqcj8BeO_pLrbVGXiJ-rpXHZLQmq0PHzYUiafocVWCL2lOCwtDWLbOH5nKYQXiGiHKuwgr_jXplcqbQxBFIrUJY3uYaWTsYY_rA8Th0EMfC59FlqK-uG4B7jEyX0LNCsmLWen5fWTcvHRhTXlcTlUPajqf3TmQieRKvDnzBK8LeR_GFoSRR1COm42g98wowSYyLYL8bCp9vQh3lZAMKjOVbVc5PfetWjJc7j1lT1C3Cu5_zqWxERntdK3D8JZl0AxVA2jLaA1EnXcLd9nQ0nA7ypsN3SJvIDUxyenuYjuWQJYv5D053djP-uq5YXcy2X1CBg4LW_MoSvrOLzbBIj9PtTngESA1T5kJofKW6OxqLOrdL5qPpREbhzexIaDSKMstWww8jLa_BrJt7bJGNNHY1spFqt41QkM3LpCVW-JdMgawmhYn3La5wSgsYPTJFkPXG0E16SIaKvko.ifulsRCZpZ6znsus4jUB6Q", "opbs": "f6d2e0ea-16bb-4329-b46e-6ce8808f9d64", "response_type": "token", "session_id": "9b426db6-8acb-4e3d-b724-424e36a82190", "nonce": "5d5c40ea-12a6-4d58-b2f4-6b4e01caa2a9", "client_id": "92ce1d99-7818-4a00-9ff4-541d654ed5c6", "response_mode": "jwt", "sid": "c343debb-e7f2-466d-b12c-6725ca4e5a91", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4c43cb48-0f99-4c83-b231-dd900f890f80", "old_session_id": "69a1106c-b142-420f-969f-725a2be1a435" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:28" }, { "isJwt": false, "opbrowserState": "3e7742a8-3ff2-4238-8771-e0bed6b182c3", "deletable": true, "dn": "jansId=bf33259f-2a6d-4d44-b9c5-a2c54970b747,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:28", "creationDate": "2022-11-24T09:24:27", "ttl": 0, "sessionState": "51ae46f89f933a9ed99b4bd26832705ed16d2acc17ece83308bf735f3c610841.a5633229-dc97-4449-8b14-f0290815adaf", "lastUsedAt": "2022-11-24T09:24:29", "permissionGrantedMap": { "permissionGranted": { "2a49aa92-91e0-49b1-b369-1fd441b27239": true } }, "outsideSid": "6608e9cd-7db4-4984-a7e7-798bc9170ae8", "id": "bf33259f-2a6d-4d44-b9c5-a2c54970b747", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.n5fiyFdY5YgP6yk_SqLoT-8HETjSE56I.0JOjT6KhPB9HCp7x.-tWmKFKCTfZ-fy6IqxN0TcvMjAfSz29SmZJSRUGxAgjQ8y6twlykgJbZ8ca7V7blbrBO-XE3SSyWtdv4K_f6YwFeIJhJUTFDsfC54S3Id6zwbeP4H9wHeu2ngjoxixPHs2fxxnY19n1vHBChVtd2__cH7MDxe9MTW1h_Wy-Jzo1JNJQRcR7sfpIIIvuYqHYk0aDTHFGGiuSMeZcIxSIIyhg-j7PbTIkrt5PG6FiyR98E0mfe52oCS7S_4SBQwrQOjIbsgMcfn4hbifVeD6zxxJkuJwSu0qMpyE2aTc8ttbpXgLw_3KTJzfDja0-1m8DU5k2LOQgnOYjyNoJRzfYvnKsR610VCd3OXYSm3z6mTp6Lmyc9qGMQl-QPk7LH4Ae6YvTiO6JyxuBZrrjBsEi0rHAkRX3JNS-Yiuu5Ea1321Tspg5tdjuoIS35ztNN6mRGcaUOq9WNQNjN3CyO2o8HJGQF7Bvh2MF-SdJjNSHm1EZjINF26uL1okrmS0Jt1zk94Gw8JA4R6FoWEMz-vWq26e77uK5dipGC_glqM_AkjAjO93QTKCw7HA-kxGFZjaC0AM6-f4TtfOu09__IQ3dRgZCHvna6c2BJWcTlOsb4Gg17YDUamiVn_758O986jvrTFpskStSKIk8Q3H84oWpt7GAbLE-UxHh7oFqiz2OuG5S4JoyxYZwRbrRmSu5_u07JPUUc21Bf43zKXZWl8BCKuxFcZVeSTcUpnuYPiRMyqDTewpVHp5P2SLAMZeL9o0PKoYGq3eQVwOGmG5RBasrXXd_woGvDI1TsBX_j-A7xQ5Iv1PNy4EY2GjlUJ9rX7qmLtZGmBPMS_xSqQXa_rLSJd0dJF6YXbhl6CsIZGcMvXKLfSZCjA0ef-EpooZh3_N4MndCynu8E6w.bh6oo7zlYevL1PzHsyLmPA", "opbs": "3e7742a8-3ff2-4238-8771-e0bed6b182c3", "response_type": "token id_token", "session_id": "bf33259f-2a6d-4d44-b9c5-a2c54970b747", "nonce": "3ce5d2de-4985-4150-9a8f-785a200e8d17", "client_id": "2a49aa92-91e0-49b1-b369-1fd441b27239", "response_mode": "jwt", "sid": "6608e9cd-7db4-4984-a7e7-798bc9170ae8", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5de04d25-8d58-4c8d-9191-8e0030b812cc", "old_session_id": "9452ba8c-ee05-4ffb-b172-db05987edc6a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:27" }, { "isJwt": false, "opbrowserState": "4908a6e1-1cf8-41c6-80a2-bfc531810ac5", "deletable": true, "dn": "jansId=3c76270a-73a8-46cf-934f-9849a282bcfc,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:25", "creationDate": "2022-11-24T09:24:24", "ttl": 0, "sessionState": "cf4dc26202759298e42de3bae432654501a5aa056afec1590a7d6e49d21ca231.2ee8b5bd-758f-484f-863b-b1084531f92e", "lastUsedAt": "2022-11-24T09:24:26", "permissionGrantedMap": { "permissionGranted": { "d6b6f294-9f21-4aed-9298-ecb41864237c": true } }, "outsideSid": "1abefe8d-a3f8-4ded-91ca-b837bae31aea", "id": "3c76270a-73a8-46cf-934f-9849a282bcfc", "state": "authenticated", "sessionAttributes": { "opbs": "4908a6e1-1cf8-41c6-80a2-bfc531810ac5", "response_type": "code", "session_id": "3c76270a-73a8-46cf-934f-9849a282bcfc", "client_id": "d6b6f294-9f21-4aed-9298-ecb41864237c", "response_mode": "jwt", "sid": "1abefe8d-a3f8-4ded-91ca-b837bae31aea", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1114cd9e-f2fd-44d5-9255-882c77465ff5", "old_session_id": "6498dd04-e0db-40eb-aa28-3b329b5f56fb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:24" }, { "isJwt": false, "opbrowserState": "a6601e3a-0350-4099-95f1-e71b829c022a", "deletable": true, "dn": "jansId=68e2816f-82a4-49c2-b039-cd3f165a456e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:25", "creationDate": "2022-11-24T09:24:24", "ttl": 0, "sessionState": "3a2fdfdb7a6addfa573139d61b838d57f5d1f63d83285ae1f3198c6f49a853d2.c8971796-d359-4e0b-aed0-10c5e1e5f80c", "lastUsedAt": "2022-11-24T09:24:25", "permissionGrantedMap": { "permissionGranted": { "59c91fad-fffc-48a3-a44a-640a69e3f280": true } }, "outsideSid": "15e25dbe-290f-4cdc-bdca-75bfb87e91a0", "id": "68e2816f-82a4-49c2-b039-cd3f165a456e", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJjZGMyMWQyNC05MzQzLTRkNTUtOGIyMy0xZmJjNGEyYmY3MDQiLAogICJub25jZSIgOiAiYjE2NjZjY2ItMzdlOC00Y2RiLWIzOWEtNDU4ZjEzYzMwNDY3IiwKICAiY2xpZW50X2lkIiA6ICI1OWM5MWZhZC1mZmZjLTQ4YTMtYTQ0YS02NDBhNjllM2YyODAiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.bvPOE-Pt16-RjxY35Yor4okHW3iuwMoSzjpiBbWUuOgP3ikQG4BoP2CSJhHBKlKYJOxDCC_DzoS1I47MdZnU0A", "opbs": "a6601e3a-0350-4099-95f1-e71b829c022a", "response_type": "code token", "session_id": "68e2816f-82a4-49c2-b039-cd3f165a456e", "nonce": "b1666ccb-37e8-4cdb-b39a-458f13c30467", "client_id": "59c91fad-fffc-48a3-a44a-640a69e3f280", "response_mode": "jwt", "sid": "15e25dbe-290f-4cdc-bdca-75bfb87e91a0", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "cdc21d24-9343-4d55-8b23-1fbc4a2bf704", "old_session_id": "81b04821-0419-4797-9497-46de142c1957" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:24" }, { "isJwt": false, "opbrowserState": "e1eb934d-3f0d-4dc3-b3bc-fa1b2ce1e77e", "deletable": true, "dn": "jansId=3185e584-4f89-46d2-bcc0-b5bf90330611,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:24", "creationDate": "2022-11-24T09:24:23", "ttl": 0, "sessionState": "ff7793a48dbb4db353dc78193ac7a2e31011b0ad306a7eb0631481517f6017f4.9953e983-7e29-4813-800e-66dff49a77b6", "lastUsedAt": "2022-11-24T09:24:25", "permissionGrantedMap": { "permissionGranted": { "b925a5fd-5bef-4e31-96ce-0253f72e15ac": true } }, "outsideSid": "7f6cfb8d-81ab-427b-a4bb-6bd45c8adb1b", "id": "3185e584-4f89-46d2-bcc0-b5bf90330611", "state": "authenticated", "sessionAttributes": { "opbs": "e1eb934d-3f0d-4dc3-b3bc-fa1b2ce1e77e", "response_type": "code token", "session_id": "3185e584-4f89-46d2-bcc0-b5bf90330611", "client_id": "b925a5fd-5bef-4e31-96ce-0253f72e15ac", "response_mode": "jwt", "sid": "7f6cfb8d-81ab-427b-a4bb-6bd45c8adb1b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a625e154-ea6d-45e7-82fc-11597e6d5aba", "old_session_id": "6c184c95-468c-4a72-a7de-293eaedf35ca" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:23" }, { "isJwt": false, "opbrowserState": "e85975e9-8e04-4cce-9648-ba2c1aea3ef7", "deletable": true, "dn": "jansId=a31a88c2-b06d-4187-b741-76f4de7db024,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:24", "creationDate": "2022-11-24T09:24:23", "ttl": 0, "sessionState": "e10e13eab9816362ff5e1defe2bbc96264c53873d2eee40fc8ab540bc657f91d.e6f5f796-80e6-49e8-b7a7-f365cf3339f3", "lastUsedAt": "2022-11-24T09:24:25", "permissionGrantedMap": { "permissionGranted": { "36cca116-6059-4bab-ad2c-c3c23830d38e": true } }, "outsideSid": "095d60a7-80bb-40a1-9e40-19d4f90faaf9", "id": "a31a88c2-b06d-4187-b741-76f4de7db024", "state": "authenticated", "sessionAttributes": { "opbs": "e85975e9-8e04-4cce-9648-ba2c1aea3ef7", "response_type": "code id_token token", "session_id": "a31a88c2-b06d-4187-b741-76f4de7db024", "nonce": "5d518efd-b686-4569-805f-cac4a133f2e0", "client_id": "36cca116-6059-4bab-ad2c-c3c23830d38e", "response_mode": "jwt", "sid": "095d60a7-80bb-40a1-9e40-19d4f90faaf9", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2e052e6d-7b59-4cc3-b9d0-726f1019ff69", "old_session_id": "250fb90d-92eb-4bea-9f8e-532f258856f8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:23" }, { "isJwt": false, "opbrowserState": "83e10a82-f1e2-46f5-8bc4-b43a3a4ebda6", "deletable": true, "dn": "jansId=2c13ee67-39bc-44fa-83f8-8bd2bd59aa03,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:23", "creationDate": "2022-11-24T09:24:22", "ttl": 0, "sessionState": "7a715988ffb84d43cfacb82768bd49d251b84c9a141523a2e6465b8900f28964.849d9096-7fc2-4955-bf36-f39bec4d872d", "lastUsedAt": "2022-11-24T09:24:24", "permissionGrantedMap": { "permissionGranted": { "52935c0b-8b1f-4d25-adf5-1430f8347f19": true } }, "outsideSid": "688a0b4e-ffdf-4cec-8d93-81d282479e92", "id": "2c13ee67-39bc-44fa-83f8-8bd2bd59aa03", "state": "authenticated", "sessionAttributes": { "opbs": "83e10a82-f1e2-46f5-8bc4-b43a3a4ebda6", "response_type": "code", "session_id": "2c13ee67-39bc-44fa-83f8-8bd2bd59aa03", "client_id": "52935c0b-8b1f-4d25-adf5-1430f8347f19", "response_mode": "jwt", "sid": "688a0b4e-ffdf-4cec-8d93-81d282479e92", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "14ec05bb-cfb8-4da7-91ad-7ec27e9067a3", "old_session_id": "a927d23c-c02d-4dc1-adc7-88fa6a1733bb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:22" }, { "isJwt": false, "opbrowserState": "9f6f553d-9152-4168-a6b3-ddc3f0a2f429", "deletable": true, "dn": "jansId=8364e6d1-70ed-4924-a7b9-acd45b89c5eb,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:22", "creationDate": "2022-11-24T09:24:21", "ttl": 0, "sessionState": "f6b80b15fb4c518044669e6c82fb0666e4437cdbf46e8706ee147be691edcbd2.0fed4806-812e-40a9-b8a4-11d23991a797", "lastUsedAt": "2022-11-24T09:24:23", "permissionGrantedMap": { "permissionGranted": { "85a4399e-94a2-47a8-897c-1d9ef5dd130d": true } }, "outsideSid": "c015bb48-f100-4bc8-bd41-cb81c267d39a", "id": "8364e6d1-70ed-4924-a7b9-acd45b89c5eb", "state": "authenticated", "sessionAttributes": { "opbs": "9f6f553d-9152-4168-a6b3-ddc3f0a2f429", "response_type": "code id_token", "session_id": "8364e6d1-70ed-4924-a7b9-acd45b89c5eb", "nonce": "6341839c-9b7b-4141-ae62-ecf056c0dbb8", "client_id": "85a4399e-94a2-47a8-897c-1d9ef5dd130d", "response_mode": "jwt", "sid": "c015bb48-f100-4bc8-bd41-cb81c267d39a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "aff4177a-7e91-4080-b5ad-d032ddb6cd81", "old_session_id": "a6726609-286f-45bf-bb3e-4d005b38d73f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:21" }, { "isJwt": false, "opbrowserState": "25de52c0-35be-4d60-a765-702efc89bfcf", "deletable": true, "dn": "jansId=21b16a0b-4204-4e11-8733-2a9eec2bf041,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:22", "creationDate": "2022-11-24T09:24:21", "ttl": 0, "sessionState": "afd8b9977def60a2971e176ce1b242417b05a655ce200eee41ba4cbda1d88032.cf3a43d4-91d7-41fe-bb4b-34036f6d9767", "lastUsedAt": "2022-11-24T09:24:22", "permissionGrantedMap": { "permissionGranted": { "655e5f2a-5f57-4320-b579-b2e0e209324f": true } }, "outsideSid": "934872ef-90b1-444b-8bb3-37891e1a3c69", "id": "21b16a0b-4204-4e11-8733-2a9eec2bf041", "state": "authenticated", "sessionAttributes": { "opbs": "25de52c0-35be-4d60-a765-702efc89bfcf", "response_type": "code id_token token", "session_id": "21b16a0b-4204-4e11-8733-2a9eec2bf041", "nonce": "aa7b9672-bcae-42ad-8b4a-f43e42d70ae9", "client_id": "655e5f2a-5f57-4320-b579-b2e0e209324f", "response_mode": "jwt", "sid": "934872ef-90b1-444b-8bb3-37891e1a3c69", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "de1fefda-4a3c-4779-a4fe-c7325e46cbf9", "old_session_id": "b780f215-55f5-474a-a45b-70b0fc49baef" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:21" }, { "isJwt": false, "opbrowserState": "22ffd517-ff6e-459f-b2e9-62bfc908c2c4", "deletable": true, "dn": "jansId=163038b2-821e-4f72-a035-ba6b3183a481,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:22", "creationDate": "2022-11-24T09:24:21", "ttl": 0, "sessionState": "a958ef3cb9ce48edab75bbf9de73a9051380474484efd68324b354959765f146.fc3baf4c-ea97-444f-8a0c-89c2c6535085", "lastUsedAt": "2022-11-24T09:24:22", "permissionGrantedMap": { "permissionGranted": { "a01aaff4-2953-4c8a-b5d4-875aece860d6": true } }, "outsideSid": "78f1f079-bef3-45ad-b7c6-46037fcd2a9c", "id": "163038b2-821e-4f72-a035-ba6b3183a481", "state": "authenticated", "sessionAttributes": { "opbs": "22ffd517-ff6e-459f-b2e9-62bfc908c2c4", "response_type": "code token", "session_id": "163038b2-821e-4f72-a035-ba6b3183a481", "client_id": "a01aaff4-2953-4c8a-b5d4-875aece860d6", "response_mode": "jwt", "sid": "78f1f079-bef3-45ad-b7c6-46037fcd2a9c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a78aa31e-34f2-4738-898a-7188c4f2af3e", "old_session_id": "677e842a-0a74-465e-9a2d-1fdcafcff7e4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:21" }, { "isJwt": false, "opbrowserState": "a36c10b7-d101-4515-a54e-63986a42b709", "deletable": true, "dn": "jansId=109fb113-1804-4ea1-8d40-88281f7ba7b3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:21", "creationDate": "2022-11-24T09:24:20", "ttl": 0, "sessionState": "7a194528296b6f7c40275681e618cb8a41887a0832c5cfff73709cb11deaa085.e1041167-72da-4fc8-8ce2-74d74e8242ca", "lastUsedAt": "2022-11-24T09:24:22", "permissionGrantedMap": { "permissionGranted": { "d1a17631-3306-464e-8185-2f65d2475e77": true } }, "outsideSid": "64498b45-2611-4f97-86d1-75097b88cd7b", "id": "109fb113-1804-4ea1-8d40-88281f7ba7b3", "state": "authenticated", "sessionAttributes": { "opbs": "a36c10b7-d101-4515-a54e-63986a42b709", "response_type": "code", "session_id": "109fb113-1804-4ea1-8d40-88281f7ba7b3", "client_id": "d1a17631-3306-464e-8185-2f65d2475e77", "response_mode": "jwt", "sid": "64498b45-2611-4f97-86d1-75097b88cd7b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e0118b8d-281a-488e-bdce-35b1e4d19d33", "old_session_id": "2f629a52-8394-425d-a32c-5f122c6d7ad8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:20" }, { "isJwt": false, "opbrowserState": "d8420481-523f-4526-b6b2-82773a7a09ff", "deletable": true, "dn": "jansId=9795a162-8bcf-4cc2-ac3a-f4af89fe0ad6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:19", "creationDate": "2022-11-24T09:24:18", "ttl": 0, "sessionState": "27911edd4252df2f77778615aa7123301d28e7e458548ef4ef6dfcc6568e6adc.e2330b44-6873-4cb1-9556-14f4d14411e8", "lastUsedAt": "2022-11-24T09:24:20", "permissionGrantedMap": { "permissionGranted": { "03fd1e20-c313-459d-b523-cb84c19c8d91": true } }, "outsideSid": "928d1daa-d07e-437a-ab81-6d132dea18e2", "id": "9795a162-8bcf-4cc2-ac3a-f4af89fe0ad6", "state": "authenticated", "sessionAttributes": { "opbs": "d8420481-523f-4526-b6b2-82773a7a09ff", "response_type": "code token", "session_id": "9795a162-8bcf-4cc2-ac3a-f4af89fe0ad6", "client_id": "03fd1e20-c313-459d-b523-cb84c19c8d91", "response_mode": "jwt", "sid": "928d1daa-d07e-437a-ab81-6d132dea18e2", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a9e6e85f-df44-40b6-8472-f3d3be0712da", "old_session_id": "bb9c6a8f-d428-499a-a8d9-f7c93ab302ae" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:18" }, { "isJwt": false, "opbrowserState": "3738d304-8506-4350-b683-445d17c011ee", "deletable": true, "dn": "jansId=0e4d8a9b-03c1-4c85-820f-149d7b8df81f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:18", "creationDate": "2022-11-24T09:24:17", "ttl": 0, "sessionState": "f4e8c7acbc10ffe9d7cd5d7bd836c1d85c244279af81eaa37a3d2b0f73d33bf1.8c0b1dae-efff-475f-b44e-1450ef70755f", "lastUsedAt": "2022-11-24T09:24:18", "permissionGrantedMap": { "permissionGranted": { "f788668a-413e-418f-a45e-8ecfe0b242a9": true } }, "outsideSid": "630a855f-bc49-429c-a2cd-ffcd7ecaf88e", "id": "0e4d8a9b-03c1-4c85-820f-149d7b8df81f", "state": "authenticated", "sessionAttributes": { "opbs": "3738d304-8506-4350-b683-445d17c011ee", "response_type": "code id_token token", "session_id": "0e4d8a9b-03c1-4c85-820f-149d7b8df81f", "nonce": "5a717d42-a5fb-4d13-b8d0-aa49c4b5d2c7", "client_id": "f788668a-413e-418f-a45e-8ecfe0b242a9", "response_mode": "jwt", "sid": "630a855f-bc49-429c-a2cd-ffcd7ecaf88e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "bab81043-39e4-44df-904d-7714a0b2355b", "old_session_id": "f97a93f1-f2c0-420c-ba1f-5c8bd0434103" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:17" }, { "isJwt": false, "opbrowserState": "417cecf5-bb89-4795-a215-52edc57b8e11", "deletable": true, "dn": "jansId=8fde4749-d9fb-4551-afe9-39f6c5d2190f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:17", "creationDate": "2022-11-24T09:24:17", "ttl": 0, "sessionState": "6658045872aa2e9b0d9e8c72a2a567673394994c294986ebcff69417ec4a2c7b.6640c1aa-70b1-4e82-bd08-c15eac6088b3", "lastUsedAt": "2022-11-24T09:24:18", "permissionGrantedMap": { "permissionGranted": { "828b77ab-993b-4e99-b7bb-011b23fb592b": true } }, "outsideSid": "a5af1d92-2ffa-4516-b575-90e0e620b464", "id": "8fde4749-d9fb-4551-afe9-39f6c5d2190f", "state": "authenticated", "sessionAttributes": { "opbs": "417cecf5-bb89-4795-a215-52edc57b8e11", "response_type": "code token", "session_id": "8fde4749-d9fb-4551-afe9-39f6c5d2190f", "client_id": "828b77ab-993b-4e99-b7bb-011b23fb592b", "response_mode": "jwt", "sid": "a5af1d92-2ffa-4516-b575-90e0e620b464", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e9cf0527-5763-41bd-909b-7d90646000ca", "old_session_id": "587d199b-3170-4cff-aab7-fda13aefb4f4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:17" }, { "isJwt": false, "opbrowserState": "d20f64c9-9ff4-4197-9302-b9ef75bedf0f", "deletable": true, "dn": "jansId=2070294b-7ed8-4e73-a28c-6dfae53fe557,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:17", "creationDate": "2022-11-24T09:24:16", "ttl": 0, "sessionState": "0aa13b7c04e54d42c52c9cd34d60829da073882bde18395ec258b094bec13d20.da4d7302-7d70-416d-be7f-b2611583fb94", "lastUsedAt": "2022-11-24T09:24:18", "permissionGrantedMap": { "permissionGranted": { "1cd8d28b-bbdb-4ad3-8dd7-31a7101b04a9": true } }, "outsideSid": "2f6447cd-0510-4b64-a603-89edd941caaf", "id": "2070294b-7ed8-4e73-a28c-6dfae53fe557", "state": "authenticated", "sessionAttributes": { "opbs": "d20f64c9-9ff4-4197-9302-b9ef75bedf0f", "response_type": "code", "session_id": "2070294b-7ed8-4e73-a28c-6dfae53fe557", "client_id": "1cd8d28b-bbdb-4ad3-8dd7-31a7101b04a9", "response_mode": "jwt", "sid": "2f6447cd-0510-4b64-a603-89edd941caaf", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2f4afcca-3388-4eea-86c7-627b2bef31a4", "old_session_id": "5b11a3dd-026a-464c-a599-ae533c6cabf6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:16" }, { "isJwt": false, "opbrowserState": "72657a37-fd28-4bbe-a354-0cb88ce2ce7b", "deletable": true, "dn": "jansId=37dac4a5-6d88-4164-8f78-78d34a94946b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:16", "creationDate": "2022-11-24T09:24:16", "ttl": 0, "sessionState": "9900a0c0ef72aff9a0d8970c4e1adc1ed031e292fbbf92b71e34b8970142b4a0.0ef462c4-b00b-44cd-a6bf-eef093ad9f7a", "lastUsedAt": "2022-11-24T09:24:17", "permissionGrantedMap": { "permissionGranted": { "13932db3-e595-498a-9605-23bb96736f55": true } }, "outsideSid": "6c222bde-9bbe-49ee-b611-aae6074d2796", "id": "37dac4a5-6d88-4164-8f78-78d34a94946b", "state": "authenticated", "sessionAttributes": { "opbs": "72657a37-fd28-4bbe-a354-0cb88ce2ce7b", "response_type": "code id_token", "session_id": "37dac4a5-6d88-4164-8f78-78d34a94946b", "nonce": "cf101735-20e6-4e7e-9888-a90d90681b26", "client_id": "13932db3-e595-498a-9605-23bb96736f55", "response_mode": "jwt", "sid": "6c222bde-9bbe-49ee-b611-aae6074d2796", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0aa2c7a4-16bc-4106-809b-319178d121a5", "old_session_id": "daf01299-bb13-4dde-9cfc-71edd969d3f3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:16" }, { "isJwt": false, "opbrowserState": "2e616c72-9a1b-4821-815c-41319443a229", "deletable": true, "dn": "jansId=6bd14aa7-8b8b-4387-a5de-6a91692a9a15,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:16", "creationDate": "2022-11-24T09:24:15", "ttl": 0, "sessionState": "3127c344588b18fa25c46083b28178ef0802d1db4cec3440ee620be776d64754.6f3f17c4-5006-4823-9fb2-8ecbd50310ab", "lastUsedAt": "2022-11-24T09:24:16", "permissionGrantedMap": { "permissionGranted": { "20069615-9b85-474c-bc7b-a591e6c1d3ad": true } }, "outsideSid": "94cf2c64-ed06-4fc1-a431-777c7f0abf76", "id": "6bd14aa7-8b8b-4387-a5de-6a91692a9a15", "state": "authenticated", "sessionAttributes": { "opbs": "2e616c72-9a1b-4821-815c-41319443a229", "response_type": "code token", "session_id": "6bd14aa7-8b8b-4387-a5de-6a91692a9a15", "client_id": "20069615-9b85-474c-bc7b-a591e6c1d3ad", "response_mode": "jwt", "sid": "94cf2c64-ed06-4fc1-a431-777c7f0abf76", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "da55f30e-27f8-4e30-8659-e5519b477562", "old_session_id": "d2741099-79b2-444e-bce8-c07d769e3b53" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:15" }, { "isJwt": false, "opbrowserState": "37c41e4e-3fb8-4e0c-b75e-cb69890c8342", "deletable": true, "dn": "jansId=b4d0634c-6226-4ec9-9b1a-9bc56cba15b0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:15", "creationDate": "2022-11-24T09:24:15", "ttl": 0, "sessionState": "365967411ba2a55f2a97ee5c7235e4c48a5383019434aad43887583cfd2c4be2.d3b01654-5e16-4e66-af67-0c83c13d795a", "lastUsedAt": "2022-11-24T09:24:16", "permissionGrantedMap": { "permissionGranted": { "28e5f40c-1023-4451-9ceb-aad0eec2fbe1": true } }, "outsideSid": "45c974e4-3861-4981-a9d8-218aaaeab8a7", "id": "b4d0634c-6226-4ec9-9b1a-9bc56cba15b0", "state": "authenticated", "sessionAttributes": { "opbs": "37c41e4e-3fb8-4e0c-b75e-cb69890c8342", "response_type": "code", "session_id": "b4d0634c-6226-4ec9-9b1a-9bc56cba15b0", "client_id": "28e5f40c-1023-4451-9ceb-aad0eec2fbe1", "response_mode": "jwt", "sid": "45c974e4-3861-4981-a9d8-218aaaeab8a7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "94fdc2e5-ac69-4c11-95db-284ea2e7de5e", "old_session_id": "61ee915d-6f1e-42dd-94e5-d73da36eaa22" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:15" }, { "isJwt": false, "opbrowserState": "cde1bc09-be1c-480f-98e7-b2335a972759", "deletable": true, "dn": "jansId=1abeb947-c0f9-410c-a242-dce2b828956b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:14", "creationDate": "2022-11-24T09:24:13", "ttl": 0, "sessionState": "896e7ced4f4d4db3debd38cb26238712d53f4723a439fb1743ae2d62eb8f6564.47462c55-d8b8-46ff-89f6-e5cffa31eb9e", "lastUsedAt": "2022-11-24T09:24:14", "permissionGrantedMap": { "permissionGranted": { "3f7b34e9-b42a-4cb3-8b0c-d039d1b09a2a": true } }, "outsideSid": "333e2503-c01a-4e84-936f-40b39587efbe", "id": "1abeb947-c0f9-410c-a242-dce2b828956b", "state": "authenticated", "sessionAttributes": { "opbs": "cde1bc09-be1c-480f-98e7-b2335a972759", "response_type": "code id_token token", "session_id": "1abeb947-c0f9-410c-a242-dce2b828956b", "nonce": "78315ceb-965a-43cc-8ff7-c45609257151", "client_id": "3f7b34e9-b42a-4cb3-8b0c-d039d1b09a2a", "response_mode": "jwt", "sid": "333e2503-c01a-4e84-936f-40b39587efbe", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1dc0945a-7865-40f1-9bb8-f294f76c1798", "old_session_id": "aac6bc96-cdb5-4c4e-8bfc-87d571e58884" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:13" }, { "isJwt": false, "opbrowserState": "27bda758-058b-4034-9433-be0c07da4ab6", "deletable": true, "dn": "jansId=001015a7-d51e-4dfe-b7f5-8635861d4a45,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:14", "creationDate": "2022-11-24T09:24:13", "ttl": 0, "sessionState": "de330317381dc690dfa962c465a63adb36a7b4b0555ff6a319ac0b4616924bdc.e7cdafab-602e-48e2-9b5d-dc940944a586", "lastUsedAt": "2022-11-24T09:24:14", "permissionGrantedMap": { "permissionGranted": { "148dd5d0-3c17-4232-a7c9-c995de26f580": true } }, "outsideSid": "2626654e-106a-4404-8a05-04daddf72060", "id": "001015a7-d51e-4dfe-b7f5-8635861d4a45", "state": "authenticated", "sessionAttributes": { "opbs": "27bda758-058b-4034-9433-be0c07da4ab6", "response_type": "code", "session_id": "001015a7-d51e-4dfe-b7f5-8635861d4a45", "client_id": "148dd5d0-3c17-4232-a7c9-c995de26f580", "response_mode": "jwt", "sid": "2626654e-106a-4404-8a05-04daddf72060", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "51395b03-1c24-4b32-8182-74619912c77a", "old_session_id": "7867376f-086a-447f-a731-741401277f9b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:13" }, { "isJwt": false, "opbrowserState": "4b4a6d7d-5d83-469f-9adc-a01b7bf9b89f", "deletable": true, "dn": "jansId=547f1ded-2bdf-4228-a541-01739d811387,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:13", "creationDate": "2022-11-24T09:24:12", "ttl": 0, "sessionState": "46c75d4608a9ab63f45fabf5708a08a998aac8b4178e9a6619e50cf10a0cbdf5.28e23335-a4e1-4fa6-b43c-9673387cb9d0", "lastUsedAt": "2022-11-24T09:24:14", "permissionGrantedMap": { "permissionGranted": { "a11b94ca-721b-4896-b8ac-9f0d08def5fd": true } }, "outsideSid": "75dfb854-9bb5-417f-a793-8993e673715a", "id": "547f1ded-2bdf-4228-a541-01739d811387", "state": "authenticated", "sessionAttributes": { "opbs": "4b4a6d7d-5d83-469f-9adc-a01b7bf9b89f", "response_type": "code id_token", "session_id": "547f1ded-2bdf-4228-a541-01739d811387", "nonce": "ce0b5c1c-ea64-40e5-ad20-286c9510f9af", "client_id": "a11b94ca-721b-4896-b8ac-9f0d08def5fd", "response_mode": "jwt", "sid": "75dfb854-9bb5-417f-a793-8993e673715a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "efd3f9f9-5472-4652-ac4e-ff068f0f43c4", "old_session_id": "b860d260-39ce-41c8-aa03-0a271ca336ed" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:12" }, { "isJwt": false, "opbrowserState": "7de41a62-f986-44a4-bbe5-1567c6cf566e", "deletable": true, "dn": "jansId=61a62013-b735-4740-b4a5-27bd59b4180a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:13", "creationDate": "2022-11-24T09:24:12", "ttl": 0, "sessionState": "5437c2f53d5987c9326359235501a57d21ffb85cd687305e38f2dbf7c7d33b08.061dd8f9-bb47-46e8-b9bf-3ca57a37e1c6", "lastUsedAt": "2022-11-24T09:24:13", "permissionGrantedMap": { "permissionGranted": { "68fa2c2a-5794-4cec-b8b3-3a20481d1914": true } }, "outsideSid": "bfb2a76d-ef66-4790-b141-ad796c35c029", "id": "61a62013-b735-4740-b4a5-27bd59b4180a", "state": "authenticated", "sessionAttributes": { "opbs": "7de41a62-f986-44a4-bbe5-1567c6cf566e", "response_type": "code id_token token", "session_id": "61a62013-b735-4740-b4a5-27bd59b4180a", "nonce": "e46c49fc-2b07-4be4-8845-fdd6495c7cdf", "client_id": "68fa2c2a-5794-4cec-b8b3-3a20481d1914", "response_mode": "jwt", "sid": "bfb2a76d-ef66-4790-b141-ad796c35c029", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e737b381-e17e-4e69-a66f-608910fad9a5", "old_session_id": "710b4cb5-c5b9-4f40-b890-eb7ec2dbc914" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:12" }, { "isJwt": false, "opbrowserState": "1bcf2513-129e-4dce-b1ca-2d55847bf08e", "deletable": true, "dn": "jansId=7580ca01-7b29-4e32-83bf-8a1ed3d9efc1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:12", "creationDate": "2022-11-24T09:24:11", "ttl": 0, "sessionState": "96f76e83ba534e48b73aa7f424d6e4b1d37e2924eca9931cc4d413e9906ef077.8f51a86d-eb0d-4d62-af69-274baa7f010e", "lastUsedAt": "2022-11-24T09:24:12", "permissionGrantedMap": { "permissionGranted": { "cb3d8e4f-6201-4c39-96fd-5e328ede5673": true } }, "outsideSid": "0c8ea4eb-2edf-447d-93c5-71ed957817e6", "id": "7580ca01-7b29-4e32-83bf-8a1ed3d9efc1", "state": "authenticated", "sessionAttributes": { "opbs": "1bcf2513-129e-4dce-b1ca-2d55847bf08e", "response_type": "code", "session_id": "7580ca01-7b29-4e32-83bf-8a1ed3d9efc1", "client_id": "cb3d8e4f-6201-4c39-96fd-5e328ede5673", "response_mode": "jwt", "sid": "0c8ea4eb-2edf-447d-93c5-71ed957817e6", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2d651e20-6577-4109-84e7-fb1207de5e66", "old_session_id": "a7a2ca98-691c-474a-82a3-5be4f38fd821" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:11" }, { "isJwt": false, "opbrowserState": "14995b51-e20c-479d-99dd-05ec242d347d", "deletable": true, "dn": "jansId=6674ed47-6c44-42eb-8c30-0447a085a043,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:11", "creationDate": "2022-11-24T09:24:10", "ttl": 0, "sessionState": "a1ddc5717cbb10aa197abd1909d81366c9ea8dfbd49b787ca750bf90bada8f7a.07ac6a13-478e-46ab-a6cb-03d8678b10d6", "lastUsedAt": "2022-11-24T09:24:12", "permissionGrantedMap": { "permissionGranted": { "1dac44dc-b632-4886-b7ad-5751bf8eb863": true } }, "outsideSid": "44f5296e-1fb3-4f36-af73-cbfcf0430be9", "id": "6674ed47-6c44-42eb-8c30-0447a085a043", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkEyNTZDQkMrSFM1MTIiLCJhbGciOiJSU0ExXzUifQ.ZS567hDwImkRcfvT5CQ0EHT3n-OUh2bURWIyGytScvgWXtpEBvei4GkQqBS7KR0Y5UbqIY_MFaurjfwtC1fBjEVLgYcw7Gp7ytLEp-LAo_1SoWSvHb8A6LuGJaMPoHtrvSoP0nNjYAvIFrZjREc04IDP6dGqTucd2133_fD6Cjrsj6AflL8u_p5cMHNc5TzN1Twmz8gyrt9hmhSzLWRwUbFUISpwHrqXBLguAR0Wy8obqaWjYlGc3jsDJDx7VuvseUKLIIrLlYXbe4fRlNo2anGbew2Wn1aojc25nA80SVBOTvasCO9eaR3NjsXZb5dAZx6rTBTShHb0cWFBbfxydQ.49Nl1M1JnuR0fCw128aIHQ.Oj67nlSpH2MPi-Nmd0Pgw8Ee7Jrzn34KMf0pfnm4qdwobtT5yia_GCpficZ5pwXwEibEg7i6ViD5k2VoRmTq4JCWiq8xmgmNKvZku0Z-ykDM2ghAZOUr2lgvRyll4lzcM8VbJO0n0TQCLtsG3IMxAu_0dMYYQGvXKvaDlb6TEKpQFCQqzEcZzvH706n9THw9EOw2CfVBCcCcvf5fSON71VQmilC7nvPSH9VR8taSPC0wJSTSuGA0b5jnIkGZdkJ6rAYec6jiZVdjPRVxIjQFcaPpBPKGez6A6_LfZBoA_OkMop7y0WYM9YDzdb-iJ3dRh3hc0hjzpeR_8X9HGzo8sUHzge4WQs56PB59AYtXdTJSUe-j4k6UETjLAc5c-BlzRUGehLePPKO5R0tZMBOJYaSVYPHhcuZNFuVQuTX7xH1Detx2F1G_pv4nRSoZ5NWaxh7eVC-3TZeRmlYjHRCisM7l9cTBMVO1jpxh3Ue7x-AEySUwvDFC_iYGsw8tK8zPQv5Zc5DW15HG4FdchiteH3aAQQz0MG_MhBW2_eilaahod2SHMuWLmRTWPvpvsS2mu0jQhDw9z75i6zakD7NJkL8f1HEXlG6ULxK6nBOH5PsI32QLn3n2i4IyZHluZSN4r6tQMPb_kRuH_YmDNK0E2NP00_pQDbFVVupGxykbwDixAPcAz1YDnVnaiyArbZxTDwHwttxVDc3qtSZLY8NSfkh15hx7VkYvXonr4yuMAKLiy5OkCpAOJ2xMeajGkFpYd61feyW_02ZUBHskZy3L3qrYsTlNtZ56LHp-R8tJpdf-oUQHUDBtMo0u8spvncWbk79PAMzhrKwoHNla6_uqsefKWeeMnWMoxNueW3KzdCyiGDvP78Nb63UnLt2ZG5_dL2sxl-GlcEnFzvRuWhlCvA.jJIKKjtTjztFZoteQZ4yDg0EVFBUKvc6MPuApZ7f4QHf3ll8c31596aphdRULvr6YxC4sH0bC649bcKMMLM8Uw", "opbs": "14995b51-e20c-479d-99dd-05ec242d347d", "response_type": "code token", "session_id": "6674ed47-6c44-42eb-8c30-0447a085a043", "nonce": "697720f7-034c-42d1-8b5c-68a647110cb1", "client_id": "1dac44dc-b632-4886-b7ad-5751bf8eb863", "response_mode": "jwt", "sid": "44f5296e-1fb3-4f36-af73-cbfcf0430be9", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7a5881c5-e1bb-40cc-8fc6-1e64586998d7", "old_session_id": "9ba66cfe-5859-43f0-adeb-40698d9f0755" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:10" }, { "isJwt": false, "opbrowserState": "1419b962-0ff9-4e25-ab7b-28d7491ba873", "deletable": true, "dn": "jansId=b70ded0a-e654-4e98-b190-d0c0f26931cf,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:11", "creationDate": "2022-11-24T09:24:10", "ttl": 0, "sessionState": "1ca4c929ff3696cf7721c9278c6318c33eb8220ac471b180937a8ee47f7aa6b9.97e51eb1-acf0-4f1f-81a9-f90e8259ef5b", "lastUsedAt": "2022-11-24T09:24:11", "permissionGrantedMap": { "permissionGranted": { "c75c992a-d16f-42e6-86ba-2520dcdbbe5d": true } }, "outsideSid": "0180ab49-a67a-4d63-bb33-dce689275bfe", "id": "b70ded0a-e654-4e98-b190-d0c0f26931cf", "state": "authenticated", "sessionAttributes": { "opbs": "1419b962-0ff9-4e25-ab7b-28d7491ba873", "response_type": "code id_token", "session_id": "b70ded0a-e654-4e98-b190-d0c0f26931cf", "nonce": "a922cd6e-644d-41be-969d-9ddf45e8c85f", "client_id": "c75c992a-d16f-42e6-86ba-2520dcdbbe5d", "response_mode": "jwt", "sid": "0180ab49-a67a-4d63-bb33-dce689275bfe", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "42a65ada-487f-4b85-8a28-3f69b194e77c", "old_session_id": "38c16b23-28ce-46b0-89fd-56fd7fcf9b5e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:10" }, { "isJwt": false, "opbrowserState": "df0bbdf6-5cc8-48ba-9ceb-a1742fab9656", "deletable": true, "dn": "jansId=a1357a20-1121-4119-9243-d59fd44c2736,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:10", "creationDate": "2022-11-24T09:24:10", "ttl": 0, "sessionState": "27f755a22714ce77a74458b53aad83a6b79f116cc55d08f373ac51cd69afe624.01bea97a-5422-4b9d-9b73-ccc2a3e2560e", "lastUsedAt": "2022-11-24T09:24:11", "permissionGrantedMap": { "permissionGranted": { "51000e5a-b6c5-4d05-aafd-157d6928d06b": true } }, "outsideSid": "1c787d7b-e907-4598-b322-8b290dc62f51", "id": "a1357a20-1121-4119-9243-d59fd44c2736", "state": "authenticated", "sessionAttributes": { "opbs": "df0bbdf6-5cc8-48ba-9ceb-a1742fab9656", "response_type": "code id_token token", "session_id": "a1357a20-1121-4119-9243-d59fd44c2736", "nonce": "d75d5b6f-3fc6-4f57-a79e-456c82f3e4d6", "client_id": "51000e5a-b6c5-4d05-aafd-157d6928d06b", "response_mode": "jwt", "sid": "1c787d7b-e907-4598-b322-8b290dc62f51", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "05f00b88-cd0f-4c15-96c1-abfb5b6ce4c4", "old_session_id": "788076aa-f2f7-40b8-b392-d037c86648a8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:10" }, { "isJwt": false, "opbrowserState": "8a26d2de-bb60-41a8-a8cd-bc1c95b38262", "deletable": true, "dn": "jansId=179699b9-0702-401c-88eb-87f5171297c2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:10", "creationDate": "2022-11-24T09:24:09", "ttl": 0, "sessionState": "214341f2c4c0c21568c08592196a451fa4c74d3d6a1f54b56b1ac5b6428d6930.216285e9-49c5-46ff-a426-e24df2d8cc1d", "lastUsedAt": "2022-11-24T09:24:10", "permissionGrantedMap": { "permissionGranted": { "408ddff4-e691-4e47-9ac5-9ce4e0fec0bf": true } }, "outsideSid": "2507739c-d81e-47a9-b33f-73bc1b73248c", "id": "179699b9-0702-401c-88eb-87f5171297c2", "state": "authenticated", "sessionAttributes": { "opbs": "8a26d2de-bb60-41a8-a8cd-bc1c95b38262", "response_type": "code", "session_id": "179699b9-0702-401c-88eb-87f5171297c2", "client_id": "408ddff4-e691-4e47-9ac5-9ce4e0fec0bf", "response_mode": "jwt", "sid": "2507739c-d81e-47a9-b33f-73bc1b73248c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "25725683-0277-47b3-98a2-e7b452ed64f2", "old_session_id": "c470021f-055c-4a26-a776-a239bf9aae8e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:09" }, { "isJwt": false, "opbrowserState": "e717d55a-0f72-4f06-bd97-f275d2f60dce", "deletable": true, "dn": "jansId=47222adb-80e9-4719-996e-c8d32fb358e2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:09", "creationDate": "2022-11-24T09:24:08", "ttl": 0, "sessionState": "e5e866251941c503d1a8046463e2c2fea9fc96ff3e7781d0187f0e436e3d8a60.531fba7b-4bac-4b43-8d47-c583c3ae036f", "lastUsedAt": "2022-11-24T09:24:10", "permissionGrantedMap": { "permissionGranted": { "6f24b9fd-bde4-4372-ab0a-66e2aac9751b": true } }, "outsideSid": "6386de83-fc30-411e-b8fe-a3336558ee6a", "id": "47222adb-80e9-4719-996e-c8d32fb358e2", "state": "authenticated", "sessionAttributes": { "opbs": "e717d55a-0f72-4f06-bd97-f275d2f60dce", "response_type": "code id_token", "session_id": "47222adb-80e9-4719-996e-c8d32fb358e2", "nonce": "ef06d547-9a2a-4572-a68d-c51ddb941690", "client_id": "6f24b9fd-bde4-4372-ab0a-66e2aac9751b", "response_mode": "jwt", "sid": "6386de83-fc30-411e-b8fe-a3336558ee6a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "76c9d621-59c3-4cb0-b2e0-b2cc4e3f0d22", "old_session_id": "ce3324b1-6754-4589-ad3f-e3d83361df19" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:08" }, { "isJwt": false, "opbrowserState": "d724975d-e549-4242-ba31-8b0c32f64e56", "deletable": true, "dn": "jansId=44f48ce2-abb8-4d85-8ba2-58e36651b0e0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:09", "creationDate": "2022-11-24T09:24:08", "ttl": 0, "sessionState": "d8ba5185ee92e36fc4d18268673a913a069475d357ce25bc903533901898e359.50581b85-454b-449b-b4ef-0f8e3687531b", "lastUsedAt": "2022-11-24T09:24:10", "permissionGrantedMap": { "permissionGranted": { "de86235f-9bcc-4829-9ab8-d198196c72dd": true } }, "outsideSid": "0d8f1b7e-d2f7-49ba-8853-4e405fe7ad1e", "id": "44f48ce2-abb8-4d85-8ba2-58e36651b0e0", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.bwbFX9jKcqbX9cS6Jh241bQvdQ4bcfEHKIOH818bi6zUPa4aLnug5mIu9KtAqIOn9qj--iftVOKzDO3-EvgCCXJO8YYHFQqFG41jEVLqKIyhEIQw-rduS4wJxX4YiNMG4xodJP8hXgnwvRTJkOyp6BesCk-FSHwO9fE4xASxps4LqBBH179c4JLEJhELQXNXNdsNwT6NTIAxe2hUfu86t4hvTtQwEypXPA_If9VDkebGXPVgO5ykapyhoK44jT-ePU2XqVqFm5d19WQ5uXs1s5Fm1bMY9TJWXjbQ2j1p21dm1c0AxCSudbJOLe1ML0PgB3n4TDEH-z-8msI-A6YNeA.nV2gJGC18NhNntKGfhtzOQ.EY-Cj7Y-RKsNSLXVCosm82fYfnyQ4oo2ZgPd64nEI-KhhBlTV83_uV0un4EEMOdGaEjD3mz3qJezFip_H1JvKfPQ6DWRyOgOYdlKCSD92TiidYIbubO1f4M-Nipe5v6pVVpDiGdB_oqxZkycAvxRy3VAoZewyQYDICd57cVuJwAkOEEfekCoZ17X7XHS6lFlbLMR0UajhqaxHT0kfVPsPDjduCRwUXXBScmXgog12jn0Q6oyg5AB4E-_wLrkM3rXubBCv8MF9LEbCRyB6p13iCaJFel1z41mu61x19USS5GJaLNWNIOqCvm5Ox2yig_DOt4cA-0f_BGFYdvaJQjJS7eVUyBydK64N6Z3j5F4E_Zyw6-gv9lQE7Hn-GMSKLKBNkXu3voxl3B4Q-rILBwTv_eq35Gpff2_y48ztk0vZDxR4lXdB9eYLkSDPrbXrIdTqtp-lhZFzyxTN1RvExin0GKJBV3M75oQSKn3ZQa1lUKog_jz63OiI51ehfUVSpHUH0yCEmjdR4D0xiyZnCHffJLTVqnhoKvw22FhJjS8sCsqOOgdfthli-360vy5-M10YiEDMOXm8NVxgsS3OQY6cyhHr9NXKWLvGpAryKO1JPdSIxfWkE-CkuUCC3wtNlfNfi8SkpkW1nh_EKYt_VSJGA-r6pMfBw0n4eeEjXFwzrPtBDXp9-IdVWZ4yqBWf8f3XA6iYnJr9SVzJihoH4ACm01Kgi6wkx_fnYqLT4eauBINGM_Gl3rQdi-a8QrHE6QzqIBPXdaEX7ixbmVpirdm6c50_wf8mazUdbJSfEY29zpVAUHeamtpSaYU_7FLpyenMEoqWTN4DQxp6E3Nnet6Gu6Zs28KkcNZYLD61oblw-cfUwAZCGAlTJGDNFGgkVlOq5xRjAusGrvjQP63j7MFsw.fI-P4NHOr_9yxBSwFYGdM2zjP2lrbb7rKezXXHyKPsc", "opbs": "d724975d-e549-4242-ba31-8b0c32f64e56", "response_type": "code token", "session_id": "44f48ce2-abb8-4d85-8ba2-58e36651b0e0", "nonce": "7b74c4ef-7724-4e48-8c9f-04c2dab0f4b0", "client_id": "de86235f-9bcc-4829-9ab8-d198196c72dd", "response_mode": "jwt", "sid": "0d8f1b7e-d2f7-49ba-8853-4e405fe7ad1e", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5c730e7c-d653-4b93-accc-b7e8bcfcd2b2", "old_session_id": "1eeb4c48-3b1f-4380-b3f0-48dc5d22d84a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:08" }, { "isJwt": false, "opbrowserState": "3832d3c7-34bd-46ec-bbf9-15e7fcdacdc7", "deletable": true, "dn": "jansId=011bdc9b-9089-4564-8061-026f021c74e7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:09", "creationDate": "2022-11-24T09:24:08", "ttl": 0, "sessionState": "469ec9fd7517d93458c6eaed05fbd1ce53e33cd1d0af23c2594fbd291e59da7d.22cd8f44-0c09-40ac-855c-7b92f960ce83", "lastUsedAt": "2022-11-24T09:24:09", "permissionGrantedMap": { "permissionGranted": { "3582386c-afc6-4929-83ca-526fcb8ee268": true } }, "outsideSid": "f27b1d4c-5552-407d-ae1e-fbe292057173", "id": "011bdc9b-9089-4564-8061-026f021c74e7", "state": "authenticated", "sessionAttributes": { "opbs": "3832d3c7-34bd-46ec-bbf9-15e7fcdacdc7", "response_type": "code id_token token", "session_id": "011bdc9b-9089-4564-8061-026f021c74e7", "nonce": "39b6109a-cd5e-4c70-bc46-c64ac9571851", "client_id": "3582386c-afc6-4929-83ca-526fcb8ee268", "response_mode": "jwt", "sid": "f27b1d4c-5552-407d-ae1e-fbe292057173", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "cccb991e-1208-42d4-b3d8-6566c0d72fa2", "old_session_id": "65e42c83-7263-4e61-9603-b67329239dd3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:08" }, { "isJwt": false, "opbrowserState": "1f849112-e21c-4151-89eb-b363a7275c19", "deletable": true, "dn": "jansId=0dcaffa7-83c6-4d47-9a40-726bc375b44a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:08", "creationDate": "2022-11-24T09:24:08", "ttl": 0, "sessionState": "656b4ffee3310c80833a9e64731c397bb278a56801c8e81e23f0f721dc79600d.9c76c302-4855-405d-90f8-273824bd42a6", "lastUsedAt": "2022-11-24T09:24:09", "permissionGrantedMap": { "permissionGranted": { "4ea09822-b274-4176-9fff-e51e7db35b0c": true } }, "outsideSid": "8ea828ac-905d-4515-9d34-068c5389a1f2", "id": "0dcaffa7-83c6-4d47-9a40-726bc375b44a", "state": "authenticated", "sessionAttributes": { "opbs": "1f849112-e21c-4151-89eb-b363a7275c19", "response_type": "code", "session_id": "0dcaffa7-83c6-4d47-9a40-726bc375b44a", "client_id": "4ea09822-b274-4176-9fff-e51e7db35b0c", "response_mode": "jwt", "sid": "8ea828ac-905d-4515-9d34-068c5389a1f2", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "81ad1eee-25ce-4fd0-b126-2f70999ae773", "old_session_id": "03b4df2f-394e-467c-808d-4667f2189e0d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:08" }, { "isJwt": false, "opbrowserState": "ae13deb0-440e-429f-8dd5-c587610b99c2", "deletable": true, "dn": "jansId=60ec77e5-8a0e-4d97-b1ff-2425be61f170,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:07", "creationDate": "2022-11-24T09:24:06", "ttl": 0, "sessionState": "24707453e4a3656a94a2c4e3ce76ba4ed7aea1cbd86fbb507b75eec8009addb1.e36fc76d-704d-4803-b830-a5858661b782", "lastUsedAt": "2022-11-24T09:24:07", "permissionGrantedMap": { "permissionGranted": { "5e152620-ce36-4c45-9c82-c2f3ed223998": true } }, "outsideSid": "a60a3c50-6b73-4e6b-b173-591c9183c960", "id": "60ec77e5-8a0e-4d97-b1ff-2425be61f170", "state": "authenticated", "sessionAttributes": { "opbs": "ae13deb0-440e-429f-8dd5-c587610b99c2", "response_type": "code id_token", "session_id": "60ec77e5-8a0e-4d97-b1ff-2425be61f170", "nonce": "9437c440-9a65-43f1-b435-ef0cd042124a", "client_id": "5e152620-ce36-4c45-9c82-c2f3ed223998", "response_mode": "jwt", "sid": "a60a3c50-6b73-4e6b-b173-591c9183c960", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "66f66c7c-4cd5-4d93-8df0-f88e35750c9f", "old_session_id": "eb621fb6-6c3e-4351-90a3-295eecb18d3c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:06" }, { "isJwt": false, "opbrowserState": "98c54860-1bb3-4e34-a63f-91ad39c63f52", "deletable": true, "dn": "jansId=517efbb9-7d74-4e02-a6e0-42428bd6061b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:07", "creationDate": "2022-11-24T09:24:06", "ttl": 0, "sessionState": "ee8ebcb957f2f4db0dfc8994d4d8a381b48ce980bc9c9ca6607e09161d9619ff.004480c3-56f3-4361-981a-ef3446be9257", "lastUsedAt": "2022-11-24T09:24:07", "permissionGrantedMap": { "permissionGranted": { "d7dd02a0-faa3-469e-a54e-4c998869a15c": true } }, "outsideSid": "4d14474c-c7da-4f25-9668-8ca7604d54de", "id": "517efbb9-7d74-4e02-a6e0-42428bd6061b", "state": "authenticated", "sessionAttributes": { "opbs": "98c54860-1bb3-4e34-a63f-91ad39c63f52", "response_type": "code", "session_id": "517efbb9-7d74-4e02-a6e0-42428bd6061b", "client_id": "d7dd02a0-faa3-469e-a54e-4c998869a15c", "response_mode": "jwt", "sid": "4d14474c-c7da-4f25-9668-8ca7604d54de", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1ba7ee25-c0c1-49a6-8eb8-4c0900d1ce12", "old_session_id": "06dd9d06-d1aa-45b0-b1db-ce0d45d409c2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:06" }, { "isJwt": false, "opbrowserState": "0f3475ed-b05f-460b-b771-5953875830ca", "deletable": true, "dn": "jansId=b51ec14b-2b9a-4c5a-876f-793b4bac15ab,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:05", "creationDate": "2022-11-24T09:24:05", "ttl": 0, "sessionState": "09c4c56500ac6959db365ebdc712279388c2663c3e3f12614806297ab7863f15.8ea703ec-7593-42f3-9631-ee88bfdec7aa", "lastUsedAt": "2022-11-24T09:24:06", "permissionGrantedMap": { "permissionGranted": { "8460ac87-09b7-4abe-90c5-e4608597e860": true } }, "outsideSid": "b74330ed-ff14-4fd5-8ae5-f471ce4b5c96", "id": "b51ec14b-2b9a-4c5a-876f-793b4bac15ab", "state": "authenticated", "sessionAttributes": { "opbs": "0f3475ed-b05f-460b-b771-5953875830ca", "response_type": "code id_token", "session_id": "b51ec14b-2b9a-4c5a-876f-793b4bac15ab", "nonce": "5e259a24-04ea-4cc6-895b-84e0e141c466", "client_id": "8460ac87-09b7-4abe-90c5-e4608597e860", "response_mode": "jwt", "sid": "b74330ed-ff14-4fd5-8ae5-f471ce4b5c96", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1e5c81aa-5dc3-4beb-9214-3358e8afaf61", "old_session_id": "54344357-746d-471b-ad19-d35f0a6d6fbe" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:05" }, { "isJwt": false, "opbrowserState": "536bb026-f900-4bcb-870c-80bfba215fa2", "deletable": true, "dn": "jansId=5427e654-4c7c-4668-a2ec-1aa9343c62ac,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:05", "creationDate": "2022-11-24T09:24:04", "ttl": 0, "sessionState": "4078b7f382351b9677adccbddfcee669f33f4bb727ffa19e17b56289ad042b77.5a926167-be11-4ca3-887e-8e7647b057d4", "lastUsedAt": "2022-11-24T09:24:05", "permissionGrantedMap": { "permissionGranted": { "bc7e3433-3bdb-428e-888a-b9d7200a6672": true } }, "outsideSid": "c8210410-4d10-41da-93bc-4c4076e0681f", "id": "5427e654-4c7c-4668-a2ec-1aa9343c62ac", "state": "authenticated", "sessionAttributes": { "opbs": "536bb026-f900-4bcb-870c-80bfba215fa2", "response_type": "code", "session_id": "5427e654-4c7c-4668-a2ec-1aa9343c62ac", "client_id": "bc7e3433-3bdb-428e-888a-b9d7200a6672", "response_mode": "jwt", "sid": "c8210410-4d10-41da-93bc-4c4076e0681f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c9c5b19e-afbd-46fc-a910-f52a4a47d667", "old_session_id": "54b625b1-11c0-4c01-9556-5c52ccb9a9f9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:04" }, { "isJwt": false, "opbrowserState": "f9a34c34-cb2e-4852-bf69-8de0b918422b", "deletable": true, "dn": "jansId=50980387-77b8-4393-a02f-da8d7ad8c93b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:05", "creationDate": "2022-11-24T09:24:04", "ttl": 0, "sessionState": "827e0675baf364a70c3d67497f042ab3a903c2bb9be466776111f85e5231e7e6.f2637c89-d26b-4022-aa6b-de31791286d9", "lastUsedAt": "2022-11-24T09:24:05", "permissionGrantedMap": { "permissionGranted": { "f748d573-54ae-48f4-bcff-dd3190311e32": true } }, "outsideSid": "2bc675f7-2429-471c-bb50-2829f551b24c", "id": "50980387-77b8-4393-a02f-da8d7ad8c93b", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.BtcN_Lt2hsydJZsPj2qk4vs-i55X8e-A.JeFazt55sPuyjb7E.cdOew5uEq8iX9BfQDnOudzPUQY1Z7mQIZBWl3fa2i5OGlsnQdoLh-FjRvmsx5KL1SIw4FRKx2t59IfiRaGG0TUd6Aujo-Go3usgWhYEzY7uoWJpjnDMnb9sSeVmcaRd77QyFgzeIveRBXRL8Ua8hngWmHqun3Qr72L212Gr39rsvv1o97lX2Unumbr5RLdAiFWWO5IM_lX7dUF2Gpj5tMU_xIBnBpx9SIipANA-jHOgGZg-cep99BQz5dlun4eRhVdk0IWPPgALNlLgs30Cj0GPSuzKJiTy5vVfwO8yhk95OZKnPvm4ozstAaR-9mmAvEhHhLqWsTD9TrIxUacU9i0zY4_qAafg-I1WxzAiKWAPKEmCI8tnp9ZvahrNPYPEX3Mch91bMp9l_ytulbyBpetg7ct61raR444zmKcIk0PijHqZrl4odq5hjFapoLrhX6clI3WFtyfTOcpqTs2eBFvqSjFZ93rbHA4usA-1_w7lc7WaYr06lPnByEmW60STJUANp_0o8q08Tetgj3-Pp412QH2RqVCnZb9id3zLp9rOEurxISVi_E5I62T--0KkX2B8Q_umpjK6ku6Ma7gzTfYzlXPKPVBhA0IpU74Ty2b7ow5isgHQwUx_rqkz8gkiKtPsIZCujqccxrnCJ-GmQ6qgis1HwQtbN-CoKUEofi7rBBqnEl3oxdDpwTbBBqOgFz2TD1kbMHGMlihekbw6-NqoRkgOm4biZOc9VmE44jLKg5QTOkiWbhFQCrLs21MwHMb3Di_YqOsVvY9ov36ci5M0UhqO-6iqVOrahljDwHk4SkAFEF_OMKB7DBHKF39idlNFqJQbdBj2cF-tRFyZ3WyivMN2agK8vcTUyLrV_RF4lwc7aIXNoH6r1jw4pZL3_wqE.eSI0bVU4CifJzqMQBieR2g", "opbs": "f9a34c34-cb2e-4852-bf69-8de0b918422b", "response_type": "code token", "session_id": "50980387-77b8-4393-a02f-da8d7ad8c93b", "nonce": "6e6b477d-f3aa-4777-ae9e-a902c5bd79ed", "client_id": "f748d573-54ae-48f4-bcff-dd3190311e32", "response_mode": "jwt", "sid": "2bc675f7-2429-471c-bb50-2829f551b24c", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "43cbf440-7af8-4527-a890-32bdc2c99917", "old_session_id": "3de3130d-b73e-47b3-af86-285bd2f1f783" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:04" }, { "isJwt": false, "opbrowserState": "9c8ac03a-e2d4-49ce-a862-c522f1342751", "deletable": true, "dn": "jansId=997fda0a-3622-4548-aa78-e7e51c9a6f5b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:03", "creationDate": "2022-11-24T09:24:03", "ttl": 0, "sessionState": "22fe4b272d075abcabc153eb6143f6d61d14f0a36946cbeb93892d6170161269.c53d16d0-11b5-46a2-a6d9-055f6ac7f83e", "lastUsedAt": "2022-11-24T09:24:03", "permissionGrantedMap": { "permissionGranted": { "0d1ec151-9c0d-4e9b-ba46-a3a040a369b4": true } }, "outsideSid": "ee58f009-f3df-45b7-b6ed-bb484e1ade81", "id": "997fda0a-3622-4548-aa78-e7e51c9a6f5b", "state": "authenticated", "sessionAttributes": { "opbs": "9c8ac03a-e2d4-49ce-a862-c522f1342751", "response_type": "code", "session_id": "997fda0a-3622-4548-aa78-e7e51c9a6f5b", "client_id": "0d1ec151-9c0d-4e9b-ba46-a3a040a369b4", "response_mode": "jwt", "sid": "ee58f009-f3df-45b7-b6ed-bb484e1ade81", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "61bc44ee-c275-4906-a859-354a7b2f193f", "old_session_id": "d0622640-0393-4875-8d89-9bff4c73d180" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:03" }, { "isJwt": false, "opbrowserState": "0ebcaab6-0298-48ee-9c3b-b4e55cbd25f2", "deletable": true, "dn": "jansId=3be88698-ce8d-40fd-9b10-1968e0a521a8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:03", "creationDate": "2022-11-24T09:24:02", "ttl": 0, "sessionState": "a75506f3c815251bd37e018a518e8b601724cda96ebb779fd05b334a2b1f5c89.9a447cc7-af91-4e5e-a20a-033e8e8e5863", "lastUsedAt": "2022-11-24T09:24:03", "permissionGrantedMap": { "permissionGranted": { "589306a3-eb58-45d2-994d-00c39cd65c27": true } }, "outsideSid": "3ebcc7d9-6975-431d-abbe-74155ed6dde1", "id": "3be88698-ce8d-40fd-9b10-1968e0a521a8", "state": "authenticated", "sessionAttributes": { "opbs": "0ebcaab6-0298-48ee-9c3b-b4e55cbd25f2", "response_type": "code id_token token", "session_id": "3be88698-ce8d-40fd-9b10-1968e0a521a8", "nonce": "b205dd04-7e06-448a-8e0f-43bcb0eda306", "client_id": "589306a3-eb58-45d2-994d-00c39cd65c27", "response_mode": "jwt", "sid": "3ebcc7d9-6975-431d-abbe-74155ed6dde1", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "cf926fb1-d158-4e58-82d7-10f2bc3d9a46", "old_session_id": "60e4239b-b7e4-40cd-a2f7-8602d73a5c66" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:02" }, { "isJwt": false, "opbrowserState": "a3b304c0-8fe7-4229-b9d0-2c56b50d8fc3", "deletable": true, "dn": "jansId=937d8f94-1520-4d68-8b6d-6d8e3c0ed073,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:01", "creationDate": "2022-11-24T09:24:01", "ttl": 0, "sessionState": "703212d12b294b90362ac7be373ba0e70233a740e056b5fbeaa285c4277dace1.497ab765-c60c-43a6-847c-8fc947baa137", "lastUsedAt": "2022-11-24T09:24:02", "permissionGrantedMap": { "permissionGranted": { "228af15a-d1d2-4d9b-906a-e75ce88d553d": true } }, "outsideSid": "02ca828b-b0f8-47f5-afcf-f2f10cfb7710", "id": "937d8f94-1520-4d68-8b6d-6d8e3c0ed073", "state": "authenticated", "sessionAttributes": { "opbs": "a3b304c0-8fe7-4229-b9d0-2c56b50d8fc3", "response_type": "code id_token", "session_id": "937d8f94-1520-4d68-8b6d-6d8e3c0ed073", "nonce": "faca01aa-0edb-4725-8db4-dd98db9594c0", "client_id": "228af15a-d1d2-4d9b-906a-e75ce88d553d", "response_mode": "jwt", "sid": "02ca828b-b0f8-47f5-afcf-f2f10cfb7710", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5f177dc8-919c-44d3-b764-5003e89ea915", "old_session_id": "b78fa6d2-f335-45b6-8c1d-0fe78ff3deb9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:01" }, { "isJwt": false, "opbrowserState": "cb587cf6-5fcf-40de-bb69-187881ac62fc", "deletable": true, "dn": "jansId=b5870d5e-f856-4c43-ab36-02c68681e923,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:00", "creationDate": "2022-11-24T09:24:00", "ttl": 0, "sessionState": "015cb6572821e78cb96c0f3d78419d0332e9d8d1031673dbc8c88d44496a7b5e.62f76349-6d3d-4e07-beb8-707d1b95d7bb", "lastUsedAt": "2022-11-24T09:24:01", "permissionGrantedMap": { "permissionGranted": { "98f38b23-208a-403d-8b63-fe19c497840c": true } }, "outsideSid": "8a559789-cbd7-4c58-9a5f-14352b9da35b", "id": "b5870d5e-f856-4c43-ab36-02c68681e923", "state": "authenticated", "sessionAttributes": { "opbs": "cb587cf6-5fcf-40de-bb69-187881ac62fc", "response_type": "code id_token token", "session_id": "b5870d5e-f856-4c43-ab36-02c68681e923", "nonce": "52584272-ee4b-4ff2-a2e2-800cf44c2a18", "client_id": "98f38b23-208a-403d-8b63-fe19c497840c", "response_mode": "jwt", "sid": "8a559789-cbd7-4c58-9a5f-14352b9da35b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ec5197fb-8ed0-4509-bffd-74e660b30e86", "old_session_id": "32222493-d172-4d14-9c83-9e53895dcd32" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:00" }, { "isJwt": false, "opbrowserState": "68e76d36-97df-4227-9d2b-9e1a47385a4b", "deletable": true, "dn": "jansId=488d9272-4c84-4101-8b0e-089681cb1bd6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:00", "creationDate": "2022-11-24T09:24:00", "ttl": 0, "sessionState": "bf63fd76f4cdbc83e1e76dddbd2d001e7ee8691bc0222fce4771961fbb438a05.09a159b7-bbdc-4b08-962e-d8f699f10508", "lastUsedAt": "2022-11-24T09:24:01", "permissionGrantedMap": { "permissionGranted": { "9368c408-99a5-4332-9fce-9ddd2b5b8552": true } }, "outsideSid": "4a54c5fc-dc34-4eac-a749-79d418061d2f", "id": "488d9272-4c84-4101-8b0e-089681cb1bd6", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJkZTIyZDE2Mi03MmM3LTRlNGEtOThjYS1jMjk1MzlmMDM2ZTEiLAogICJub25jZSIgOiAiMDE1N2UzMDktZGEzYS00ZDljLTkyZDgtMWIzZGRjZmIxOTgwIiwKICAiY2xpZW50X2lkIiA6ICI5MzY4YzQwOC05OWE1LTQzMzItOWZjZS05ZGRkMmI1Yjg1NTIiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.MfwK1xhW8p6qEe1Xh88jC2DPWkncby68T9FBpslV7uuxp-KXfQuOBxFS5oHYMhI1eMiq7_fbLL3BmQ0XPI-AGmVRFNRq2ERWKlkjkUqN9T4z2fuWrYpaN-Y3YZmFcyPhpjnyBw6Qo7-ojRrLIpQ4jpF1VW2SCjmHBL0KCBmSW--3Uug_tmY7kgm_3uB29ZkhGGx8GVO53IOqGQacYDpTbaKIIE8_X3rO39aYGUUYkEhqNoBXGkVTOLfcv9pGJ6Aa3Tx6-H_KtUI6Tm1e_A2OmY0whKgepO0uuNfn9M_VvmGJArVIpw2dJt96NtuBRtNS4RDhtuSYBWcHy70whQxI8g", "opbs": "68e76d36-97df-4227-9d2b-9e1a47385a4b", "response_type": "code id_token token", "session_id": "488d9272-4c84-4101-8b0e-089681cb1bd6", "nonce": "0157e309-da3a-4d9c-92d8-1b3ddcfb1980", "client_id": "9368c408-99a5-4332-9fce-9ddd2b5b8552", "response_mode": "jwt", "sid": "4a54c5fc-dc34-4eac-a749-79d418061d2f", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "de22d162-72c7-4e4a-98ca-c29539f036e1", "old_session_id": "82e35601-2bfc-4f1d-b84e-237a309757a8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:24:00" }, { "isJwt": false, "opbrowserState": "0466623c-cabe-4b4f-883d-ffac2085b102", "deletable": true, "dn": "jansId=6fb0d3a4-3e11-4ab8-9935-55248daf7c39,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:00", "creationDate": "2022-11-24T09:23:59", "ttl": 0, "sessionState": "cedb2dac42e3ea4b3342c0b087d599d595c0aa5769ad9dc5363ed07651484b26.41457419-98c2-4d20-be7a-9fa8c8aea2d8", "lastUsedAt": "2022-11-24T09:24:00", "permissionGrantedMap": { "permissionGranted": { "45aa05db-ac3c-42da-83eb-194013834bfa": true } }, "outsideSid": "3a9adf25-8f0d-4f9d-a402-a80e556d07ec", "id": "6fb0d3a4-3e11-4ab8-9935-55248daf7c39", "state": "authenticated", "sessionAttributes": { "opbs": "0466623c-cabe-4b4f-883d-ffac2085b102", "response_type": "code id_token", "session_id": "6fb0d3a4-3e11-4ab8-9935-55248daf7c39", "nonce": "6eaa52c3-608c-456f-b34d-5f4036396438", "client_id": "45aa05db-ac3c-42da-83eb-194013834bfa", "response_mode": "jwt", "sid": "3a9adf25-8f0d-4f9d-a402-a80e556d07ec", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4b2d6ac6-c2bd-4048-9edd-9f570f830909", "old_session_id": "3731d824-2bfc-4480-907d-c87d4570baff" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:59" }, { "isJwt": false, "opbrowserState": "e08687f7-d6bb-4c84-b1b3-49baf41a22c4", "deletable": true, "dn": "jansId=98f5be9a-a188-41d2-a4c5-4f3fbaede5a7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:24:00", "creationDate": "2022-11-24T09:23:59", "ttl": 0, "sessionState": "460e0d7f2548089789d588002e1f2665b37907211620131caeb7bd98d1debea0.e1d2a6b9-ab57-4c70-a554-54d845612944", "lastUsedAt": "2022-11-24T09:24:00", "permissionGrantedMap": { "permissionGranted": { "411dfc5a-00bd-4945-b122-7b113602a1d4": true } }, "outsideSid": "22c52f7a-7490-4151-8c2f-a127f3c02424", "id": "98f5be9a-a188-41d2-a4c5-4f3fbaede5a7", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjFkZGZmZDljLTcxM2UtNDhkZS04YjE2LTg3NGVkZGJmYzJkYyIsCiAgImNsaWVudF9pZCIgOiAiNDExZGZjNWEtMDBiZC00OTQ1LWIxMjItN2IxMTM2MDJhMWQ0IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiand0Igp9.GhI-q2WGT-CcbztCIdLSd7jNBOj7puT8mZuGoDb4hu_K4vITMzTPRUJ7DfmiFC0mDSj5_S4QkbSHmWxpqPqG-JuFmx4vVYHa5c_6-oTPiq9Gmqm0_c4eeW71fR0tH1-o2U1rZLDTZB1DQtJy_W_4QN_ND4SY1U-OJY-8qXS5alaIbvdKbeXhThHAikyrJS49EY2QlCgLlnmTO143IJxk3EMC3rocCf_Ngq9wwlQaH0vSCHHR4k4ycQM9l2UHJBM8saDyUyJEBkXJfbnn7dOJRIJGM9MWGaVEJMLa2pAWLNDHNTxiihDGpBKBI-kBmATYe9gfDu0Sn-aIQSlpUdigUw", "opbs": "e08687f7-d6bb-4c84-b1b3-49baf41a22c4", "response_type": "code", "session_id": "98f5be9a-a188-41d2-a4c5-4f3fbaede5a7", "client_id": "411dfc5a-00bd-4945-b122-7b113602a1d4", "response_mode": "jwt", "sid": "22c52f7a-7490-4151-8c2f-a127f3c02424", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1ddffd9c-713e-48de-8b16-874eddbfc2dc", "old_session_id": "46c2995a-5dab-405e-a42d-9f52a46b64bf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:59" }, { "isJwt": false, "opbrowserState": "405b55aa-06f6-445f-ad4d-6743f779a78d", "deletable": true, "dn": "jansId=3b0da5a1-ca8b-49de-b88a-05c13d63a9e6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:59", "creationDate": "2022-11-24T09:23:59", "ttl": 0, "sessionState": "c19a8f57507906b689c3e42257ad308fa66e792fac311a1354d7d51b40434e3d.934bb159-13b1-43bc-a34b-2d25943bf059", "lastUsedAt": "2022-11-24T09:23:59", "permissionGrantedMap": { "permissionGranted": { "52159310-bc2b-47e3-b1d9-8ccc6738e2ce": true } }, "outsideSid": "918d34e5-8a9a-4473-8a64-810c4c97bc88", "id": "3b0da5a1-ca8b-49de-b88a-05c13d63a9e6", "state": "authenticated", "sessionAttributes": { "opbs": "405b55aa-06f6-445f-ad4d-6743f779a78d", "response_type": "code id_token token", "session_id": "3b0da5a1-ca8b-49de-b88a-05c13d63a9e6", "nonce": "4b522fc2-46ae-4053-8807-5f5b03eca8c4", "client_id": "52159310-bc2b-47e3-b1d9-8ccc6738e2ce", "response_mode": "jwt", "sid": "918d34e5-8a9a-4473-8a64-810c4c97bc88", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a0826eef-a6ef-4e2b-97b8-28b9bf515dfd", "old_session_id": "161d1558-b311-4fd8-a953-455bcac973ea" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:59" }, { "isJwt": false, "opbrowserState": "2d6410dd-b66f-40ab-a9cd-7a6687b9f5e3", "deletable": true, "dn": "jansId=78757acb-5f68-4727-9b80-6211c733e48b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:59", "creationDate": "2022-11-24T09:23:58", "ttl": 0, "sessionState": "279671801e41039f0bed8e6466c9c2ec0beeac30989b918dd6843e6c561efea5.1308f637-e58e-4f08-b04c-4859f2134f31", "lastUsedAt": "2022-11-24T09:23:59", "permissionGrantedMap": { "permissionGranted": { "f751a4c0-2a50-467a-bfbd-8d04b504c12b": true } }, "outsideSid": "0c26e831-454c-4d88-ad35-bafd9a68414d", "id": "78757acb-5f68-4727-9b80-6211c733e48b", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJmMGFjZWNlMC0xYzBlLTQxNjktYTZhNy01MTBkM2E2NWExZmEiLAogICJub25jZSIgOiAiODk1YzVjNDEtMTVkZi00YTA1LThjYzUtMjJiMzhiYjUxOTg5IiwKICAiY2xpZW50X2lkIiA6ICJmNzUxYTRjMC0yYTUwLTQ2N2EtYmZiZC04ZDA0YjUwNGMxMmIiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.bKw9egpVpbd368lD5_TQWSYmQuYzH7VJnAXUKZNgvX_m7xWzVIX_EUYkgZ9TQ1ISxLJ8KlXsFn6lHtnztv4Kr1h8xshg2a2J7z120Q39WpERpzCLpNcHkXuohjm_OndtN0nYrpQ9mi8CJHZeaf3W72RV9pOFfqMrXS1bvMjchFm3byAy1M7XGxmvyg28L8B5BOz3g9wyN-ujuTFXeg1QZg5bih6V8QA35kDE6PRFJr69wM-X0tDYvjTSOYGPqINyXAVXi-djBo-hWtNW9NY-wRe7uUp0XXozSppQCfxtAlQT0vOaFIuUQVoti7nNo8rdVidsftk90Q6n-IepVNbcrQ", "opbs": "2d6410dd-b66f-40ab-a9cd-7a6687b9f5e3", "response_type": "code id_token token", "session_id": "78757acb-5f68-4727-9b80-6211c733e48b", "nonce": "895c5c41-15df-4a05-8cc5-22b38bb51989", "client_id": "f751a4c0-2a50-467a-bfbd-8d04b504c12b", "response_mode": "jwt", "sid": "0c26e831-454c-4d88-ad35-bafd9a68414d", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f0acece0-1c0e-4169-a6a7-510d3a65a1fa", "old_session_id": "03ca96bf-9d33-45aa-90f1-806c494caa90" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:58" }, { "isJwt": false, "opbrowserState": "163fade5-f234-404a-9030-93379e2728fa", "deletable": true, "dn": "jansId=118d258c-8b9e-49c7-87e8-cb8b596452ef,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:58", "creationDate": "2022-11-24T09:23:58", "ttl": 0, "sessionState": "5018392d11109cf2f5dfc65b79ee0834ca69a56e38d39ab495cc1e8837474a9e.58a05438-2354-4a7e-b711-9f01881b0ff0", "lastUsedAt": "2022-11-24T09:23:58", "permissionGrantedMap": { "permissionGranted": { "c6ec269e-63c2-4105-a273-e12a4176a64c": true } }, "outsideSid": "83b9a7e4-deed-41b7-93e3-dafcb6a74bbb", "id": "118d258c-8b9e-49c7-87e8-cb8b596452ef", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogImJmMGNkODZiLTI4MzktNGRmYy05MGNmLTc1NTAyMGY1ZDAwMSIsCiAgImNsaWVudF9pZCIgOiAiYzZlYzI2OWUtNjNjMi00MTA1LWEyNzMtZTEyYTQxNzZhNjRjIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiand0Igp9.JrIU2x09kkMQiUEBhVuOtFf6owxpeajIuumUq-_INBnwbc80wbEEKOHbBes8U324ubvphTg3TdnxfCFQVIWDInZ563yvDkF6E4P3b9O7MEoi9NCgTtUDHObNqrwQQl0yOZ3M-5RD4mXAzgYYduXblElaxia9XkGRHAIWTRmIwvJTIA9Cr2ndsmrNEib4rZX9HNkZoXUnF0DmJ7-BYSaDhHzI6l5GMSQZCgKbAB8cegV41FehR0sWaMFkK7HXdX-6bYzMJ0A5rPjvfWWkahqcGCKydZ_YHjVT1kguKOseo9_LkZ6OIIpZimVDqihjbHS9G2IoLFScFsxaAIMj_GUUmA", "opbs": "163fade5-f234-404a-9030-93379e2728fa", "response_type": "code", "session_id": "118d258c-8b9e-49c7-87e8-cb8b596452ef", "client_id": "c6ec269e-63c2-4105-a273-e12a4176a64c", "response_mode": "jwt", "sid": "83b9a7e4-deed-41b7-93e3-dafcb6a74bbb", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "bf0cd86b-2839-4dfc-90cf-755020f5d001", "old_session_id": "11815e93-a26e-4333-9629-70525892fd0f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:58" }, { "isJwt": false, "opbrowserState": "a5d49c97-1b31-4051-b534-1e01b6c1e915", "deletable": true, "dn": "jansId=53192ab7-2251-407a-8688-75ff9eca7635,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:58", "creationDate": "2022-11-24T09:23:58", "ttl": 0, "sessionState": "37b9663711b8c03054732d4fb1f1166163c8d92e4b671e378ac11b1a94aac070.cbe98cfe-ce41-4e6b-b396-4f94502fb4a1", "lastUsedAt": "2022-11-24T09:23:59", "permissionGrantedMap": { "permissionGranted": { "3520900e-bf86-44cf-8129-031db1a1591e": true } }, "outsideSid": "363a0472-6bba-403f-abb8-c9fe5ac87370", "id": "53192ab7-2251-407a-8688-75ff9eca7635", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI5YWZmMjE1Yi00ZTdkLTQyZWQtYmUwYy04MDRiYWRmMWE3NTQiLAogICJub25jZSIgOiAiZDUwMjE3NTktZmE5MC00ZjgzLTllMDEtODI1NjE5ZWY5NDVmIiwKICAiY2xpZW50X2lkIiA6ICIzNTIwOTAwZS1iZjg2LTQ0Y2YtODEyOS0wMzFkYjFhMTU5MWUiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.jH98rKvt0XBBMeuL4_IiH35IUA7cMozxhcV9EgQ-ntgZJ0ayuBKdfrtxEmMDCa1RnYEuZvEe0UhFlhvF1RA3Q2OrmzqNRjh96pXMwpb9TCZFPey8U2HVnmGORgVAD00SOaoYeBlzm-_2mVV3DhudAkXtoJ_O5PzzOtiUun_wfg2IrtCOgjNTGS2Lqea--jblm6qLj97HZDnQ10qL_rUhIjUgp_H7KCcOz_qeM2A5Rxr1Njrx4Pe2sASdB6KsiWJEa0jwnU8R2-hCa_cJ4lglrktSMuZAffvizzFz3EGlMwvrHx8-zzJ6bjRKnTRUze25bY5_iaJ_3B6r8BygweqqLQ", "opbs": "a5d49c97-1b31-4051-b534-1e01b6c1e915", "response_type": "code id_token", "session_id": "53192ab7-2251-407a-8688-75ff9eca7635", "nonce": "d5021759-fa90-4f83-9e01-825619ef945f", "client_id": "3520900e-bf86-44cf-8129-031db1a1591e", "response_mode": "jwt", "sid": "363a0472-6bba-403f-abb8-c9fe5ac87370", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9aff215b-4e7d-42ed-be0c-804badf1a754", "old_session_id": "ea043a61-791e-40d6-a4bf-c049529b8cb9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:58" }, { "isJwt": false, "opbrowserState": "1c7264b2-b3c3-4cf8-a1ee-a0fa80c01fd8", "deletable": true, "dn": "jansId=8789d843-bb0e-477b-80cf-baaf6c64b3f4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:58", "creationDate": "2022-11-24T09:23:57", "ttl": 0, "sessionState": "51bb44b42f45d66e530a071bc0ad07cd336466f55a2e6ca234ae65e2b2d4d35f.82c3d8df-80b9-4ad3-8f29-aa947ada31da", "lastUsedAt": "2022-11-24T09:23:58", "permissionGrantedMap": { "permissionGranted": { "473ee421-db0e-4969-9bd3-83ba24246cc6": true } }, "outsideSid": "358ec8e1-2cc8-4ece-9964-2779c1c5c8b7", "id": "8789d843-bb0e-477b-80cf-baaf6c64b3f4", "state": "authenticated", "sessionAttributes": { "opbs": "1c7264b2-b3c3-4cf8-a1ee-a0fa80c01fd8", "response_type": "code id_token token", "session_id": "8789d843-bb0e-477b-80cf-baaf6c64b3f4", "nonce": "420d9feb-47eb-47e9-a16c-0e0094c32c87", "client_id": "473ee421-db0e-4969-9bd3-83ba24246cc6", "response_mode": "jwt", "sid": "358ec8e1-2cc8-4ece-9964-2779c1c5c8b7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "fef18ad1-7dd4-4b15-bea0-5dec0a347326", "old_session_id": "1246a6fd-a725-4c11-9aa0-9f34bf260d56" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:57" }, { "isJwt": false, "opbrowserState": "083bc816-ed4e-4fa1-81fc-8d316128157a", "deletable": true, "dn": "jansId=881a3619-63f1-40ff-ae0b-a2b4b0ccee35,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:57", "creationDate": "2022-11-24T09:23:57", "ttl": 0, "sessionState": "b4cfd8c37b4e2630ee3040c7d8c486f143fe9950b2af7ddcca7f9e6a062b5b25.018db6af-59e9-42e1-af37-9d51eeaa09bc", "lastUsedAt": "2022-11-24T09:23:58", "permissionGrantedMap": { "permissionGranted": { "71f7a520-54f6-454b-99e5-b2f72b0ffb07": true } }, "outsideSid": "eac0c1e5-c648-42ef-8735-dda4944393d8", "id": "881a3619-63f1-40ff-ae0b-a2b4b0ccee35", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI0NWNjYjk1NS0xMjMyLTRhY2ItOGI4Ni01NjY5ZDhmMTIwNmQiLAogICJub25jZSIgOiAiMzNhNzU0OWYtYzU4NS00OTA0LWFjMzQtMWRjOGFhOTZmZjA4IiwKICAiY2xpZW50X2lkIiA6ICI3MWY3YTUyMC01NGY2LTQ1NGItOTllNS1iMmY3MmIwZmZiMDciLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.WuMAMLjW6Rv4xvn1ETsVoU519G9ZFX_LelFzYvKlNoD1S5FZk4HgPZFIEHK5eQRcPazk071fMZEkYOCy8C_xYg_b0X2tBVUEVP6ClltBy_vMK0dJFu7yvKJQUr3eOL7kYx4CrB74zqdB7jAgX4gZs8iKZgK6UgQm_--fzGHMvMSpb_kyTM-TfHCvTdhb8r-MhM-EC2BUufHr6idXcdS-X-lQz3ZPJU9HZFATjbYkwn65dSX2SZLAu1SJ9eGmowaRek2pQZ8tOxBODl0Xd412TzETiF8X0kaFkI_ExxfVft1b7F1rCgwJj0YUut08OkrqfuaBoCm96-2yI3897ulyMg", "opbs": "083bc816-ed4e-4fa1-81fc-8d316128157a", "response_type": "code id_token token", "session_id": "881a3619-63f1-40ff-ae0b-a2b4b0ccee35", "nonce": "33a7549f-c585-4904-ac34-1dc8aa96ff08", "client_id": "71f7a520-54f6-454b-99e5-b2f72b0ffb07", "response_mode": "jwt", "sid": "eac0c1e5-c648-42ef-8735-dda4944393d8", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "45ccb955-1232-4acb-8b86-5669d8f1206d", "old_session_id": "e93b6706-ac06-4e67-8430-f8ac56719e4b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:57" }, { "isJwt": false, "opbrowserState": "8b0cffea-cc3a-402c-9b02-8fe849abe41a", "deletable": true, "dn": "jansId=5277cfce-6762-4953-80d5-fed2bb70c1c9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:57", "creationDate": "2022-11-24T09:23:56", "ttl": 0, "sessionState": "358ae42624a14e736ec5583b21abb02ef37b09b90a856894798c462e6bceac26.6d5ab55c-7642-4d19-a078-54df70fda153", "lastUsedAt": "2022-11-24T09:23:57", "permissionGrantedMap": { "permissionGranted": { "cc668029-4cee-488c-905f-8a5d6f2f1c27": true } }, "outsideSid": "3bb58f1b-94e3-4ad9-8844-8cd3af0f550a", "id": "5277cfce-6762-4953-80d5-fed2bb70c1c9", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjBmOGE3NzVlLTRlZjUtNDEwMS04MGM3LTdkYzk1YTA5YTUzNCIsCiAgImNsaWVudF9pZCIgOiAiY2M2NjgwMjktNGNlZS00ODhjLTkwNWYtOGE1ZDZmMmYxYzI3IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiand0Igp9.Ue9nZWO2rjHOUy9Sea-TWfEShE2Skj3ipnEdOiDFJmS60WaTIpR-KBakC88b-FJxpSGXr39g0A4hz66cRTBrMvkIWksC2B0R32bMq1A7oFN5TAIYZqTZd57WhsY_TzsC6TwhTiyKnPzu5Jh-aP8lvWUFbtc6tTwvynxTj5wle6986fPyR0Nw6b2LrLwT4mBwU4C9Mjjoitgn3OLsvppGwsOlc9nKf4379fuukqBbYXw68jWxR--y7QNZ0J-nh4UDFxRTVLPzTbpV6nviIn3EOmgc6VK2Pg4IHbhKGtdEFLB5E28TpozClkaqgWlPqH-7yGrKxj8joqrixMapcpaqEg", "opbs": "8b0cffea-cc3a-402c-9b02-8fe849abe41a", "response_type": "code", "session_id": "5277cfce-6762-4953-80d5-fed2bb70c1c9", "client_id": "cc668029-4cee-488c-905f-8a5d6f2f1c27", "response_mode": "jwt", "sid": "3bb58f1b-94e3-4ad9-8844-8cd3af0f550a", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0f8a775e-4ef5-4101-80c7-7dc95a09a534", "old_session_id": "6d913cf0-89f3-4ccc-ad80-84e3a7061f1b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:56" }, { "isJwt": false, "opbrowserState": "1d621ac8-5766-43d5-bf93-608ac1380077", "deletable": true, "dn": "jansId=9834c601-3a0f-4423-a58b-a96e39894385,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:56", "creationDate": "2022-11-24T09:23:56", "ttl": 0, "sessionState": "592069ff979c8d02f867e69cfb1740677ff0d3634448344da50d5b6c4bbf2c54.05195894-56d5-4acd-be26-9d553231c5f7", "lastUsedAt": "2022-11-24T09:23:56", "permissionGrantedMap": { "permissionGranted": { "059c9394-871a-4c03-b20a-b9418b1957fe": true } }, "outsideSid": "72d7fcdc-5958-403f-9060-219ae88818bd", "id": "9834c601-3a0f-4423-a58b-a96e39894385", "state": "authenticated", "sessionAttributes": { "opbs": "1d621ac8-5766-43d5-bf93-608ac1380077", "response_type": "code id_token token", "session_id": "9834c601-3a0f-4423-a58b-a96e39894385", "nonce": "5131ca3c-ffb4-4060-b47b-53eadecbfc2d", "client_id": "059c9394-871a-4c03-b20a-b9418b1957fe", "response_mode": "jwt", "sid": "72d7fcdc-5958-403f-9060-219ae88818bd", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b2d49d60-ccc6-4c81-bf58-5b47726608ec", "old_session_id": "ce383953-0d80-45dd-9133-0f28d65a0660" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:56" }, { "isJwt": false, "opbrowserState": "5cd1b1a3-7995-4d10-b6ac-466013ca4932", "deletable": true, "dn": "jansId=53528d59-e029-4f45-87d3-4d8e9c65ec93,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:55", "creationDate": "2022-11-24T09:23:55", "ttl": 0, "sessionState": "5ec2ad9dd5001a6d76ee46ba71b86794c61d663d52a31a3554a4802e8c48c85e.10e4f84b-a700-4efd-bf5f-5caa555e63b3", "lastUsedAt": "2022-11-24T09:23:56", "permissionGrantedMap": { "permissionGranted": { "752c9553-fc31-4864-84a7-b665fdb65a59": true } }, "outsideSid": "a588cf93-d512-4188-992f-bf87d1515f18", "id": "53528d59-e029-4f45-87d3-4d8e9c65ec93", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIxMTQ3Y2M4Ni1hNWVkLTRkMGEtYTQyZS02MWJkODA3ZWZhM2YiLAogICJub25jZSIgOiAiNWY0YzVkZTgtZWE5YS00NmQ3LTlmOTgtZmIwMTFjNGUzMmU4IiwKICAiY2xpZW50X2lkIiA6ICI3NTJjOTU1My1mYzMxLTQ4NjQtODRhNy1iNjY1ZmRiNjVhNTkiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.NRfque_nFxDLKmZmPTOVCTyVCpVgX_nkOce0SJanj6i7yTXvHm57uII_g3vdi6JNeYZ9VyDWdb-o8KQXcYl_gvebHRJzjLlSvaIliN65aKApYOB24P2m7H4RdguOqWWdHCdC15o2DUNflsPDeYlkKnohtAcjgxgPp2IfRJg3E6-NkZyNgCEIsvIIacfZlThWMp1lmIMeAHEKI63N70dUwKscTxCoMUDZStpHw3x6P_58LtSyVq2wRlS8d8UvNF-gZhyv9nrbUgntV0tu_xmeW93ExuU5PXWsv_EHvqS9i8MYKyXIHuAAwm5x-RUV4Ihbv-6D3epL_Hkf3j7E7zIdXw", "opbs": "5cd1b1a3-7995-4d10-b6ac-466013ca4932", "response_type": "code id_token token", "session_id": "53528d59-e029-4f45-87d3-4d8e9c65ec93", "nonce": "5f4c5de8-ea9a-46d7-9f98-fb011c4e32e8", "client_id": "752c9553-fc31-4864-84a7-b665fdb65a59", "response_mode": "jwt", "sid": "a588cf93-d512-4188-992f-bf87d1515f18", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1147cc86-a5ed-4d0a-a42e-61bd807efa3f", "old_session_id": "d901cb76-9e4c-47fc-a3c1-7ac4435f9234" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:55" }, { "isJwt": false, "opbrowserState": "fb5394eb-d905-4fa1-abcd-547cc4c45e10", "deletable": true, "dn": "jansId=760e6673-2447-4f8f-b897-2d572290e498,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:55", "creationDate": "2022-11-24T09:23:54", "ttl": 0, "sessionState": "fda26c411f7200887a3458d86a4f684681a9b0e6923a3fa5409edda1ea5f131e.990856f4-59e1-4ca7-9bb8-07c0b9347eca", "lastUsedAt": "2022-11-24T09:23:56", "permissionGrantedMap": { "permissionGranted": { "a9fbd950-c580-4125-b127-a46bcdd70de8": true } }, "outsideSid": "8f0c31fe-7c56-4059-ad3b-50aa6dff00e9", "id": "760e6673-2447-4f8f-b897-2d572290e498", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI1NzBmOGUzYi03NDY1LTQ0YzEtYTBmOS1lNmRhY2MxZjI3YmEiLAogICJub25jZSIgOiAiNTE0ZDRhZjMtOGQyOC00ZDY2LTkwMTgtY2RkMTc3NmVmZDA4IiwKICAiY2xpZW50X2lkIiA6ICJhOWZiZDk1MC1jNTgwLTQxMjUtYjEyNy1hNDZiY2RkNzBkZTgiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.K1WWSXSjw4X575j49wV4G05gGL4jQyq6KpcXkfMAuqOwlkjBtbLPyqJ6QX2cq5j4QVlQArG9gNvEoQWbCrdgisjvHotS2iBwXHAnsPqnBQpsI2OVczFHR_JZnvXpXYlCtUjBgFi8B-YioFFNOs8GAgsvrkzjuWgxaWztog_iDmipmpn9xTqVd4dSDQiZZcspLFewMNFVc1zkZh7FI_ZIzylX-SfNXzEBIkzCbMOKDWxDxOpu8jwz2VqLFtghrHBB1SMZTxGSD9sYixYPDuw5E2NGaHCaCv0OBess7jwaLCRbngqjCHuFOq0l5113u9E8guqygdM0qoQJr7GL32BXvw", "opbs": "fb5394eb-d905-4fa1-abcd-547cc4c45e10", "response_type": "code id_token", "session_id": "760e6673-2447-4f8f-b897-2d572290e498", "nonce": "514d4af3-8d28-4d66-9018-cdd1776efd08", "client_id": "a9fbd950-c580-4125-b127-a46bcdd70de8", "response_mode": "jwt", "sid": "8f0c31fe-7c56-4059-ad3b-50aa6dff00e9", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "570f8e3b-7465-44c1-a0f9-e6dacc1f27ba", "old_session_id": "95e9ccaa-bd60-4143-adae-87942447ca05" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:54" }, { "isJwt": false, "opbrowserState": "0a6e590a-fe7d-4d02-91f6-6a64e2254777", "deletable": true, "dn": "jansId=24a0c6e5-3904-4395-9d97-72fa6ec78c82,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:55", "creationDate": "2022-11-24T09:23:54", "ttl": 0, "sessionState": "c753f190973cb962ab8fde2902ce9c215c52427d7817df273bb3d95d0b665a06.18d2e874-d5ac-49a1-835c-eb0d64a5ee09", "lastUsedAt": "2022-11-24T09:23:56", "permissionGrantedMap": { "permissionGranted": { "71f1ea47-680b-4bae-833e-63777173eceb": true } }, "outsideSid": "ed10c453-9c5e-43ea-b035-bc473f2af56c", "id": "24a0c6e5-3904-4395-9d97-72fa6ec78c82", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiI0Y2E3NjMyMi1mY2ZkLTQyNWQtOTc0ZS0zMjBlNTZmM2U2YjFfZW5jX3JzYS1vYWVwIiwidHlwIjoiand0IiwiZW5jIjoiQTI1NkdDTSIsImFsZyI6IlJTQS1PQUVQIn0.HKzrdkkchHBuoygxol6AO9R1i1R_JHSYr5GVdQ4dCqvC3bXs4iEDnr5rI1az-7Onqsz10BVE8KittOM7wx4Xe_kTZs2QLXFmug9kQJhgXIzj-QnUvQUJIC25AyfTNyPM1pOa1uU4kps4P6k0ePzBFpQL92b2bxQhRwJS07xwhTsHyOUiFbrp-Ii_L4Dop6dLlOmnqJJoLgNmgUZR6IeUBVhwKPUJz2xkqrBNFjsBOOjqZtJVmWe8TRnyCVhDZvy3UzWWk0ulUpGIGq4lqW60PcpR2IbGTB8tB2iDIwxGcaZnO1KBJI422pcu1Hlazx9hq7xdzxxEdW36t5z4p4hMiQ.M0e6SFGHKbZ1y2ir.ryI1OwFVrXWvvnBd_SF-7J8oDJr19DiB2_GivsrDpUEpup1ZfHSynsXyer39wos11I1Expop9Eu7tLEAqxSR0Vmh9cs0Qfbg5nCYClZfCM-kkPT4caqif6-tCUsPTWgbNdmpJ_l-DogUA4UgBAqLG2_zsUpnpuvZtVjzD3bY9pnSc58hTb6Q2XAlID8tYZgjcws3gO6LsoelY9g4NRW3jBfT2pCZavCvRPIYN6ahY0sSB9V83nJNxfcrSozlNBemRGJZ_9K8s_R7xSohJYwYn3UmtGgOSd7Dyd0yPhPByNX2IyYTFLnZpdKhLxmQetp2ZlPtsLJKitSdGg-h3b8r36iaQJKjrcivctKbRmU15wQZRcK1RzDIuLCA_Bc6x0C7xTdiUFuTG-iKfMxBXr6awO5YcRJW6uIzltoZlC0Z5dT-ZIhYEwd68gCtw1TMdHE8DrjSUA-fmgWd398-Gq0Ot8-lE9tBlYgxQu_kxd73A9SXujOatQ5xC1YxSAarlyOrp30JttlaQFJ68Bq_my1JB6giA-iuhgAsfGNsxXeWuGDoICo15llFaAeeJxlxra2V75wKI4xzz55DcSEIVu7BKtD9utgZHmJ6yiPVCwuPMtRPyX2NKz1z4vUVCp1AFU6uYPoUsoGFCSQbOMJPUDjXeGB1ct5rO3QRftYWo7ksgB63AfgeoLjooW8za-msepThCEp6ZMr8auOF5_pC46-gg_3wZpCPAb6mGAtb75EH5PeIIEt5uyFqKWqwKGcb0uVIqqkw6ptwtWImcz_UaYrdvHAl8dKcXyK1rBuhkZ1tDb_yg7l-mvOIUc8uC8DPHqgbTEhydSe_gS8HOqnJu3Bz3cZkExn7aaHvJfOIJT6EBnylbB93eroR5gn5ampN9C4E9jGGDt93fTaG2QT1lABnCg.ucyhvB-eR-Q5Ri4N8DfPNw", "opbs": "0a6e590a-fe7d-4d02-91f6-6a64e2254777", "response_type": "code id_token token", "session_id": "24a0c6e5-3904-4395-9d97-72fa6ec78c82", "nonce": "a06bf5d3-b9f4-4112-9d87-d98d07b6997d", "client_id": "71f1ea47-680b-4bae-833e-63777173eceb", "response_mode": "jwt", "sid": "ed10c453-9c5e-43ea-b035-bc473f2af56c", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0005037c-c1bf-4a97-85b3-9180c5878395", "old_session_id": "655a32ba-4759-4510-95ac-96d3b5ee49c2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:54" }, { "isJwt": false, "opbrowserState": "f4714324-15dc-43be-a656-b8254a02944a", "deletable": true, "dn": "jansId=8c5b9c7e-24e1-4d31-8693-cde2ef5f3d6f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:54", "creationDate": "2022-11-24T09:23:54", "ttl": 0, "sessionState": "4795ccb4b34994ff97a3b78ebc813d33d1686feacf7d6a1d060d1ffbd35e2ea1.52a126ee-2156-475e-bbe2-dc7f589c9071", "lastUsedAt": "2022-11-24T09:23:54", "permissionGrantedMap": { "permissionGranted": { "bb9c02fb-2b18-4386-9fb1-7906b2edbbb2": true } }, "outsideSid": "2f26bcc6-c2d0-4fb1-a726-c3101c6deb8b", "id": "8c5b9c7e-24e1-4d31-8693-cde2ef5f3d6f", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjRlMzI1OGFkLTNiMWYtNDBmMC05OWM3LTgwYmEwYTA4OGNhNiIsCiAgImNsaWVudF9pZCIgOiAiYmI5YzAyZmItMmIxOC00Mzg2LTlmYjEtNzkwNmIyZWRiYmIyIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiand0Igp9.vuYn7OG43mJPnben00c835td77kCVW51qI2Iy_gLqehzSocuCb-gUDsBjAYz0BpYSRlmQgVVNdKvy6yl5uXi2aoSz-e-NF3xJ8KZ1xE9ij-RVNuyZby5vOnn8i9xp9sR-ZQ8HHUCCpHT_MIOYESnrY3gjb9kBIPWdin0wzsWksV-dXaU7UjQ5xqVBtrecoQx3_4jQ0oGgp_Lx4cDvr-fI0PN2UtwIgYxmJnR2Rgm1KfdXo_jr7toZIgZyJB5ruOwVWzxlRXw4cVJGszDpPWGgwjnPhtB8otN7m3M2th2yMntVCFWMZvpRRyVfuikTGe1i4cFgbOI_r7bepjs2CqEEA", "opbs": "f4714324-15dc-43be-a656-b8254a02944a", "response_type": "code", "session_id": "8c5b9c7e-24e1-4d31-8693-cde2ef5f3d6f", "client_id": "bb9c02fb-2b18-4386-9fb1-7906b2edbbb2", "response_mode": "jwt", "sid": "2f26bcc6-c2d0-4fb1-a726-c3101c6deb8b", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4e3258ad-3b1f-40f0-99c7-80ba0a088ca6", "old_session_id": "4e775438-3a7f-4fb3-a3cf-c415cd2dfe84" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:54" }, { "isJwt": false, "opbrowserState": "8893dec5-916a-435e-81db-750822c3c8bf", "deletable": true, "dn": "jansId=22745955-e5ea-40c9-979e-45516185fa66,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:54", "creationDate": "2022-11-24T09:23:53", "ttl": 0, "sessionState": "fd53db3e24ff923031e639bd6aba69d0310e1465bb65c0e50f455453e0d71ff9.77b1e036-40c3-4545-9d8e-60f31af65dea", "lastUsedAt": "2022-11-24T09:23:54", "permissionGrantedMap": { "permissionGranted": { "d82dbd07-76f1-4eee-96f2-99d1247b6aa9": true } }, "outsideSid": "38c7e026-38cb-41e7-b1fb-7819daada88a", "id": "22745955-e5ea-40c9-979e-45516185fa66", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIwOGU1NmVhOS04NDJiLTQ3Y2QtYmI5MC0zODZmMDY4MjYyN2MiLAogICJub25jZSIgOiAiZjI2Yjc1NjQtZGE0Ni00OGNiLWFkYjctNzM0ODcyMWFkMWRkIiwKICAiY2xpZW50X2lkIiA6ICJkODJkYmQwNy03NmYxLTRlZWUtOTZmMi05OWQxMjQ3YjZhYTkiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.ChWCtCLx0nJhYo7APIeac8eRSc4hyu8aF84Y4HfkU39xBVRvY8WT22f7euLoMeeWO3Muu0kAkhGcHPM_HIah2tKKas-g-jLhyxuGeOyR_1mVflr7tJXFbanVdFU3dsc58JU8KdZZogbjut1-91152jXKe8K0kxdv2jnQy9WnHppEGon4k8hz3Z94TnD_LJEzyDgpVU4yJmQyimYJMX1cM-QXRo1rmjqVEAYzViZueQay8mVaCh0YN5TyuoDf-Ses-pCqt7WFna6EePe7nrPW7NPtK4zbAhccynn5U95w2C_WopV7Y_A5pWaMI1B0tuKzq0oN2WGxvIiaNc06woNyzQ", "opbs": "8893dec5-916a-435e-81db-750822c3c8bf", "response_type": "code id_token token", "session_id": "22745955-e5ea-40c9-979e-45516185fa66", "nonce": "f26b7564-da46-48cb-adb7-7348721ad1dd", "client_id": "d82dbd07-76f1-4eee-96f2-99d1247b6aa9", "response_mode": "jwt", "sid": "38c7e026-38cb-41e7-b1fb-7819daada88a", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "08e56ea9-842b-47cd-bb90-386f0682627c", "old_session_id": "1622a3cc-cafd-482f-9a9b-002590a70b90" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:53" }, { "isJwt": false, "opbrowserState": "54a986e0-7a2b-4bd4-b2c8-9d726f8563a2", "deletable": true, "dn": "jansId=41a06c74-09b0-458a-a675-0573fdf4cda7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:53", "creationDate": "2022-11-24T09:23:52", "ttl": 0, "sessionState": "9540219d3a2dc737741dd0fbf13a458e560957bc6308935341d53a3a2b70092b.4cef3c97-02f0-4bef-8f89-1cbd4ed990f8", "lastUsedAt": "2022-11-24T09:23:53", "permissionGrantedMap": { "permissionGranted": { "c3b1cbc6-4537-4abf-97ba-a50733d366a0": true } }, "outsideSid": "9fe9d54f-7f44-4425-ac06-36e77db12b29", "id": "41a06c74-09b0-458a-a675-0573fdf4cda7", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI0YjFiOWI3OS01YzQ2LTQ2OTgtOTdlMC1lNWE3ZDkxMTNhZDciLAogICJub25jZSIgOiAiZWU1M2FlNmQtMTEzOS00ZjAwLWFhMDMtMzFhZjU0NjMyOGQ3IiwKICAiY2xpZW50X2lkIiA6ICJjM2IxY2JjNi00NTM3LTRhYmYtOTdiYS1hNTA3MzNkMzY2YTAiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.I_s-qHhAKA-cg5MO5H_STXFJNUZDWZL61jcLkTyYYl9ts_cM9jCZsVxSlByJmQpdWYqd-qWFZV7h85jGXV1T4HBhu4xuBqZfNoiMV1ELFO0dZB8Qo2gAeobFbDo4PcLgSbhghTOw7HfIZeIIjv41naCgQKfFR4xtoaiKYFST4RzrpiZ5DeWsLh_rqTWt8-Kg_64OsxgnMtB1jmUFY859w_yU_04u4St7Pctvg6tRY1BIbmaweQvxDe8aBAAdn0c31Kin6Wh6Y1WioxetiFs_4cx9nUjW2Cy8GOZwsBLRrNTTAeg5-RhD4WVfA6hERBhlulSEO8UW_yTqpqB3awEAHA", "opbs": "54a986e0-7a2b-4bd4-b2c8-9d726f8563a2", "response_type": "code id_token", "session_id": "41a06c74-09b0-458a-a675-0573fdf4cda7", "nonce": "ee53ae6d-1139-4f00-aa03-31af546328d7", "client_id": "c3b1cbc6-4537-4abf-97ba-a50733d366a0", "response_mode": "jwt", "sid": "9fe9d54f-7f44-4425-ac06-36e77db12b29", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4b1b9b79-5c46-4698-97e0-e5a7d9113ad7", "old_session_id": "32bbf895-0422-441c-a674-959a8f0d730d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:52" }, { "isJwt": false, "opbrowserState": "c5ea328f-19a8-4c97-bb22-619302cc3db9", "deletable": true, "dn": "jansId=6d892b0c-413c-4c84-ae92-70d32abbd9a4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:52", "creationDate": "2022-11-24T09:23:52", "ttl": 0, "sessionState": "018b2995f8e8c1fd576f424ac568d7f09e4dc9fdbf8ba4b0c5a6dc1a37f65d39.c2fb19ed-5256-4389-b25e-0963c5e9168c", "lastUsedAt": "2022-11-24T09:23:53", "permissionGrantedMap": { "permissionGranted": { "949fc130-16cd-4071-b172-91a99b700923": true } }, "outsideSid": "4c5e7d2d-ca4f-4379-bb3a-82c966494c89", "id": "6d892b0c-413c-4c84-ae92-70d32abbd9a4", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkEyNTZDQkMrSFM1MTIiLCJhbGciOiJSU0ExXzUifQ.iBYVz388rl1yyEmubob4IBkH_VIhnA0_g_al_gmAwmkaPDwAKfcVhata2uosdH8l8BvXv71AnatYo5OfPkoVopA8yjWTjAh2hZrd9rPU4ZTwrdjFLjE0d-xHKKLfnzBvI412_V2SQc74EJpcv0Tgld26ej4nIHckUZoqAchh1x5EWRhn6elktfNPtQAL3z05akTh8Qbvfn6mC-OBcz5Dwd63a6nSLddbNxudJ16UVy4n4nTQNC5JbcUy5ntBaHCYa7SWL1dEs4RVJyW4M6gN0YFEgfFjGGXpiOm645a9sQIjfNOM7GylqPscf0veJxHVMpkEe67qFK_TULy57E5iVA.dJfKBu36T8XjwL-18a2fBA.wot04e_TA84222kZogfIM0Za2ZeUcWqLMBZxnH4PVtAHEz0KjedB75xECt0f3h_XAuRbIodLDO1wyCqp9kfzkLyr-JsTc8gdaZzTuJwdx5zrVe_7LxUnonF_prurLBkmC8VrulqdhAqFDwOsdVbd2ml2f44iH62ZvKiTkHIDEb4vRNvMk0axmSAB4XfGhXONYHNFPzisoVcie9qNXNihqUXFYDulZbOFJE_ppDQIrWAslGihpUWfvXobCxd8Zr5n3zH3AMeJJrTWKaFWcIQM_hs2Gyb6Z7oGfSXkPIRFri3Yc29_9nYJGD9-_B4A9niQZhg9xy2gzT5UMmcyJU6T9xCHiWLN62g2pP2gMHkq8uzOmL3L2I-N-FjZAaJWiA7ul5cuuW_JfXcZ3yoURdi3uMf_rzCiEMyMW75g-19UBpUbp7wJ3cb7fWGYYSmMgKfMNK31MubVEygOwRdWaynyJXNCZBiDwEhS5G8Peyn8Eq09P3AF-TrPvrOffx9nAQqEihelOxQBZ-pnlntnWUNpwRrP67oY3G08FIfnUEXUHS59zAvhdQ7FRiHFPJDlCLCJBtKcvcQpIDvrNot8vqV7vNC-FIpzUwB00U8NVFi0mCzy6eTMv-_qAI4eTHdi3LG2YorcOajYk9krPpu6e-229JXHJbXqTFHGLPhQTszT8NSWwSo-GAe6MEGKwzd69XGHudfn-wwPkPq8siNtDxh-wvw7-2K1WM8yJwL7QxLCWM6VADmV-mFACj0OaAPhpC7JdvqER22eds2DigNX3XgO34Rmb6mgX07ztae1vtOmFQXhLjLhKZlcBzgDXvd5Jr_Xi-HPSU5o-s8uQHYqxr0h74huUvg6w8dy5cLorz-bB7iEELU3MQX8PvgNHZEjOfduBduUEUYNlESz-X4Iz2W2_DUP9GNutdnKGjdhgnjbxh4.210ys4jRx8J7Kfo4AuX5Vil5SoZd_K-Eqb_IH5V3cnkY5USATJkBQlH1FHhQ0sbN5dDpxOQX0w48ABo6944wlA", "opbs": "c5ea328f-19a8-4c97-bb22-619302cc3db9", "response_type": "code id_token token", "session_id": "6d892b0c-413c-4c84-ae92-70d32abbd9a4", "nonce": "a87995fa-6b18-430f-ae62-9b27667f5fed", "client_id": "949fc130-16cd-4071-b172-91a99b700923", "response_mode": "jwt", "sid": "4c5e7d2d-ca4f-4379-bb3a-82c966494c89", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b5b59e43-4cf1-4765-aee1-cbdb3e37da63", "old_session_id": "6a638df0-20e7-4386-8a69-321077203119" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:52" }, { "isJwt": false, "opbrowserState": "e18c9808-8ff4-41a4-96bd-8b7c00551317", "deletable": true, "dn": "jansId=b0a98b3d-1ee4-4cab-9d50-ca7e9113d823,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:52", "creationDate": "2022-11-24T09:23:51", "ttl": 0, "sessionState": "9538e9e50dc8d381a30b6d673e66e7936838edf6b63ef70fa6756cee42f1aec1.1a4b797f-5c08-4639-a8e3-72f5f66bc27d", "lastUsedAt": "2022-11-24T09:23:53", "permissionGrantedMap": { "permissionGranted": { "0cf3740c-a3e4-4dbd-a736-1e319906cc24": true } }, "outsideSid": "b7db1ecf-f9e7-4265-b96e-d971658f0539", "id": "b0a98b3d-1ee4-4cab-9d50-ca7e9113d823", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI3ZDRjMmIyMi1mMjExLTRkYzgtOTM2YS04ZGY0ZWUzNGRkZWYiLAogICJub25jZSIgOiAiNDg2MWFmNjctMGM4OC00YTlmLWIwNmUtNWZhNzc5MGI1Njc5IiwKICAiY2xpZW50X2lkIiA6ICIwY2YzNzQwYy1hM2U0LTRkYmQtYTczNi0xZTMxOTkwNmNjMjQiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.AYtq9oNT14uM3l-u-8j8LxS8Vy_AB7HHUnVxJbkQhzrt4fsCCfbnDAZ8f6UNxcq4aU0MuSdZwwZ8035lu1r0meG4AUMRCkKbFKAW4Gtskf_Y5V0XhfVeYve2iIgBFmHqzsgzWs7aN5Mir9eyq4ILwuXkHJ4DznGFyKhTxcCOX_Psn3I_", "opbs": "e18c9808-8ff4-41a4-96bd-8b7c00551317", "response_type": "code id_token token", "session_id": "b0a98b3d-1ee4-4cab-9d50-ca7e9113d823", "nonce": "4861af67-0c88-4a9f-b06e-5fa7790b5679", "client_id": "0cf3740c-a3e4-4dbd-a736-1e319906cc24", "response_mode": "jwt", "sid": "b7db1ecf-f9e7-4265-b96e-d971658f0539", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7d4c2b22-f211-4dc8-936a-8df4ee34ddef", "old_session_id": "9cb7c932-6daf-4632-a89f-5dc158266e54" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:51" }, { "isJwt": false, "opbrowserState": "81575425-4199-46ab-b22c-d95680ac5797", "deletable": true, "dn": "jansId=b361395e-2cfa-4bdb-a288-be75d9daa130,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:51", "creationDate": "2022-11-24T09:23:51", "ttl": 0, "sessionState": "1d8550814d4a6e716434c849f9d0df80b2cfd2d8fc25757103028ce9e21694f5.d8199677-3ec1-4b73-864a-aba93c0f878d", "lastUsedAt": "2022-11-24T09:23:52", "permissionGrantedMap": { "permissionGranted": { "7ec6bb42-3d53-4012-a9ee-bb28c864213f": true } }, "outsideSid": "bfb8572c-749b-4bea-a600-94da4f512815", "id": "b361395e-2cfa-4bdb-a288-be75d9daa130", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJmNzljMTk1My1jNGU4LTQwMWEtYTU0YS0xMzA4ODMyMGQxNjYiLAogICJub25jZSIgOiAiNjdmNWQ5YTktZDJlZi00ZDkyLWFiNWYtY2ZjNmEyODQ2ZGY1IiwKICAiY2xpZW50X2lkIiA6ICI3ZWM2YmI0Mi0zZDUzLTQwMTItYTllZS1iYjI4Yzg2NDIxM2YiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.MxKd05Hqy8EG6L1R9YoAg6cGPOHg_jGcbUeMu_2PF18Rd6ljOy8C9mg7Ykjth5jOdZMi98yPRXap3MdAhm7JXpPi13C1gUW21GkvkHmZlHRn5n-CSdsfoJx-j0SA0HtqudL8Kg4nAuvF0EXy1oiK92NM4Rx2JXoyqJ-xq9zPIpf2K_f3OAMnoCJs114YnQV3HnswKbVtCr2zoQnmr5SpjLK_Hp6WigI3jgVCT32F9gN69p-dGvaGk2YB5GiOsH8YHwXGJ3PzTnDkq-cYiDyni40iV3Nb2dHFvL5mSPwuFuznO9hZLUXK_o2AIpitE4f4Z_M_rxfmUxx7XIEVhvUTVQ", "opbs": "81575425-4199-46ab-b22c-d95680ac5797", "response_type": "code id_token", "session_id": "b361395e-2cfa-4bdb-a288-be75d9daa130", "nonce": "67f5d9a9-d2ef-4d92-ab5f-cfc6a2846df5", "client_id": "7ec6bb42-3d53-4012-a9ee-bb28c864213f", "response_mode": "jwt", "sid": "bfb8572c-749b-4bea-a600-94da4f512815", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f79c1953-c4e8-401a-a54a-13088320d166", "old_session_id": "281335ec-e1dd-4435-a3cd-bef961a8d7ad" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:51" }, { "isJwt": false, "opbrowserState": "95512316-1037-4c18-a934-4f9c0f4f6d2b", "deletable": true, "dn": "jansId=5b1d3127-f62d-41b5-b56f-1125c9dac7df,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:51", "creationDate": "2022-11-24T09:23:51", "ttl": 0, "sessionState": "4642201a12dcbfe05dec58e5ab695f179520507e864efb4e0291864d4c68a6b8.6871a116-8406-414d-b732-770f7894570a", "lastUsedAt": "2022-11-24T09:23:51", "permissionGrantedMap": { "permissionGranted": { "445bcc6e-9014-44d8-ab84-16c237d5de56": true } }, "outsideSid": "4badc38f-8e93-49b4-8ca4-10936f9864fb", "id": "5b1d3127-f62d-41b5-b56f-1125c9dac7df", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjY5M2NjNGZkLTMwMzUtNDUyNi1hYjI0LWM2Mzg5NWRlMDM5OCIsCiAgImNsaWVudF9pZCIgOiAiNDQ1YmNjNmUtOTAxNC00NGQ4LWFiODQtMTZjMjM3ZDVkZTU2IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiand0Igp9._LVjCHLGVjIlDZx4sUJvpGBnA_BCimgQvD6OaiYw36yDeVWSLGRLyCfqISpJU9ugHZKoldR6TqecOjGrh0Bh4yGdCbgK5ezTlp4zHHc-l-7GkkqYJ4tePMZVDb7JCN8V", "opbs": "95512316-1037-4c18-a934-4f9c0f4f6d2b", "response_type": "code", "session_id": "5b1d3127-f62d-41b5-b56f-1125c9dac7df", "client_id": "445bcc6e-9014-44d8-ab84-16c237d5de56", "response_mode": "jwt", "sid": "4badc38f-8e93-49b4-8ca4-10936f9864fb", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "693cc4fd-3035-4526-ab24-c63895de0398", "old_session_id": "9280909b-21f7-4f4f-979d-a3d7bd915f74" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:51" }, { "isJwt": false, "opbrowserState": "529d6614-906c-439b-b43c-2a0a49bc8c16", "deletable": true, "dn": "jansId=608434f5-fb7f-46fd-971b-c1064fe4c281,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:51", "creationDate": "2022-11-24T09:23:50", "ttl": 0, "sessionState": "262c58fba370f55902e82114196eb86c162397775228ad79e1ccc82402aea4d3.5f8cec85-efa8-4ae8-81bc-5989defd10d2", "lastUsedAt": "2022-11-24T09:23:51", "permissionGrantedMap": { "permissionGranted": { "b0fbd8c4-d9cf-49e8-8471-24ae5565f520": true } }, "outsideSid": "c77750ba-ae79-46e7-86b9-1cce6e58901e", "id": "608434f5-fb7f-46fd-971b-c1064fe4c281", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.CBiRD99GlFOTNDklEMm11J8kqWY33vv9mIIVe7lDEWidsIne2fAIaJGTY5A_a4C_x4k4Wa0kKTXtzjHKngefxxN9c0CDp6I71T5cGesm9QF7wD-RG5a7CChlggtETLcSs-uqTpFico3hf2Xka49PDPzjCmin0K0evvAlNjCXu01Jcasy1NJ93DX0ssf19RJRTig9FJ7Mhe1IcngHWrSbudZQvb5_W4HReFg8hRMQhqZd7oe_JvK_kaop0WSn61oCnqG-BQXpmdCp9D2JB02eUkaqaWJ9cKTeFQgi3am8P-RqQW9eZZHnGYc_LO4kapGcZDqnykMKS9HjUCpZfmfyZA.ovx33J3BIJzGRg_g3rh5yQ.OZ1ih0ROTIF7K4udCMILMmfu27b0WN68sztxdWi9DdmZMHsPDT1EDHqIsqyIbv0vGBhDOfvNuzbaU0v6F_ilJ6poy4Fjdb53o5TQyUSQ3nnf7c8RxRdpo1frUUmjFtivGnkzoFawLAh_wsJF-gH8BYMWUY9p2ULKArFZg29DxS_EvJjf8ELBi7rM-dzQy_SbK7kGEqfKiYKvZUkeIYIiqyFvJAUAx2qP97WV6uk42G-pWft24EVwcnonT6rDGPM35V-PXJcVpaPpkaOxZkYUSen5km3Zkqc4OGvPanCRcSow_DhDHjMfQIYHaZ_PvBlcOmFGPnk9E0qO5D7pqr3z-6FSV_vc6VE2AOlToT2yR36IIRZtie2_OluBkl7D39mz06ZVb948asTGoJDP2bjvZYzbW3XZHjC8f6zvZojo3rMUS7DUvjffW2HtbRYYPB_zPRnWp6bunniPAmlw06SURaPbYkFkzKH3h9JUs2CUte75s8lPzDQDG_hItHClvkLH-hNQyiIpISHodSqsbap5bMdh1sBASSFl05N-EG3d7QG22zK3tJq_3XgjfD7t3G7wSYZ8Zdbw1-Uyz6TH-4nV80uPX_QTxIpo_jvMfUPGvgilnsuozxJIUGLi90zFEtqtrchPE1vv1TT-taThmE5LCOgc5o9NeOKkkoT9nvffpTW3gNoW6vFrEDBm_yogOVJlIDnOgRwKTsNVlvFcfzkiArrGNu4Pav2GwLlSfjCtagjs3IM_CAZ2_DgwuzJ14a77Y43k6nruPhYlJgDs0sJiwxRlXlXpWefnGVzVcoA6iD-TCIO2xhYBnSStLqJ3Id13FN2hzyhGXzNa50G72krhOweY9wpwuCAYEoXHWwyv46PN46tz8ZalnLNzOp1jQEWj_p1Y0ziyuvtamT1JthpdIEFRLB-gta4JUz8-WtJ0vR8.e3CYdUy_j-4OWlRJF3qpEjtqM7MNfOxJOvFlR9efm3w", "opbs": "529d6614-906c-439b-b43c-2a0a49bc8c16", "response_type": "code id_token token", "session_id": "608434f5-fb7f-46fd-971b-c1064fe4c281", "nonce": "2587e25e-916a-4a3b-9d29-e3723d1f7824", "client_id": "b0fbd8c4-d9cf-49e8-8471-24ae5565f520", "response_mode": "jwt", "sid": "c77750ba-ae79-46e7-86b9-1cce6e58901e", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "92806d51-529b-4edc-92ca-5fd4f1c741a9", "old_session_id": "acd8ab6f-f179-45ec-be18-47129e532ce3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:50" }, { "isJwt": false, "opbrowserState": "7c87bbdc-e864-4e03-9e37-5722b6a12620", "deletable": true, "dn": "jansId=adbf0930-df73-4b95-b6e6-c1305d09949b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:50", "creationDate": "2022-11-24T09:23:50", "ttl": 0, "sessionState": "3b28734ba18fcf06c4eb4b1dba4472a0f94eade9972c1aa7a78b56982f59ca36.26629f52-17eb-4c85-962a-7bb1f415c751", "lastUsedAt": "2022-11-24T09:23:51", "permissionGrantedMap": { "permissionGranted": { "4b6ae61f-0436-4aeb-abd4-86a4e8a64c18": true } }, "outsideSid": "1f609feb-1f55-418d-a89a-264446e06ae5", "id": "adbf0930-df73-4b95-b6e6-c1305d09949b", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI4NjljYjE4OS1jMzYyLTQ5MGEtOTM4OC05ZDE1MDk4OGUzOGEiLAogICJub25jZSIgOiAiOTQxMDNmYmItMzBiOC00NTE1LTg4NjEtZjQwZWZiNmYzMzZmIiwKICAiY2xpZW50X2lkIiA6ICI0YjZhZTYxZi0wNDM2LTRhZWItYWJkNC04NmE0ZThhNjRjMTgiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.gofh1RfL6d1o3-GlUdriKZVZP9EM0fUM0oF8P3EMIpHJ_mcr_ZQGH6SlysYP6LTyHfW1Ylvzf8FhG364Qj9YSyl6iBBzxRatSaHkA2KoiAaJQiALynn0rddhT7by97CL", "opbs": "7c87bbdc-e864-4e03-9e37-5722b6a12620", "response_type": "code id_token token", "session_id": "adbf0930-df73-4b95-b6e6-c1305d09949b", "nonce": "94103fbb-30b8-4515-8861-f40efb6f336f", "client_id": "4b6ae61f-0436-4aeb-abd4-86a4e8a64c18", "response_mode": "jwt", "sid": "1f609feb-1f55-418d-a89a-264446e06ae5", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "869cb189-c362-490a-9388-9d150988e38a", "old_session_id": "253ccb0b-44b7-4c3d-9c92-920902db0120" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:50" }, { "isJwt": false, "opbrowserState": "faff9ccb-2fb0-4de0-b7df-42a1e8eee170", "deletable": true, "dn": "jansId=97076cab-719c-4738-b9ab-218c7be178b1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:50", "creationDate": "2022-11-24T09:23:49", "ttl": 0, "sessionState": "3f77babf5a1154ec36fba68dd6649d019a71950cbcf74b8bc262f8ac9f05f246.8d9d0333-24b3-4f3b-bfbc-f53793aeb2a3", "lastUsedAt": "2022-11-24T09:23:50", "permissionGrantedMap": { "permissionGranted": { "c3950f8b-9432-4381-8775-752151644388": true } }, "outsideSid": "693bd863-dbb4-4fa5-b258-88816e072b06", "id": "97076cab-719c-4738-b9ab-218c7be178b1", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogImYzZjFkNjhiLWExOWYtNDJjYi1hZWRjLWU0OTJjZmEzYzIyYyIsCiAgImNsaWVudF9pZCIgOiAiYzM5NTBmOGItOTQzMi00MzgxLTg3NzUtNzUyMTUxNjQ0Mzg4IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiand0Igp9.O4MynP0Dd7302L2TmyLdiWXvKjJoSmC5uSwnFkLE5o0PqO5OHv3L1D256jbyyV3jim_hpTZ9tTsjYL0tH4G6Ww", "opbs": "faff9ccb-2fb0-4de0-b7df-42a1e8eee170", "response_type": "code", "session_id": "97076cab-719c-4738-b9ab-218c7be178b1", "client_id": "c3950f8b-9432-4381-8775-752151644388", "response_mode": "jwt", "sid": "693bd863-dbb4-4fa5-b258-88816e072b06", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f3f1d68b-a19f-42cb-aedc-e492cfa3c22c", "old_session_id": "7809a4c5-9e6b-44b7-bf08-662a10238bd4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:49" }, { "isJwt": false, "opbrowserState": "22c56b45-42f2-4bd0-97d8-b20b854e3262", "deletable": true, "dn": "jansId=b2dca326-b572-4f15-882c-e1289edc92a6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:50", "creationDate": "2022-11-24T09:23:49", "ttl": 0, "sessionState": "cd7ee64f159be37561a2090ae5b33e0ad88719c7e608f6666d4e2dd8db7d624e.a78353f8-37e3-40fa-88e2-c10de436502a", "lastUsedAt": "2022-11-24T09:23:50", "permissionGrantedMap": { "permissionGranted": { "7135cafb-23c2-4aff-b872-cadc2e1e0d8b": true } }, "outsideSid": "9f140f03-7e3b-4d58-8434-f7bb8cf3e159", "id": "b2dca326-b572-4f15-882c-e1289edc92a6", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJkOTg4MGQ5Yi04NjExLTQ5YWItYTcxYy1jMTA3MGM2MzEyMDkiLAogICJub25jZSIgOiAiYWNlZGU5NzMtYzcwYS00Nzg4LTgzYmUtNTdkZTU3NzY4NzMxIiwKICAiY2xpZW50X2lkIiA6ICI3MTM1Y2FmYi0yM2MyLTRhZmYtYjg3Mi1jYWRjMmUxZTBkOGIiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.IrpoIS239jT-5veLFoeX7VgaOM87awhhh7QytW9vi9y9x-NBUjV4oYGfjY6VS3m7SV1Li50BFzd6abVR_l-OK1EF5uG6lyhFz6_lwomK_yLdeViZXWNslZS5TUT81zjIsQahCXwoHHpsTpI-as8gbVTeQrBitMv6smjcpxcd63N-UumZcxAK4mVwlkYsX40nOgjnzBJaDNsMLVC_Lya-wbqFCKfTeOSFVtw40Gmei6Wvhoz2VpoK3x57senVng3hzIdK7gyn5rKAhhHk_KcfQ0c7f4ZEFR_1lQUrb18PwVKbLgq_K1Jup03HuB4IJ7QYUBPiRkirZmPKat3jzKT0hA", "opbs": "22c56b45-42f2-4bd0-97d8-b20b854e3262", "response_type": "code id_token", "session_id": "b2dca326-b572-4f15-882c-e1289edc92a6", "nonce": "acede973-c70a-4788-83be-57de57768731", "client_id": "7135cafb-23c2-4aff-b872-cadc2e1e0d8b", "response_mode": "jwt", "sid": "9f140f03-7e3b-4d58-8434-f7bb8cf3e159", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d9880d9b-8611-49ab-a71c-c1070c631209", "old_session_id": "7fb67506-f583-4d4b-92cc-764de0d6cba9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:49" }, { "isJwt": false, "opbrowserState": "3bacb092-fc08-4d5d-94f7-8bb11bd7eaca", "deletable": true, "dn": "jansId=4904ec77-4f80-439d-830d-21b5455a71bf,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:49", "creationDate": "2022-11-24T09:23:48", "ttl": 0, "sessionState": "139e562591005724d83424d19e721372285a86116d577280ac280b2bb859a253.bb3b341e-a4c9-4ae0-847a-53511d78d96d", "lastUsedAt": "2022-11-24T09:23:49", "permissionGrantedMap": { "permissionGranted": { "6c779f09-c34d-4123-b7e0-1d0a161cb567": true } }, "outsideSid": "398779c5-3f0b-48ee-9470-090dbaa696fa", "id": "4904ec77-4f80-439d-830d-21b5455a71bf", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIzY2RiMzdjZi01ODEzLTQ5YzQtYWQxMy01ZDQ2OTllYmFjOGIiLAogICJub25jZSIgOiAiNjA3MTZmODMtODk5ZC00ODYyLThjMmMtZWJlNTA2OGYyYzVhIiwKICAiY2xpZW50X2lkIiA6ICI2Yzc3OWYwOS1jMzRkLTQxMjMtYjdlMC0xZDBhMTYxY2I1NjciLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.TCkz_ZVjsA1O6_G93jpJLlUH_5Ns9LOFpZJvdAK4or8UGhQhXLsc_3lKwF4f1MAwVXtbRJdPqkrf2nIwlh3a1A", "opbs": "3bacb092-fc08-4d5d-94f7-8bb11bd7eaca", "response_type": "code id_token token", "session_id": "4904ec77-4f80-439d-830d-21b5455a71bf", "nonce": "60716f83-899d-4862-8c2c-ebe5068f2c5a", "client_id": "6c779f09-c34d-4123-b7e0-1d0a161cb567", "response_mode": "jwt", "sid": "398779c5-3f0b-48ee-9470-090dbaa696fa", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3cdb37cf-5813-49c4-ad13-5d4699ebac8b", "old_session_id": "7fc9825c-6a66-442b-ad2a-282494e66db1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:48" }, { "isJwt": false, "opbrowserState": "ec2366b7-48f8-4b50-baf1-b0811a0d2902", "deletable": true, "dn": "jansId=1faf8fc0-fb95-477e-97bd-443164d9f782,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:48", "creationDate": "2022-11-24T09:23:47", "ttl": 0, "sessionState": "5bfbdca9dc68ad1aeaa478236d40c82e7e4e4a5dd23419c46268761bc97bcdee.55057637-ef2a-4bc9-8c54-f5898bd6cbf1", "lastUsedAt": "2022-11-24T09:23:48", "permissionGrantedMap": { "permissionGranted": { "6b4d8f5e-44ca-48bd-bddd-12db0d5f652a": true } }, "outsideSid": "22f5ad6f-3bfb-45fd-9b82-30ac752c77ed", "id": "1faf8fc0-fb95-477e-97bd-443164d9f782", "state": "authenticated", "sessionAttributes": { "opbs": "ec2366b7-48f8-4b50-baf1-b0811a0d2902", "response_type": "token", "session_id": "1faf8fc0-fb95-477e-97bd-443164d9f782", "nonce": "91ed6c8d-9716-4d81-9a36-f1f99307cc82", "client_id": "6b4d8f5e-44ca-48bd-bddd-12db0d5f652a", "response_mode": "fragment.jwt", "sid": "22f5ad6f-3bfb-45fd-9b82-30ac752c77ed", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a2b0936d-46bc-4217-8e77-f3d0ec5c8471", "old_session_id": "21f2b6c6-a829-4581-8da9-75cbe3a23b06" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:47" }, { "isJwt": false, "opbrowserState": "6f4209c5-39ef-46f9-822a-1c54a5078659", "deletable": true, "dn": "jansId=353f1b9b-c7fe-4522-95ca-aedad02ca8a0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:47", "creationDate": "2022-11-24T09:23:47", "ttl": 0, "sessionState": "a1bc29ed07e364eb7b286608e5a7d5d5eaf59d181a5cbfd0ac227e6ea7a5786f.c4191197-ef47-4131-b53f-79165c1aeb25", "lastUsedAt": "2022-11-24T09:23:48", "permissionGrantedMap": { "permissionGranted": { "9bef5f78-c8a0-4a44-8715-af52b8437a5b": true } }, "outsideSid": "ef3f625d-7641-43e7-bf54-0bf6e0a6c38d", "id": "353f1b9b-c7fe-4522-95ca-aedad02ca8a0", "state": "authenticated", "sessionAttributes": { "opbs": "6f4209c5-39ef-46f9-822a-1c54a5078659", "response_type": "token id_token", "session_id": "353f1b9b-c7fe-4522-95ca-aedad02ca8a0", "nonce": "5f28b628-ea74-41d2-a8e2-99552b675b26", "client_id": "9bef5f78-c8a0-4a44-8715-af52b8437a5b", "response_mode": "fragment.jwt", "sid": "ef3f625d-7641-43e7-bf54-0bf6e0a6c38d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "471ddc82-fb43-49e0-b2c6-ffd784513fa3", "old_session_id": "2e0dbefd-1c3c-48f1-a087-2d397a207912" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:47" }, { "isJwt": false, "opbrowserState": "677f5de6-87ec-4634-81b7-c7ae79bc46ca", "deletable": true, "dn": "jansId=9ead7fd9-ac33-4c84-9837-2097f121707d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:46", "creationDate": "2022-11-24T09:23:46", "ttl": 0, "sessionState": "b8a5292ffaf48f827c598176eb0568224b3144e51f02a2670d274db259c7508b.9d457d06-325f-429b-82a2-4c3a1545ed2a", "lastUsedAt": "2022-11-24T09:23:47", "permissionGrantedMap": { "permissionGranted": { "f9991526-24ee-4f7f-962f-4b4e500e66d3": true } }, "outsideSid": "8e6206bb-4621-4d41-8ff5-a50f0645b64a", "id": "9ead7fd9-ac33-4c84-9837-2097f121707d", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIyYTY5MzZlNC1kNGMyLTQyYzUtYWJkOS00MTkwZjAyMmI0ODgiLAogICJub25jZSIgOiAiZmI4MmY2NjYtYTZjNi00ZGVmLTlkNmYtMDk2MmE2OWY1NjgxIiwKICAiY2xpZW50X2lkIiA6ICJmOTk5MTUyNi0yNGVlLTRmN2YtOTYyZi00YjRlNTAwZTY2ZDMiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.srTwcPUX-KJ7rEdl9KuZ-FUpUYHPvgY-mbkwDyigkjTB10Qw-YmtFXpB4FTB2rnu4n0i8fxbHdT6EHdJrkJFliYkbBC0AMmlwZWnmbFtWCmuOC8GzAOHE62zEjO_begX", "opbs": "677f5de6-87ec-4634-81b7-c7ae79bc46ca", "response_type": "code id_token", "session_id": "9ead7fd9-ac33-4c84-9837-2097f121707d", "nonce": "fb82f666-a6c6-4def-9d6f-0962a69f5681", "client_id": "f9991526-24ee-4f7f-962f-4b4e500e66d3", "response_mode": "jwt", "sid": "8e6206bb-4621-4d41-8ff5-a50f0645b64a", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2a6936e4-d4c2-42c5-abd9-4190f022b488", "old_session_id": "00229958-df51-4f6e-b3da-df87edd1dfea" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:46" }, { "isJwt": false, "opbrowserState": "1145192d-3ec8-4727-af31-54b84692f2f4", "deletable": true, "dn": "jansId=0ef7e9d1-e994-4a84-9f93-e20464632fb9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:46", "creationDate": "2022-11-24T09:23:45", "ttl": 0, "sessionState": "1645b85b377ec06bc021497165ef613af9692ca558e87143538045c0fed46701.b19115fa-d30c-4e69-b8c6-06528c6d0ea0", "lastUsedAt": "2022-11-24T09:23:47", "permissionGrantedMap": { "permissionGranted": { "738b385c-18f8-401e-8ca6-a2dca4bb185c": true } }, "outsideSid": "02555ca0-4f82-436a-bc15-a973f8d68f09", "id": "0ef7e9d1-e994-4a84-9f93-e20464632fb9", "state": "authenticated", "sessionAttributes": { "opbs": "1145192d-3ec8-4727-af31-54b84692f2f4", "response_type": "code id_token", "session_id": "0ef7e9d1-e994-4a84-9f93-e20464632fb9", "nonce": "cdcad9f3-4650-4a07-be94-2b930d27d914", "client_id": "738b385c-18f8-401e-8ca6-a2dca4bb185c", "response_mode": "jwt", "sid": "02555ca0-4f82-436a-bc15-a973f8d68f09", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8d96ffe7-76f0-45c0-b51f-68de1eeee37c", "old_session_id": "29ec7d2a-3e55-4137-ab7f-697641809ba6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:45" }, { "isJwt": false, "opbrowserState": "a314e8ca-9066-41de-956d-fc54e90ace73", "deletable": true, "dn": "jansId=46e5e037-24d5-425d-bfe4-fd45764a6a0a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:45", "creationDate": "2022-11-24T09:23:44", "ttl": 0, "sessionState": "fc50fb43ff0cb03b07730e3d4ea38a801bf1b549ad7657e48efddc411cd7f8a0.44651ae6-44e8-46ba-a1c6-08571e37c694", "lastUsedAt": "2022-11-24T09:23:46", "permissionGrantedMap": { "permissionGranted": { "11dff458-285d-4403-92ac-cc5caa6ada98": true } }, "outsideSid": "a027f9cf-f17c-44e6-b960-91ebb65574b8", "id": "46e5e037-24d5-425d-bfe4-fd45764a6a0a", "state": "authenticated", "sessionAttributes": { "opbs": "a314e8ca-9066-41de-956d-fc54e90ace73", "response_type": "token", "session_id": "46e5e037-24d5-425d-bfe4-fd45764a6a0a", "nonce": "1a864293-8631-4c69-9d6f-d2b9d52224b7", "client_id": "11dff458-285d-4403-92ac-cc5caa6ada98", "response_mode": "fragment.jwt", "sid": "a027f9cf-f17c-44e6-b960-91ebb65574b8", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "de25a03f-7f85-4a5d-8eca-95538f717f2a", "old_session_id": "952dac62-1e46-4019-9d9e-bfc9375281f9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:44" }, { "isJwt": false, "opbrowserState": "5db4ead0-6047-4a32-8bbb-ab058121fab4", "deletable": true, "dn": "jansId=8611c1f5-b3e2-47de-955a-462f368ecc0e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:44", "creationDate": "2022-11-24T09:23:44", "ttl": 0, "sessionState": "033dfc6d08cf2bb2cd37b320f69f6181416a9fca250cf05a4e481db54ebba62b.e6e39a4f-091f-45f1-81cc-c320ecbad66b", "lastUsedAt": "2022-11-24T09:23:45", "permissionGrantedMap": { "permissionGranted": { "601c0e22-f4cb-4f24-b7f5-f05f748c3ea1": true } }, "outsideSid": "be30abfd-7efc-4302-babd-3561a65690ed", "id": "8611c1f5-b3e2-47de-955a-462f368ecc0e", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIwZjEzNzkxZC02NTRmLTQ4YjUtYjA1NS1iNjNjZGNlM2M4MDAiLAogICJub25jZSIgOiAiZDMxNTYxMTUtNGZjMS00MmZlLTg0YTEtOGFhOTE1NjAzMTFjIiwKICAiY2xpZW50X2lkIiA6ICI2MDFjMGUyMi1mNGNiLTRmMjQtYjdmNS1mMDVmNzQ4YzNlYTEiLAogICJyZXNwb25zZV9tb2RlIiA6ICJqd3QiCn0.DMjn9pc4vzoZzuUWy38Un6VUgGkmcwlcOnRfCDsIixgIkNJo9EHdwDsKG3i_taUMTkjvinue14tB1l-Gi8oc5A", "opbs": "5db4ead0-6047-4a32-8bbb-ab058121fab4", "response_type": "code id_token", "session_id": "8611c1f5-b3e2-47de-955a-462f368ecc0e", "nonce": "d3156115-4fc1-42fe-84a1-8aa91560311c", "client_id": "601c0e22-f4cb-4f24-b7f5-f05f748c3ea1", "response_mode": "jwt", "sid": "be30abfd-7efc-4302-babd-3561a65690ed", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0f13791d-654f-48b5-b055-b63cdce3c800", "old_session_id": "eb53a8ea-4d03-4fff-81d3-3b9f904c0739" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:44" }, { "isJwt": false, "opbrowserState": "de5d1014-b23f-4dfe-aaf0-557eed14daab", "deletable": true, "dn": "jansId=00e66d8b-2481-4e5a-943a-ace1f4626cf5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:44", "creationDate": "2022-11-24T09:23:44", "ttl": 0, "sessionState": "5e84adb2cb9d5f0410f79a929312e4a2b3906c2a60d966c0c568b758b1d3d6a7.49722bca-2882-47cc-b01d-364dcdbd4046", "lastUsedAt": "2022-11-24T09:23:45", "permissionGrantedMap": { "permissionGranted": { "7f5421f2-a669-441a-901f-74617c9a215c": true } }, "outsideSid": "ff14094d-fb53-48ba-a686-9a43be7834b8", "id": "00e66d8b-2481-4e5a-943a-ace1f4626cf5", "state": "authenticated", "sessionAttributes": { "opbs": "de5d1014-b23f-4dfe-aaf0-557eed14daab", "response_type": "code id_token", "session_id": "00e66d8b-2481-4e5a-943a-ace1f4626cf5", "nonce": "e2a0569a-a152-4660-94ae-07178ede81b6", "client_id": "7f5421f2-a669-441a-901f-74617c9a215c", "response_mode": "jwt", "sid": "ff14094d-fb53-48ba-a686-9a43be7834b8", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "29427b8c-4e9d-496f-9a82-84c147499ac7", "old_session_id": "4ee59c40-6713-4059-afec-4150aabf968b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:44" }, { "isJwt": false, "opbrowserState": "a0d019a0-5daf-45f9-941a-38bd3ae8c852", "deletable": true, "dn": "jansId=032daff1-d7c2-4975-a37d-d7be91a7f4fb,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:44", "creationDate": "2022-11-24T09:23:43", "ttl": 0, "sessionState": "c1d9df5d028d40eb97d0a3649d4393ddd5a75a101dd4ea2ad0dcfc7855d70540.9635da16-c286-4bea-9b53-4c3c251acc54", "lastUsedAt": "2022-11-24T09:23:45", "permissionGrantedMap": { "permissionGranted": { "3f850eb8-d21b-4672-b758-32bdb7dab338": true } }, "outsideSid": "05f3512d-c8ac-495a-843b-7116404d4ce1", "id": "032daff1-d7c2-4975-a37d-d7be91a7f4fb", "state": "authenticated", "sessionAttributes": { "opbs": "a0d019a0-5daf-45f9-941a-38bd3ae8c852", "response_type": "token id_token", "session_id": "032daff1-d7c2-4975-a37d-d7be91a7f4fb", "nonce": "b12507ea-dfea-4855-9fc7-12164b53ced7", "client_id": "3f850eb8-d21b-4672-b758-32bdb7dab338", "response_mode": "fragment.jwt", "sid": "05f3512d-c8ac-495a-843b-7116404d4ce1", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "53d5d1ab-5fc1-40b1-bb5c-9536b4d63b1e", "old_session_id": "9763521c-2b2a-49a2-ab2b-b4ce67e4a683" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:43" }, { "isJwt": false, "opbrowserState": "75e43cfd-b07f-40ba-8975-8e84849802b2", "deletable": true, "dn": "jansId=5d90fc7b-37f5-4c6e-af3e-a0d86f04c234,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:44", "creationDate": "2022-11-24T09:23:43", "ttl": 0, "sessionState": "65f81e1c835f0f03e5bbc50476a08fc0dc7450c9e103b7f9e0b5c8e9fd790b9b.1fedebd3-0d93-4022-b4df-a2b39652059a", "lastUsedAt": "2022-11-24T09:23:44", "permissionGrantedMap": { "permissionGranted": { "66358bbe-0e91-4e7a-869b-a19ee658b3f2": true } }, "outsideSid": "0860f3da-014a-4bcd-b505-2ea52b01254c", "id": "5d90fc7b-37f5-4c6e-af3e-a0d86f04c234", "state": "authenticated", "sessionAttributes": { "opbs": "75e43cfd-b07f-40ba-8975-8e84849802b2", "response_type": "token", "session_id": "5d90fc7b-37f5-4c6e-af3e-a0d86f04c234", "nonce": "f1eb063c-6316-4374-b81c-df793e7cf4f7", "client_id": "66358bbe-0e91-4e7a-869b-a19ee658b3f2", "response_mode": "fragment.jwt", "sid": "0860f3da-014a-4bcd-b505-2ea52b01254c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f09ed7b6-709f-4d58-8e87-b995036d59e9", "old_session_id": "d41f688d-3033-4734-8ba2-0839348f1d4d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:43" }, { "isJwt": false, "opbrowserState": "48721fdb-f01d-4753-b9cb-346da52e518b", "deletable": true, "dn": "jansId=16b3c485-6ffc-4e8e-ba7e-5eb3f6e92eda,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:43", "creationDate": "2022-11-24T09:23:42", "ttl": 0, "sessionState": "815dbe45a04c755f1a784021ef731f536d0a2e7246ef2d4208d6a6093c6459c1.35bf86be-1738-4583-92b9-4781805d03dc", "lastUsedAt": "2022-11-24T09:23:43", "permissionGrantedMap": { "permissionGranted": { "b12ccac7-8654-4bd8-9035-e18c49093981": true } }, "outsideSid": "e5d9912c-8acf-4a0e-86da-c34b12b3d004", "id": "16b3c485-6ffc-4e8e-ba7e-5eb3f6e92eda", "state": "authenticated", "sessionAttributes": { "opbs": "48721fdb-f01d-4753-b9cb-346da52e518b", "response_type": "code id_token", "session_id": "16b3c485-6ffc-4e8e-ba7e-5eb3f6e92eda", "nonce": "71d916dd-e1a1-494a-963f-0e536ec8ee0b", "client_id": "b12ccac7-8654-4bd8-9035-e18c49093981", "response_mode": "jwt", "sid": "e5d9912c-8acf-4a0e-86da-c34b12b3d004", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "23d53289-355c-4ede-bc75-524a3cade8b8", "old_session_id": "996f6f3a-90f5-4f54-be10-11d21b82e7bd" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:42" }, { "isJwt": false, "opbrowserState": "21926614-e4ff-4220-8350-9435737cefb5", "deletable": true, "dn": "jansId=213a32b5-23ac-4160-8e0b-48e698d13cba,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:43", "creationDate": "2022-11-24T09:23:42", "ttl": 0, "sessionState": "3e314e3416d2108f60f9b4abb491fa1ac8d2e01071af064c482b1dd532c11b4f.d44577e1-0160-4450-9d6d-a15470499b86", "lastUsedAt": "2022-11-24T09:23:43", "permissionGrantedMap": { "permissionGranted": { "d5897898-d69f-48a5-9c06-8eb869306761": true } }, "outsideSid": "af205a10-2698-4068-b7e8-71339d880507", "id": "213a32b5-23ac-4160-8e0b-48e698d13cba", "state": "authenticated", "sessionAttributes": { "opbs": "21926614-e4ff-4220-8350-9435737cefb5", "response_type": "code", "session_id": "213a32b5-23ac-4160-8e0b-48e698d13cba", "client_id": "d5897898-d69f-48a5-9c06-8eb869306761", "response_mode": "jwt", "sid": "af205a10-2698-4068-b7e8-71339d880507", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e88638b8-6670-4f87-b6cf-5fdaede1caad", "old_session_id": "482bf3e8-bda0-452b-9a4c-0460ed76785a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:42" }, { "isJwt": false, "opbrowserState": "b01180d2-cb5e-4a8f-88c4-d226fe33b126", "deletable": true, "dn": "jansId=293c74a7-1fde-463d-9623-9dc201514fda,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:42", "creationDate": "2022-11-24T09:23:41", "ttl": 0, "sessionState": "986adb2174e7192a7bdd83ee3129762d8948d47649a81c326695a3205acfb054.f48e1466-af2e-419b-b68e-d9078775e502", "lastUsedAt": "2022-11-24T09:23:43", "permissionGrantedMap": { "permissionGranted": { "a055eefd-9f6b-48a6-a3e0-6586d1815e4c": true } }, "outsideSid": "96d7505f-b215-4f56-a676-79f92d2b9aab", "id": "293c74a7-1fde-463d-9623-9dc201514fda", "state": "authenticated", "sessionAttributes": { "opbs": "b01180d2-cb5e-4a8f-88c4-d226fe33b126", "response_type": "token", "session_id": "293c74a7-1fde-463d-9623-9dc201514fda", "nonce": "c68ff985-e5d5-4693-abe7-2513c5982148", "client_id": "a055eefd-9f6b-48a6-a3e0-6586d1815e4c", "response_mode": "fragment.jwt", "sid": "96d7505f-b215-4f56-a676-79f92d2b9aab", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "89e6a50e-b3f5-4e97-a771-f67bd245a148", "old_session_id": "4e7f25b7-30af-4faa-8e61-b03773d67d07" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:41" }, { "isJwt": false, "opbrowserState": "d18f20d6-3fae-4994-882c-9ef82f679126", "deletable": true, "dn": "jansId=63d2c691-ddce-4b23-b9b3-1b01e804ca44,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:42", "creationDate": "2022-11-24T09:23:41", "ttl": 0, "sessionState": "4da1c7558920816f21048320f09cab94a0442d82c99803e18fd4253fc6a687da.5099e84d-ccf7-43dc-a653-aa989c539168", "lastUsedAt": "2022-11-24T09:23:42", "permissionGrantedMap": { "permissionGranted": { "be110f85-c748-4c99-8c92-c943ffaceffc": true } }, "outsideSid": "5831b605-b964-4a63-b592-378dc5af4053", "id": "63d2c691-ddce-4b23-b9b3-1b01e804ca44", "state": "authenticated", "sessionAttributes": { "opbs": "d18f20d6-3fae-4994-882c-9ef82f679126", "response_type": "code id_token", "session_id": "63d2c691-ddce-4b23-b9b3-1b01e804ca44", "nonce": "4b83333f-a001-4303-83ce-e2659a015df8", "client_id": "be110f85-c748-4c99-8c92-c943ffaceffc", "response_mode": "jwt", "sid": "5831b605-b964-4a63-b592-378dc5af4053", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "307ba44d-99f1-42cb-ba1d-339a441c68ed", "old_session_id": "37081262-ad94-479b-b7fc-fc324737a894" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:41" }, { "isJwt": false, "opbrowserState": "e08d8893-d68f-4a03-9c38-2664d7bfeb33", "deletable": true, "dn": "jansId=bb7b64b7-63ac-47d9-bd95-4b24d8f1bfea,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:41", "creationDate": "2022-11-24T09:23:41", "ttl": 0, "sessionState": "b0c16559ead32b5a377e728784b893c63d99fae5a5deafc497e3a8c8f1efe501.5e95fcdc-71c5-44d1-aa5a-a80643c3c22e", "lastUsedAt": "2022-11-24T09:23:41", "permissionGrantedMap": { "permissionGranted": { "e1d40789-3c20-4231-a4c9-9da94d0ee66a": true } }, "outsideSid": "21748998-d334-4710-8db0-582a67761cbb", "id": "bb7b64b7-63ac-47d9-bd95-4b24d8f1bfea", "state": "authenticated", "sessionAttributes": { "opbs": "e08d8893-d68f-4a03-9c38-2664d7bfeb33", "response_type": "code", "session_id": "bb7b64b7-63ac-47d9-bd95-4b24d8f1bfea", "client_id": "e1d40789-3c20-4231-a4c9-9da94d0ee66a", "response_mode": "jwt", "sid": "21748998-d334-4710-8db0-582a67761cbb", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9fd696ba-e747-4d72-b189-d73417be56e8", "old_session_id": "9cea8ef5-7f72-4920-819c-97093fab5709" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:41" }, { "isJwt": false, "opbrowserState": "324ba82f-69b0-424b-bab6-b9341c0aebe1", "deletable": true, "dn": "jansId=41c1a1b0-e0b0-40fa-a154-acebb6673f25,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:40", "creationDate": "2022-11-24T09:23:40", "ttl": 0, "sessionState": "b6ebcee0062301244a18cd432388349f1fec3911786f0863f151a8ef9ebe85ca.51c8899c-e8c1-4fe9-be2f-33aee38fce70", "lastUsedAt": "2022-11-24T09:23:41", "permissionGrantedMap": { "permissionGranted": { "fca5f110-9dd2-4232-bd71-ad9399a16343": true } }, "outsideSid": "a34d99ba-b8a6-465a-82c0-1bbac2bc42e4", "id": "41c1a1b0-e0b0-40fa-a154-acebb6673f25", "state": "authenticated", "sessionAttributes": { "opbs": "324ba82f-69b0-424b-bab6-b9341c0aebe1", "response_type": "token", "session_id": "41c1a1b0-e0b0-40fa-a154-acebb6673f25", "nonce": "d82c1d17-3d5c-44bf-bcde-d98308752d1c", "client_id": "fca5f110-9dd2-4232-bd71-ad9399a16343", "response_mode": "fragment.jwt", "sid": "a34d99ba-b8a6-465a-82c0-1bbac2bc42e4", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f98b48be-6bb4-4e9e-b588-1f84aeb80b19", "old_session_id": "316a05af-3a9c-47aa-90dd-3aefade392b3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:40" }, { "isJwt": false, "opbrowserState": "258fd40d-a68f-46a5-a970-2550a868725a", "deletable": true, "dn": "jansId=bc303027-f81c-47b2-ac26-6491e390b4b5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:40", "creationDate": "2022-11-24T09:23:40", "ttl": 0, "sessionState": "dc5b5dcbb73b87ffed550b2cee276d1644919e42855b1828e1a1712410d6984c.72fe4410-3076-43a7-bbe7-5023680e3c80", "lastUsedAt": "2022-11-24T09:23:41", "permissionGrantedMap": { "permissionGranted": { "3b868d9d-f45c-4569-ae4b-8845ef83dd20": true } }, "outsideSid": "5200cf61-6ba9-43e1-a181-c564652b6451", "id": "bc303027-f81c-47b2-ac26-6491e390b4b5", "state": "authenticated", "sessionAttributes": { "opbs": "258fd40d-a68f-46a5-a970-2550a868725a", "response_type": "token id_token", "session_id": "bc303027-f81c-47b2-ac26-6491e390b4b5", "nonce": "1ef7f6ad-3ef6-4e76-a797-b90fc8c8fc3a", "client_id": "3b868d9d-f45c-4569-ae4b-8845ef83dd20", "response_mode": "fragment.jwt", "sid": "5200cf61-6ba9-43e1-a181-c564652b6451", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1b72e2fa-e590-401a-976f-1850e8b0d230", "old_session_id": "c97f6b41-e87b-48ed-afa4-32c35cb77a4a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:40" }, { "isJwt": false, "opbrowserState": "daf10d3a-6919-4a1d-b387-1eced74a9e87", "deletable": true, "dn": "jansId=b8b2f39c-4ec9-452e-ac22-146a4c61a8de,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:40", "creationDate": "2022-11-24T09:23:39", "ttl": 0, "sessionState": "6d38622ad2e0c4885c7ac97b4de067f38363482547eec06001e3a748192a1d25.755866db-1e6e-44c9-b2af-400f23854c5b", "lastUsedAt": "2022-11-24T09:23:40", "permissionGrantedMap": { "permissionGranted": { "fa4294ce-3a92-4425-8571-60e212bb11d6": true } }, "outsideSid": "939ab65d-6346-43d0-9577-03a976978ef7", "id": "b8b2f39c-4ec9-452e-ac22-146a4c61a8de", "state": "authenticated", "sessionAttributes": { "opbs": "daf10d3a-6919-4a1d-b387-1eced74a9e87", "response_type": "code id_token", "session_id": "b8b2f39c-4ec9-452e-ac22-146a4c61a8de", "nonce": "9c10f9fb-0099-4f64-a73d-0b1c0f1e8175", "client_id": "fa4294ce-3a92-4425-8571-60e212bb11d6", "response_mode": "jwt", "sid": "939ab65d-6346-43d0-9577-03a976978ef7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ab616e2b-3c4a-4986-a3ff-f0de67273298", "old_session_id": "adec85b3-7df4-4b58-97ee-851df8a5025b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:39" }, { "isJwt": false, "opbrowserState": "0bb27488-e518-4a88-8a1b-47d78fd7ad78", "deletable": true, "dn": "jansId=6fd88dd5-b087-48c9-8a12-a49c8a32b6ac,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:38", "creationDate": "2022-11-24T09:23:38", "ttl": 0, "sessionState": "fe46a3ecc4ac65521d8f112ee4d7a04ea9b4455f95f2159241b4006f758c1b6f.e8060736-ef74-4ae9-a8cd-1b40cc9ec881", "lastUsedAt": "2022-11-24T09:23:38", "permissionGrantedMap": { "permissionGranted": { "b6dc35ab-6865-4571-bc8f-ef7592c80707": true } }, "outsideSid": "82c6f35b-0659-4d17-bf91-d9d9ac346a5a", "id": "6fd88dd5-b087-48c9-8a12-a49c8a32b6ac", "state": "authenticated", "sessionAttributes": { "opbs": "0bb27488-e518-4a88-8a1b-47d78fd7ad78", "response_type": "code", "session_id": "6fd88dd5-b087-48c9-8a12-a49c8a32b6ac", "client_id": "b6dc35ab-6865-4571-bc8f-ef7592c80707", "response_mode": "jwt", "sid": "82c6f35b-0659-4d17-bf91-d9d9ac346a5a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "59f33f22-8500-4851-ba86-48a70693d55f", "old_session_id": "78c684e2-bb2b-431c-882c-21b7dbcc93fa" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:38" }, { "isJwt": false, "opbrowserState": "fd4e1b03-d060-4d4f-a135-0181ca31cd38", "deletable": true, "dn": "jansId=0c8def74-7a26-46d3-9e0b-2e10d72e63ee,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:38", "creationDate": "2022-11-24T09:23:38", "ttl": 0, "sessionState": "b8dd8727e02324c38c6c8abd35d5bed6653065c201718dd4262f8e160c15ae3d.594f254e-6b44-4319-bb3f-e44625623db3", "lastUsedAt": "2022-11-24T09:23:39", "permissionGrantedMap": { "permissionGranted": { "4a23ffb8-daad-459c-b922-b21a9e8ebae2": true } }, "outsideSid": "0aae5c07-733f-4103-9d49-abf25aa0545e", "id": "0c8def74-7a26-46d3-9e0b-2e10d72e63ee", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiI0Y2E3NjMyMi1mY2ZkLTQyNWQtOTc0ZS0zMjBlNTZmM2U2YjFfZW5jX3JzYS1vYWVwIiwidHlwIjoiand0IiwiZW5jIjoiQTI1NkdDTSIsImFsZyI6IlJTQS1PQUVQIn0.iVKWglbxuswk0lvGSCc6JXuE8uBBiMiRX1roL63dunjb1X3wv0G5TLrXoAdzLSxIR8bPFAWT8837Cp4QHZlsVbThn_Fm_b6TI664zlb-Mu5fEhV5j3Ky-b-88XWbKeZSPXuU0NhhuO_fFrfEes4XA_wttDj2q5iyMc04IPbOQ6KAGdZ9KZ9cx6__AxOgE4veD692tdV81aqFHMoZIuzW3yh40RRsjxmavMTdzxCvlL6jpgz1srsQK3lXxS-QaS9Wi6Xmt--sFpLLN0oPO9q68g70J2LhYvMDfpyQapmFK1MY2qu6DA8iYz-v2b8aaKhcALqo1U1nbnn_ZkSup9924w.e0nQFMEAId7nSDI-.u26pYfa6LkfvqqDVLjz-py9k9uXmkdGv44W1yOCww7lH7te-smtKlNznLZGkswZCVZqQFhjTI7Ul4E9RLmiPYca1M2-xvEhDrlSv_qiBtb8mC_ND72IF3emzVrQts5Mtod5X42yfpVccIYDD_4lA62Mr7fkDqyNgRKLwGlU_nsKI5OVatrfAyMxG-uNgtbgzMxrlVAwLMb-1aQRDAoXKFhpZWODLFd1zETMf7E8iI5GXOPxsWMLArQRlOMP-aflEvFmS7k8Y97ph6Jxgg9JBvy2otZpkR7AGq4yWpNHscBTSJBDrMJx4SZV5ouj3gh-qaWvUCzK3arxuuRWM9MUip0aQKP_cXR4ItnoXRMQTTZfsKnLh2wP6zFX7jpCW9V2INxlIy8ji0mZhGZN-rS6U3gCWd5Sn2SbEmXuT1pImbmZ-ZctD8HnEAdhhzVmPhZUm-Lc0yEf9txzflKJ3hYzGbo5MqjA7ua3SPiiYMJdXbRSTrRC1mD1HwIeCtda9gmdirCc-17K--iM041UKB16XUoHKHdlnlVgBBruIzmZdEer8CQt1VQGaypqcGHg_04ARPaZ3E0NAYbp31E5JkYwDc-Vw9PCw402zAb1mbE1n8G7bb0uAm2kBKZ7wGpaxwBC7bDafWHdXoGaQiHtY0CCm7Q3MrYKT0SHXGDHihtC0G73C0bSEnPmsxhPIcDk0oowcwIEM0C8pV08cHAwvMbVQxo-m510Yn6XNiSwXPS3D5LFNO2ltsLy5REfeN37UwarKp20K_IycWajS5ClQXTqgf4cPhrO1lBlOb7anGbyhmGr_9MOwGgjpFj9__p4p4kmK3EOi-2d-czTpmTxeTWa656omnqCZh4zACsG9QMC74dwGeCoSL4q_Xr6pDwFCqvqLbvjHylXB.RNF959kaFCzciHjR7mJigw", "opbs": "fd4e1b03-d060-4d4f-a135-0181ca31cd38", "response_type": "code id_token", "session_id": "0c8def74-7a26-46d3-9e0b-2e10d72e63ee", "nonce": "7456121c-faba-4cab-aaf1-d596dfac1e09", "client_id": "4a23ffb8-daad-459c-b922-b21a9e8ebae2", "response_mode": "jwt", "sid": "0aae5c07-733f-4103-9d49-abf25aa0545e", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c3645ee3-0570-4003-bbea-3e2206a29fe0", "old_session_id": "52f36822-3565-4f5e-95e2-b08030171070" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:38" }, { "isJwt": false, "opbrowserState": "68be8cff-3ec7-4ea1-89eb-4c7093c83bcc", "deletable": true, "dn": "jansId=8baea61a-0276-4ef7-be89-943bb0cba0b7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:37", "creationDate": "2022-11-24T09:23:37", "ttl": 0, "sessionState": "ddf95b83c39e48cfb0147fe03b33125e766b21f43a02adba10607bba9ee33b15.244d4338-11be-4146-b224-8cbd94387388", "lastUsedAt": "2022-11-24T09:23:38", "permissionGrantedMap": { "permissionGranted": { "1efce9b7-38fb-4451-88a0-a11ace249400": true } }, "outsideSid": "98fd3fcb-ebe5-4573-91e7-d7e9c5bbb639", "id": "8baea61a-0276-4ef7-be89-943bb0cba0b7", "state": "authenticated", "sessionAttributes": { "opbs": "68be8cff-3ec7-4ea1-89eb-4c7093c83bcc", "response_type": "token", "session_id": "8baea61a-0276-4ef7-be89-943bb0cba0b7", "nonce": "18142d8a-ed1a-4eae-842b-fc898e4d2382", "client_id": "1efce9b7-38fb-4451-88a0-a11ace249400", "response_mode": "fragment.jwt", "sid": "98fd3fcb-ebe5-4573-91e7-d7e9c5bbb639", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8d3ca4ab-5c1d-42e8-8e09-cfca189a7e4d", "old_session_id": "e0ed68a9-3cd6-4dfd-af47-a422849124c5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:37" }, { "isJwt": false, "opbrowserState": "a5ec3c5f-e900-43b2-90f5-6e057aa95c67", "deletable": true, "dn": "jansId=b5d3639a-4880-4581-99a4-c528ed9f1e43,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:36", "creationDate": "2022-11-24T09:23:36", "ttl": 0, "sessionState": "3e8d565ac4890cd22b6e3c417c9412a70dedd6cf7c5a435f8da9ece1f6305287.88802b49-d494-4421-8cff-39d051dba9f7", "lastUsedAt": "2022-11-24T09:23:37", "permissionGrantedMap": { "permissionGranted": { "538ee48a-2a5f-45b0-9875-18dc0d0aa745": true } }, "outsideSid": "8111b095-d2e4-4ffe-8f6b-f9dc96464f6c", "id": "b5d3639a-4880-4581-99a4-c528ed9f1e43", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkEyNTZDQkMrSFM1MTIiLCJhbGciOiJSU0ExXzUifQ.uf3y5-g2UyJ25s-fn3jcQhGmceyFoBtaP70S8NkU4r-j6lMWYc6OrqXRA7YfJUt1ZTMh8gLckS0fKMedVvl-SQ9s_ee3VmnaqNztirwAVRf1bH0H2s7kt-ez0V4syTQqYo9QpmcUTNniY_TUbrHmqeQuSgbYyM4YpTknkGK49qHy8DdlPku15ZKAPq2NA3iP_cMfByb4y2v1XUmleXG8sdu-0LpPMvgUNNcRmK7FTcvALsqFpeZ_5QeFJOZZSfofBRMjzO4V0dSZNOJtF_q4WFi2wzQWyXm8J1aodAtQR8CAf18LvOo5PL3pZDVqfIHiMhrwsCr7fdzTCwIZkfVYug.Z5WQo12TZwLiAcXYUwG_ng.3aQMU453VmrKHoE1HitXnL6kg7C42fV0mtlM5EUtxWZoGV7WgRoWRQU4VBZ4UhIbu3vbMxYo8vihU3vD9_vj_VV6O5yTZ9AmjoMSzfJRV1V1Iwd5qqzyclXkgaD1jqGw5r6GNRytGzAgW8h8SGzoCQ1WqTKGQY2A14tHy0awCGmUfYpi0tfEk4Zv-KwwpEN_otEpjZgUI3njMR9JiYXw2cqBhc7AbTLuKJ-DEvYbSgkgMsG3BiDBsvOpFrFwofsJKb9JR_GoFbjVxZriy6jb6WzAxWDz0vdct1Wkr_Kf6BwMDge064qLaAtTbJbwH4cF9CvSDa22RChGE9l9Wd3JP0DU_BIzx9mGW-c8XUruQwwIKNxv3CJHf4RirogCcMElCel6Um1RadINzrNJx-vZqUfSQWku0q34UF9TfA2XXyeZ3w0ToTkeWrABoDfwFV0fA7B_157-D_gLHYlFMP5efbndJ-ZRlElvqQY7EqXCpnuQUBWOGktkzSYg1o_AqVqb8B96zEQaRsYEmsHOevO7DVpzhLdPzSku43V5JtQs-t17RGa34iwQP3RF6fBIQNgVpPwCuJGTqKO3tTaiK1Q4sxyPwAEKsDORsfYWavWh3OaWHhxjtrJ-FCYOm2sxV5etA8t4xDxr6kToXrvj3gFGZ6-CXgo2-JCqcRm3ROrghLWq-0YAQ-lJ3VumMPoSsqxGj-NkTItqWhkkgK3QveKyFq0BgblJ3P1S-DGiAr0AzHab6XFLc007REZoelgPaWuFtWk-qVIJe3gv3AEIibem7S5XukhbthvMm8kIzO0VZ1bLpQQ6CcpUVYuiGbB7LnKMkfLojSjxcMlQRlzYSlfCUUonWWWriJRM66jq2SQVNJliFRtXC1-5evWR07cijFaxzbQrZogJ_30LU6rjCxx_HQ.eaXjed8ZbGQzBoS3_dVUmyUZK5ecQXckeIyZaa0p4VpktN6qX_v1dCc3ZbZmKSI54Ghz7uxX7597-UVvuH_udQ", "opbs": "a5ec3c5f-e900-43b2-90f5-6e057aa95c67", "response_type": "code id_token", "session_id": "b5d3639a-4880-4581-99a4-c528ed9f1e43", "nonce": "5f978510-251c-414d-8f13-7a5c81a412c7", "client_id": "538ee48a-2a5f-45b0-9875-18dc0d0aa745", "response_mode": "jwt", "sid": "8111b095-d2e4-4ffe-8f6b-f9dc96464f6c", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e36db8e4-2d71-4211-9284-0ae6493a4402", "old_session_id": "65a3790e-a854-422a-8d9e-04278a90fc1f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:36" }, { "isJwt": false, "opbrowserState": "899dd75e-c0ed-4419-8c30-2d383a0ba912", "deletable": true, "dn": "jansId=76273755-3c05-495b-8d28-9fee2190fb69,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:36", "creationDate": "2022-11-24T09:23:35", "ttl": 0, "sessionState": "91b8add1a5a3838e5509a8be171531ca45d8c560d4682a1695b171fe8a3d3e30.39d865bb-d9ce-4a68-ac1f-ceebbee520ed", "lastUsedAt": "2022-11-24T09:23:36", "permissionGrantedMap": { "permissionGranted": { "4e53150f-556d-4190-94c5-bc71c12c6071": true } }, "outsideSid": "2b4a7424-7bcc-4029-be15-d494a9ac225c", "id": "76273755-3c05-495b-8d28-9fee2190fb69", "state": "authenticated", "sessionAttributes": { "opbs": "899dd75e-c0ed-4419-8c30-2d383a0ba912", "response_type": "token id_token", "session_id": "76273755-3c05-495b-8d28-9fee2190fb69", "nonce": "7cf026d3-5ef9-4fc2-a440-b7b2fb6e2139", "client_id": "4e53150f-556d-4190-94c5-bc71c12c6071", "response_mode": "fragment.jwt", "sid": "2b4a7424-7bcc-4029-be15-d494a9ac225c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d060ea7b-3900-4a22-a6f3-41c941000ecc", "old_session_id": "92e84782-2a55-41f6-8e8a-12b36174b47e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:35" }, { "isJwt": false, "opbrowserState": "550f5e9e-17cf-4045-9638-548c62a9976a", "deletable": true, "dn": "jansId=7ef5b4ab-a5db-4417-b0bd-98d8fb135884,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:34", "creationDate": "2022-11-24T09:23:34", "ttl": 0, "sessionState": "a08d10176b43433d1592bdd8a87194e4a4942c989c8f138eac0784f8f8dd4bfd.16fb4e15-92d1-4fed-be51-51ca4be404f9", "lastUsedAt": "2022-11-24T09:23:35", "permissionGrantedMap": { "permissionGranted": { "14d41425-6cf7-46cd-aeb3-fe2df400ae9b": true } }, "outsideSid": "6d1e5976-08ee-4fab-bbb5-9e3736f561b8", "id": "7ef5b4ab-a5db-4417-b0bd-98d8fb135884", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.j53jeSvjlZbP0x7sKDQLoyn53kaaawEE4hCtthLgLQAQb7zoTGFrHVBxALOkqxRcpvdVdLLiiDCWEcikAPvT7v-dqPkazPegYm8Z1xHHbJhMG7_WujE2QA7Cby5Jz3f4nNX1psJZF0UTBqosnauUr194C_W47zkKt6LSofFrZN4QsHpadNZfvlcselvaxmAIQrv51O4He3ietxFcZqS4e1YrTX7ekqhY6f7YRzGGErOCb-F9fuX2rhuvLd5ilk9Y4BnrajTOtQMdHgu5cj9bAIDF473MzPrvGftfLCN8KgReAjqrEeZJ8t2enSEE4ObnWtCdsobrPVTrMbw1sItCCw.mcH9PBDXVgACUGEGujvcJQ.i8L-E3T4Weq6uxh84s3Gt6N2f6A105i9tQef1ffVOOdxtbqnWEXz4RjqgS4tysGX05gKMki_wkDW0ZsPz0qWog80JVaYhZ43vGro4_4Tz2WMmsvbUow6hn1reiT_M4Q6Cr1DUdJ8IW4iJvk9LHRILdJY5p6c8pVXH15z2cTXOrQ_5JQvNdaC2aDM_9GFoWbh9DpFkD_lbOa1oauK2Zy0RnrwZQvVtBugpXSzkLzMhXMEAuPjHpWAV7qXlag-sLW2HYnrzR8rpI8pR8emA2PC13J6wY1sjRYTkazwIhk7hFGyRCPFr439QZBcfDBygbnfIX2iFsiw8W0s5bJ_A0jvDbMIUdB_WQhB8dxD_CkkuAcSyG905Pkn0oH6Y4052fUkQjaWq3eh374AVGLmz0bUO4mgpq7HDSCVPm6y00pnq8Y7P46Tw18mb7Wzbc7b_fL46ztXCvDv--dT_KQRLdmDc2bJhH_9x7e0-I8LD69v3s_GXbDLGGCo3AfyFYjKKvNhnJMe0Hps2ajsv8S_BpNyzySwECf81eQ8gJkzEqyFcMJ8kk7kTdR47gBNvT4yN9UwQozZzBM3MPhYjHx3fcJqypniXvvqp1g9ZN8avR2xkW-B6OvxR2SAZFivI8pOYA6CNjYhp4vWEdHA1VrnjdN0u27yQSbHkug-i29IJ6SrmdL6JZDmSYgWTYzP2G9jmlvILNNKG5My-X0lxKFGPwghtRcimHqp-Ct7RzwabZe9llZFJGpq81XZtjbYsGDaLWbCYzpyYUMPAKFAWStV9_7L-v5Xm7RL0mB0UlIp5ucU8k6gy16Q-FquN5xEPT2druxBuxOpGF9jkv67vduTSH0trz_U5DYYyoDTp0YbM8TvCMII4tF3sVMtGe5FD8XQNq3LJosgnlMMSCA1OC2snN5zeg.HtLBy9-2Pi_BxeUbO21YJNuPepQP8f_EmcRTSGyiK2k", "opbs": "550f5e9e-17cf-4045-9638-548c62a9976a", "response_type": "code id_token", "session_id": "7ef5b4ab-a5db-4417-b0bd-98d8fb135884", "nonce": "3b22db3e-17ef-4861-9480-d79660de3351", "client_id": "14d41425-6cf7-46cd-aeb3-fe2df400ae9b", "response_mode": "jwt", "sid": "6d1e5976-08ee-4fab-bbb5-9e3736f561b8", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8d56d2a0-954e-4e82-bf47-da44fb29c27e", "old_session_id": "2c31f60b-dea7-4f4d-aaae-04efe30035b4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:34" }, { "isJwt": false, "opbrowserState": "09c3930f-fb46-42e1-bab4-7be663a5726b", "deletable": true, "dn": "jansId=901db9c8-142e-4074-926b-d77c6ca73b63,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:34", "creationDate": "2022-11-24T09:23:34", "ttl": 0, "sessionState": "88ba6d9a5b253d0d60d00c052af1e40fcc7d2f60c1b650f39f0898efc08812a5.10580e65-345b-4ef4-933a-46b242296c74", "lastUsedAt": "2022-11-24T09:23:35", "permissionGrantedMap": { "permissionGranted": { "a924375c-6876-4005-8ce8-d4bb9ccd5da8": true } }, "outsideSid": "45dd2da0-2edc-407b-ae80-a777d8bf01c9", "id": "901db9c8-142e-4074-926b-d77c6ca73b63", "state": "authenticated", "sessionAttributes": { "opbs": "09c3930f-fb46-42e1-bab4-7be663a5726b", "response_type": "token", "session_id": "901db9c8-142e-4074-926b-d77c6ca73b63", "nonce": "6f69f477-da45-425c-9f4e-7577a0855954", "client_id": "a924375c-6876-4005-8ce8-d4bb9ccd5da8", "response_mode": "fragment.jwt", "sid": "45dd2da0-2edc-407b-ae80-a777d8bf01c9", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0b435f1f-9e38-41a4-a2cc-7b945f7794fe", "old_session_id": "a2e56f8e-7ac7-4b98-abe4-09d3475fa12a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:34" }, { "isJwt": false, "opbrowserState": "ab4da368-6dc3-43ac-99da-3de953aa8897", "deletable": true, "dn": "jansId=3bccadf1-7d5b-4f8b-8c20-0ebb1d41810e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:32", "creationDate": "2022-11-24T09:23:32", "ttl": 0, "sessionState": "e9f322c215b84683b18a498db9ac2109d46cc820364b75ebc9855c180cda339d.ae10b289-e082-4cb2-99ef-546ecbbb3aa1", "lastUsedAt": "2022-11-24T09:23:33", "permissionGrantedMap": { "permissionGranted": { "39ac839f-a444-4240-878c-402f8c8e8567": true } }, "outsideSid": "e45b33a6-be9c-4c26-9d0d-e67358232f70", "id": "3bccadf1-7d5b-4f8b-8c20-0ebb1d41810e", "state": "authenticated", "sessionAttributes": { "opbs": "ab4da368-6dc3-43ac-99da-3de953aa8897", "response_type": "token id_token", "session_id": "3bccadf1-7d5b-4f8b-8c20-0ebb1d41810e", "nonce": "5c6ad65d-d6c5-4e24-b7c3-56388cd853fc", "client_id": "39ac839f-a444-4240-878c-402f8c8e8567", "response_mode": "fragment.jwt", "sid": "e45b33a6-be9c-4c26-9d0d-e67358232f70", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "36fa0583-9c48-41ac-8dc2-e9493a644b00", "old_session_id": "6e169017-5100-4809-851d-5702c49aed49" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:32" }, { "isJwt": false, "opbrowserState": "707ffb4f-8bbe-4538-bc21-87157cdb3765", "deletable": true, "dn": "jansId=8f3cec61-f5d7-4494-ad85-d2b2675aed97,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:32", "creationDate": "2022-11-24T09:23:31", "ttl": 0, "sessionState": "4b7826fc52f408f177e9cac05854859657eae0045982a3a4704fb792704db451.1756f22a-1136-42ff-acf8-ffd9f99e0c8b", "lastUsedAt": "2022-11-24T09:23:32", "permissionGrantedMap": { "permissionGranted": { "75945648-a332-4263-aecf-1e6e9394304b": true } }, "outsideSid": "cd80e0bd-ffd0-4f28-860f-c6b6513372f8", "id": "8f3cec61-f5d7-4494-ad85-d2b2675aed97", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.ZmMnUVSxU1TqLQAta56RJ5cwtiJwxNwRqT1EB-HpQgAqAQ8_rLj0r_0mPt50EVQ8kxFtLe0BdbfJMSYybzulZ4Za3kEflU7q_FqpwPK8joDgfxN8mnZhxXOqKddXrmlWn-JbHzlsibTS4VXCLb4MHKD_T_spET4Ky-mKa_7eQkQmSwA8ZLIjTpxhwElGme8o4YJuwRHh3HiMcHLwZi9voz8tzdR0sJRvtaI9ERSzap8w0UU93tnrcXuOh2obYNe7UoYIDyFSwCzssVZd6STgAG4Z-FFN1v0U6FM48OcKa-IjhGCjC3ion4gCJBXIKYRlRBryd9Vy_GspyLjakQHbmA.Uwc9XK9JaHUe4L-b6D61UA.DYS9UP4cbcRnEgDzWA-01V-BmgmMXd5KekVkWi9KhL4AOJBDmMpM4vHc8HDfrRV1Hg5PeoUizjGnR9DCq2xVPAhGolrsDnwejag42R4FnbX7TDtgdXVN74H53H2ALEm8wVULNU_1a8LBrayouj3VATLs7vsFjT7DCLVjxnVwsWgL6Rv_rBwqeoo-0SlfSuSv-5zvXIbQoZd8nH_gtH9OeOYl-LpKyWabAnoF1oDBh_oASSrUrXBht1LM8ceC-7UjVU1pNLqmAFNt64uVoFn0x1pChvxGQh7HX2gaDP79X9szZroeVMMNhx4HCyEMyKYmkPBRWVt5TyAilBLLdtyNbmZDi_e_bWNv5ybYbEDRXvtn8nyOYlz9i-Sy_bw0_2YMBsWjHsr857QIum7LWdg157XAGhL1EopYaW_Ol_W3pWpF3iY7mqihJ-03pU-u3sZQY3MblIv0rQVEc9X17GiP7vxOr3F0m_kKN5iFmmgkIalCl6YE5k_b5r8eCNOMt5GpWM0YPMlFfAFOIOILZltIwygQ_m0tou7iBdfNSOJ2tqLwn7dvAvNP3uh7qOPsFMroRRqATvRIQH4P43Fn5eJoZQb8_nvAXieHQHf9b4lFu4EzAOaE28e6sk7AkMk5Zq0jAlBgKTRuM7tkH3kOpVtVtETurV5Wy1wqSEAVCRhRJGO6y1wE7ej4e3Q4pig9gJdEMBZsjVDuzzeKZGIvRb5D6qYTwc5qq-dVO9itPDVuI8sfiTIv-5oXk1AtfFspEJUf11-7hzB8kjhyn36GwXjM4Lg_ewj4IhOHFOuymIRf-o4.6PBC6FCYCgRMmQcyAcPiP_NhMfQ6EiwTDYv6ChVLJ98", "opbs": "707ffb4f-8bbe-4538-bc21-87157cdb3765", "response_type": "code", "session_id": "8f3cec61-f5d7-4494-ad85-d2b2675aed97", "client_id": "75945648-a332-4263-aecf-1e6e9394304b", "response_mode": "jwt", "sid": "cd80e0bd-ffd0-4f28-860f-c6b6513372f8", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5cdfc499-f707-4d17-a614-47e02aadfc97", "old_session_id": "87c94e04-fa6e-41d3-8e82-da30f007ff49" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:31" }, { "isJwt": false, "opbrowserState": "85c1ba79-5998-49cc-96b2-f7ed5e3dc7f5", "deletable": true, "dn": "jansId=8677fc16-984a-4838-b238-90d4a30ef810,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:31", "creationDate": "2022-11-24T09:23:31", "ttl": 0, "sessionState": "02b38d9fd2ad8560108f975cc03150dcf9db470e742d08ba443f40858040da05.c2b22ff1-2b34-4be9-ae35-f572867c56eb", "lastUsedAt": "2022-11-24T09:23:32", "permissionGrantedMap": { "permissionGranted": { "cbbea694-21bf-4bf4-a700-fd666d3af4bc": true } }, "outsideSid": "1fbc121a-c204-4600-a780-0e979f8dfc2a", "id": "8677fc16-984a-4838-b238-90d4a30ef810", "state": "authenticated", "sessionAttributes": { "opbs": "85c1ba79-5998-49cc-96b2-f7ed5e3dc7f5", "response_type": "token", "session_id": "8677fc16-984a-4838-b238-90d4a30ef810", "nonce": "c1fbd854-14e7-4421-9915-70d81bd0a94b", "client_id": "cbbea694-21bf-4bf4-a700-fd666d3af4bc", "response_mode": "fragment.jwt", "sid": "1fbc121a-c204-4600-a780-0e979f8dfc2a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ba7b4c60-0df5-4e31-aa8a-e6cc47c81721", "old_session_id": "1e126199-6560-48fe-b8d2-7310d5d3df14" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:31" }, { "isJwt": false, "opbrowserState": "7d9a856a-d94e-47d6-98f5-a260169ac98e", "deletable": true, "dn": "jansId=4f05009c-0f6a-4a15-bf92-ea2cac7934c5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:31", "creationDate": "2022-11-24T09:23:30", "ttl": 0, "sessionState": "844405c85c270a7c67aad47d4cd195d9b6206dae22e3e11aafb7cad8142eccc7.7f82829a-22c1-4ad4-adfa-07310d009ce0", "lastUsedAt": "2022-11-24T09:23:32", "permissionGrantedMap": { "permissionGranted": { "55bf1757-c26d-4c92-8e05-ee852200b564": true } }, "outsideSid": "658626ad-8739-4e0c-8049-113462ca2ed9", "id": "4f05009c-0f6a-4a15-bf92-ea2cac7934c5", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.CzNp1ZU9naOQ9Ab__uWzx1hhteHnom3u.wIFFPJTTqfFP7U_o.rsMangHojS9w-Cv9hbZPzKkBDqAdNvM7h6eSoir9kZfHd93HidzNermdWNpBaVRF1rXWDnhnjRwSggx2KFHz03ytP9zALi_Pr4mX0jKZh2ORsZ5d9e3LkLx7q4l7wvGGrc2uahGEGX9EjZUgCFpduWzop_ftf3ewDUImuoFEtpG_pLzjO_KQgI9VwMxr5Z3wO6uwajsyjZ2swSCVkh3kbHivflHj2q339Pz_GBY0dL3VU8qPZaS0YEyXPmlEVITd_DP5YFV0vhwxoID0JydFsUtVFEstE94WRPyFX0dgQch6qTOJwLZxiyf-hBV0MORehSTVyD_kkMGRPyGfHzDq-tCOdRYw2AqP6RRyCdYEER2UPtztelkYdKXWO0m9R2Exuw9ZsG9zSBJL3aDR8wFBDZ-XzYehheQdBDxVXs0QSkXSeNleOI19QfmdfNhBncyJKvi7xxtFRuaxQJd49zTDLyjUsHNBl2sFJVAZhkMfJRdTlYV_Gg0zSIXITp5iNv7L6Czr4l1bngbDinosvk2_zpSI_UJ-o2LuZbgtbnmN5tWP0crLdhF3Y1XW3ZE7JxKj14hJW-E0GeDTXyaQGrnv-70Re5k3tszHEJQZJ8Z3UhQXVKOHAMgTF51j6tFk-Dfn4ZVUM202hRX0LiFa2J2e_81mEtivNxS2S31rsziJ2gpk8Ehi-3HekRQtw5X2Ibv87ETcdajbGjkrqrZjR69JcVHv_M6cVZsOU9JY09-uEF89xnFiEasFxEGT7xaNYs4ARJDfq234O5NYPCs7pUm2Pcp0bLJ_MoOxfjgKpmHziTR4zBlFx_3pMtrbBKzJW4_CPclxfMdXRbpS-EuG-m_fXZwEjD_X4DqOXWezzlovVIGMEwgRxp3F9CConJWPHBk0rtYseUcR.k4OAx35NLGHEtNlzWOOirA", "opbs": "7d9a856a-d94e-47d6-98f5-a260169ac98e", "response_type": "code id_token", "session_id": "4f05009c-0f6a-4a15-bf92-ea2cac7934c5", "nonce": "62470a0d-577b-4dec-86fc-66eed12d2316", "client_id": "55bf1757-c26d-4c92-8e05-ee852200b564", "response_mode": "jwt", "sid": "658626ad-8739-4e0c-8049-113462ca2ed9", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "79f305b4-f91a-4e5a-88ac-09e58b811ff2", "old_session_id": "fcd05e7b-b286-499f-8646-a3b76572dceb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:30" }, { "isJwt": false, "opbrowserState": "6fdb447c-4a29-4e63-80b3-d94bb1759fd9", "deletable": true, "dn": "jansId=0811700b-7689-4b31-924e-a6ceb570e17f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:31", "creationDate": "2022-11-24T09:23:30", "ttl": 0, "sessionState": "6f0d49aeee2046fcbad8b657d885067f663880ad8c031b114a931e6b563ec3dc.4585fd31-aae3-4a66-a4f0-30b443c5b25e", "lastUsedAt": "2022-11-24T09:23:31", "permissionGrantedMap": { "permissionGranted": { "18da687d-63c2-429b-a780-e0e095ec84af": true } }, "outsideSid": "798e659b-3985-4f5a-857b-eed4d66a6119", "id": "0811700b-7689-4b31-924e-a6ceb570e17f", "state": "authenticated", "sessionAttributes": { "opbs": "6fdb447c-4a29-4e63-80b3-d94bb1759fd9", "response_type": "token id_token", "session_id": "0811700b-7689-4b31-924e-a6ceb570e17f", "nonce": "b183eb2f-3ecc-4ea0-a318-36ab20a39404", "client_id": "18da687d-63c2-429b-a780-e0e095ec84af", "response_mode": "fragment.jwt", "sid": "798e659b-3985-4f5a-857b-eed4d66a6119", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a3d3c4ad-2702-4baa-90e2-3a994c5b1a3e", "old_session_id": "b7a4bfa8-5052-48e1-aa9d-f31c4d83bcb6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:30" }, { "isJwt": false, "opbrowserState": "c79b9e13-41b9-4d56-abba-d1b393d2860d", "deletable": true, "dn": "jansId=7e7fb451-f6ba-4962-9ec8-e760c8380342,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:30", "creationDate": "2022-11-24T09:23:29", "ttl": 0, "sessionState": "73b6d1e7c92ddf9b4505e3d95b42bebbf8f0ad6b4facc73b99d1ea5de188f947.712522b0-d077-48e0-8542-24c5ba3feade", "lastUsedAt": "2022-11-24T09:23:30", "permissionGrantedMap": { "permissionGranted": { "ccca2d5d-0e53-4075-bd72-05cc064ad505": true } }, "outsideSid": "9e46dfec-97e8-4ad7-8a5d-e9818a052f16", "id": "7e7fb451-f6ba-4962-9ec8-e760c8380342", "state": "authenticated", "sessionAttributes": { "opbs": "c79b9e13-41b9-4d56-abba-d1b393d2860d", "response_type": "code token", "session_id": "7e7fb451-f6ba-4962-9ec8-e760c8380342", "client_id": "ccca2d5d-0e53-4075-bd72-05cc064ad505", "response_mode": "fragment.jwt", "sid": "9e46dfec-97e8-4ad7-8a5d-e9818a052f16", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "64f8ce50-f7f3-4227-8f46-363fd9125e55", "old_session_id": "c4e99e87-a528-45c4-b222-c4d509103dd1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:29" }, { "isJwt": false, "opbrowserState": "3e170e14-3303-4ab3-a1d4-0c0bd0496401", "deletable": true, "dn": "jansId=1ced09e8-09e6-4dc1-b38d-c437cf2adf88,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:28", "creationDate": "2022-11-24T09:23:28", "ttl": 0, "sessionState": "496426d8bf9476ce8b48c70b50ec25f0f417c2101a9d56a19cf8846c8ceb6faf.667cad31-f833-43ed-87de-437acd5e0364", "lastUsedAt": "2022-11-24T09:23:29", "permissionGrantedMap": { "permissionGranted": { "982958ad-9588-490e-8cde-64c933208261": true } }, "outsideSid": "72f2f39a-c2ed-4a80-8c0b-5220bd23d297", "id": "1ced09e8-09e6-4dc1-b38d-c437cf2adf88", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.gJ0P-8Gy3v9QNb6Yew2oulU68Axy-dDD.aoilfG1ffbtP8evv.8M_Yga73EseKsnO6mUjJPkIBrE_1Yk-C8ZS2LY64agn5mq-4WYaOt4Ur7daXBwwYxjjILbqYoOjnWFsQd7xDwZlKnm8oa69sDwBLPzefZ0lbMDJw_n0ITk3SfMVy-fKt30sQhc4hjXs42p9MepBNq8ipzl4LVVuFMlsaNO0afHkpBuIY2_GcONSb-RJNaCOz7GnVy_EEvF_CuGLaVEzA31bydcf9wO4jxFuki9bWaW7w6hRL_mCP4XbT8HS2KR2uvNg0Vb8tzbhG75OwFGXAMOUFRVHGsFX6qm17cvAsVECZJ2w3r61V2K-1T41KezG4Hlt0TxS-vRIO6b42vqnIBGP07pKyp5AmJVWSKcWD3JPniRYIOYZgzRP7F9aKLgzr8SuRqnWiKcgXqOeR29DbJqN20wT4TwUEks3y7u6Af8PZGqeYHYMGQe6xcx7EEp8EPyrdUKsQP5kSk2dmHgBIPfcl2GP-atpJmEre-vOLDlTQIBZlvovfqmkPCg1MZQQUrcLQBGLdDrZFtix7uKIlaGmUyuI7jxooV6c4dVmw0O7SUU99IEGEH9wISMq0YqjIQtUic9FcI6BYeiDl9kAe1BT_8DQBWhVCgyRPgM1EV6jI7uVwDXJ18EuZzGAeOtZFsqz5YSzC_ccQCYIRyb77enVo1TaqxkWdzMlmIEonFn-btBJ1-LZKXP5iQ5KYbruERbzGMFzn3FDumiwjU4QWFCozFV1nocZL4iC1rcjFMlRLAAOEH5ltcgBleyhW287WHVicelumR5lxDIplAaUTxgTDvIG_XA.G_mN0CLSlJ1LZ9iC9BiT6A", "opbs": "3e170e14-3303-4ab3-a1d4-0c0bd0496401", "response_type": "code", "session_id": "1ced09e8-09e6-4dc1-b38d-c437cf2adf88", "client_id": "982958ad-9588-490e-8cde-64c933208261", "response_mode": "jwt", "sid": "72f2f39a-c2ed-4a80-8c0b-5220bd23d297", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5a163d5b-e406-4d63-8f6d-d884bb253e14", "old_session_id": "411d3f35-6d3c-4acb-aa45-9f9396a24113" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:28" }, { "isJwt": false, "opbrowserState": "3ada6f0d-a371-4fd1-b3bd-cd254feaa34d", "deletable": true, "dn": "jansId=a634d70c-d779-4b3c-b804-ea40c105bf13,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:28", "creationDate": "2022-11-24T09:23:27", "ttl": 0, "sessionState": "2985d896f4d6e6ec1ca2be377e44bc9577873fd0389ff680eb14ad83e8b46741.875f2fb4-3944-421f-abf1-0a7d48efb824", "lastUsedAt": "2022-11-24T09:23:28", "permissionGrantedMap": { "permissionGranted": { "162a4299-ef38-4a15-9559-ba70da5dec7f": true } }, "outsideSid": "70bc877a-38c5-4f2a-8cc1-2faeead0b2c2", "id": "a634d70c-d779-4b3c-b804-ea40c105bf13", "state": "authenticated", "sessionAttributes": { "opbs": "3ada6f0d-a371-4fd1-b3bd-cd254feaa34d", "response_type": "token id_token", "session_id": "a634d70c-d779-4b3c-b804-ea40c105bf13", "nonce": "9af24c03-fb95-44ff-a908-0f0179c9d837", "client_id": "162a4299-ef38-4a15-9559-ba70da5dec7f", "response_mode": "fragment.jwt", "sid": "70bc877a-38c5-4f2a-8cc1-2faeead0b2c2", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4440d324-2b80-4a40-b41b-16c4e8edcdad", "old_session_id": "83ca196c-2f6a-46a0-8135-de3ebed1ee73" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:27" }, { "isJwt": false, "opbrowserState": "426e6fd8-b9b7-4308-bd0a-088016bc684c", "deletable": true, "dn": "jansId=4929cad5-c85f-4861-b79f-ac62902edb0c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:26", "creationDate": "2022-11-24T09:23:25", "ttl": 0, "sessionState": "71143f1fffdf82f2f2f51a556594ea465c047a7ee504f3a51288c858621013db.bcf25e9b-2bbd-4866-aa8b-63189bd45c17", "lastUsedAt": "2022-11-24T09:23:27", "permissionGrantedMap": { "permissionGranted": { "d1a4a9e0-db4a-4372-a786-8bccfa2012e4": true } }, "outsideSid": "1872e105-8f3c-4284-83ac-693e02aedd61", "id": "4929cad5-c85f-4861-b79f-ac62902edb0c", "state": "authenticated", "sessionAttributes": { "opbs": "426e6fd8-b9b7-4308-bd0a-088016bc684c", "response_type": "code token", "session_id": "4929cad5-c85f-4861-b79f-ac62902edb0c", "client_id": "d1a4a9e0-db4a-4372-a786-8bccfa2012e4", "response_mode": "fragment.jwt", "sid": "1872e105-8f3c-4284-83ac-693e02aedd61", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ae0d783a-399e-4e39-a742-d2818baa679e", "old_session_id": "bbd90b38-a6e8-4748-8905-93ed5d477474" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:25" }, { "isJwt": false, "opbrowserState": "1fb3ac68-0fc9-4d72-ab5e-5fefa7d16ff6", "deletable": true, "dn": "jansId=94315875-c892-471c-b98e-9df857884e87,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:26", "creationDate": "2022-11-24T09:23:25", "ttl": 0, "sessionState": "1e404799c521f33053ba05049db3ed1e8dc39c946e628fa2e9568584fda55640.88fb8d00-f1e8-43c2-b7ff-485db0e114a5", "lastUsedAt": "2022-11-24T09:23:26", "permissionGrantedMap": { "permissionGranted": { "73b2b8ee-7bf8-4eb7-bcd0-6ca6c8611332": true } }, "outsideSid": "7c776334-673c-481a-be27-1101e1f35e7d", "id": "94315875-c892-471c-b98e-9df857884e87", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIwMWVlY2JmMS0yZmE1LTQwZTktOWM2Zi01ZTRiZWQ1NjZkNGYiLAogICJub25jZSIgOiAiZDUxZWY2MmUtN2Q3NS00Y2QyLWEzMWMtM2JiZmY1YWRiNTRhIiwKICAiY2xpZW50X2lkIiA6ICI3M2IyYjhlZS03YmY4LTRlYjctYmNkMC02Y2E2Yzg2MTEzMzIiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.eQUrfCN2IxyWNbmPi0hP7Bsj9_exyPG0T4U26QWJxFDjmR7R1DrFtgjCP-MstGF9SDQ3BIdoMs31TZlVQ0dXdOoBF07U3Q95wWgXrQ4SQun74YmlEH9HEz9tjkTkskxNVcz2YY57YPx718puHnjsm7k_niOxD5-TpruJNvyYdVeg_AjsSiiRGVewe0ONO0uIOu6-X9XxzAJXs8InoQWQRM0u5JshxZGmVsZ3VGW6ORhyQbSjBEVSyfRXfgO-2FZtNfJSK4bE3sQOG4tMO-nnvnUYKTpirtk2CrZzn-UZgnm8dBjTBgRg6LwHFawg-j4RcKgn9U5s-R0rbwN3065MuQ", "opbs": "1fb3ac68-0fc9-4d72-ab5e-5fefa7d16ff6", "response_type": "token", "session_id": "94315875-c892-471c-b98e-9df857884e87", "nonce": "d51ef62e-7d75-4cd2-a31c-3bbff5adb54a", "client_id": "73b2b8ee-7bf8-4eb7-bcd0-6ca6c8611332", "response_mode": "fragment.jwt", "sid": "7c776334-673c-481a-be27-1101e1f35e7d", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "01eecbf1-2fa5-40e9-9c6f-5e4bed566d4f", "old_session_id": "80df88d2-fe52-4f04-9574-ca6dc52f2a85" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:25" }, { "isJwt": false, "opbrowserState": "b4e95ab5-d5e3-40b6-8a44-cc663266cc54", "deletable": true, "dn": "jansId=aff22b81-41d1-4f6e-bc47-5abc2bb47b37,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:25", "creationDate": "2022-11-24T09:23:24", "ttl": 0, "sessionState": "d77c16b27bbbc29a5570e8806b7a9e687b33875feb354cf681c721114492bc9d.657a8099-c03d-4196-a88c-6c60520fee4e", "lastUsedAt": "2022-11-24T09:23:26", "permissionGrantedMap": { "permissionGranted": { "f440f8cb-cae9-4dd1-814a-cf2d0212d94d": true } }, "outsideSid": "dd8c76dd-16a3-450e-b107-6c05d2b66477", "id": "aff22b81-41d1-4f6e-bc47-5abc2bb47b37", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiMDk3ZGRmYTEtMjE4ZS00YTJiLWFjZDctOTBjMjc1YWNlMTY2IiwKICAibm9uY2UiIDogImI0NmRhYjExLWUzMmUtNGJjOC1hNTAyLWU0OGQyYTY1Y2I3MSIsCiAgImNsaWVudF9pZCIgOiAiZjQ0MGY4Y2ItY2FlOS00ZGQxLTgxNGEtY2YyZDAyMTJkOTRkIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZnJhZ21lbnQuand0Igp9.yVolxE31GrdXNK6VVmgahdrlbq1MraNEC8re9cHGcM7iUW3D-wKezlzF5esjB56LvdTeJVM8O4rhA_UiQHl5ou3f353FJYz8psuAFGWGl2S2HtrMA0Jsqmur5e8ab5GnzKrqAktNnaqh4d4cRZGggpcmmRlKQxeBW-C2FAIpPP8dxX0sjUMY48fIOHrxHstuii3zVv-EDp2Zzv_auYtfXlAyWlwfCvTFkSY4f86xtxAg1oMUTOVUNLoE1LElH3OHAIeHkFEK9nmLTFLMgsivoTOKlG8cKQpqQgvIttGehQF01X4ieM1mP80Z8ZTRyW0RIrDWAwaXghxJ_Q3yxONaYg", "opbs": "b4e95ab5-d5e3-40b6-8a44-cc663266cc54", "response_type": "token id_token", "session_id": "aff22b81-41d1-4f6e-bc47-5abc2bb47b37", "nonce": "b46dab11-e32e-4bc8-a502-e48d2a65cb71", "client_id": "f440f8cb-cae9-4dd1-814a-cf2d0212d94d", "response_mode": "fragment.jwt", "sid": "dd8c76dd-16a3-450e-b107-6c05d2b66477", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "097ddfa1-218e-4a2b-acd7-90c275ace166", "old_session_id": "49e59989-6ff7-4257-ae80-470c12e107c6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:24" }, { "isJwt": false, "opbrowserState": "0f59e690-6e91-4ccb-986c-05e2a803ed8b", "deletable": true, "dn": "jansId=90807750-05dd-493e-a3c9-73d4f249a555,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:23", "creationDate": "2022-11-24T09:23:22", "ttl": 0, "sessionState": "6a7fe01de5a2bd6fac886472685c1b2c23a1989f52fbb51cc9b0e305d11422a9.5fa86206-1b7f-439d-9bb2-29dcfd885c2a", "lastUsedAt": "2022-11-24T09:23:24", "permissionGrantedMap": { "permissionGranted": { "2437dfe2-6cfe-432d-88ff-d5bdbe1e9e53": true } }, "outsideSid": "1e1642ba-b32d-43cf-894c-2ab3bcf77ca3", "id": "90807750-05dd-493e-a3c9-73d4f249a555", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJhZGZhODYzYi1kOTU0LTRhNDUtYTQ2Zi05NzA0OWZmMWQ5NDciLAogICJub25jZSIgOiAiZjQ5M2M3N2QtZmQ3NS00YzYyLWI1ZDYtYmRlN2Q3Mzk1Yzg3IiwKICAiY2xpZW50X2lkIiA6ICIyNDM3ZGZlMi02Y2ZlLTQzMmQtODhmZi1kNWJkYmUxZTllNTMiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.aruq3focZs6E23HyjHJzse6-KA0bUiIzMYw4x6fNowhMw_j3Rr8lRHWaYBKnAq07RKEj3_ipXTWOlj1mGFJ2ACHLaRAwsGqUZzHI6U6GbBc8YlJG_068ApyszUkGV6WMz9uxnuefFvPc5eU9ivGme-ThTATujBJt697UtZbDdQcIrq40WjyiPbvlDeuNz8D1mhrxq3w2YRbGEBKfonXwsJabzlMVtsFcD-Yda0Oye1bBGOVCtVOzriXWu07oLBks4_ib3tk2mL2JHCUek3hFgrjl3Ya2HuIghj_iUVmUAhp8XEwZNdIILL6TVbICcSb74C-kyWtsMbuZFvpwUxwwCA", "opbs": "0f59e690-6e91-4ccb-986c-05e2a803ed8b", "response_type": "token", "session_id": "90807750-05dd-493e-a3c9-73d4f249a555", "nonce": "f493c77d-fd75-4c62-b5d6-bde7d7395c87", "client_id": "2437dfe2-6cfe-432d-88ff-d5bdbe1e9e53", "response_mode": "fragment.jwt", "sid": "1e1642ba-b32d-43cf-894c-2ab3bcf77ca3", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "adfa863b-d954-4a45-a46f-97049ff1d947", "old_session_id": "1ce562a9-c2f8-44a6-b37b-947383e919f0" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:22" }, { "isJwt": false, "opbrowserState": "f7270184-0efa-43dc-9005-fa580fa68e09", "deletable": true, "dn": "jansId=a53e15eb-799d-4388-9882-9b2fab8370b9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:23", "creationDate": "2022-11-24T09:23:22", "ttl": 0, "sessionState": "b652c149e934f21e5fb6a2f56e4abafb2e9ef6a45ce97ca0f1fd27c19805eed8.46811592-93d3-40df-9f7c-125f075b062c", "lastUsedAt": "2022-11-24T09:23:24", "permissionGrantedMap": { "permissionGranted": { "23a3b337-972a-4c2f-985a-952b0eafc338": true } }, "outsideSid": "ab1b64fc-2197-4185-bd8c-6718ce88cb62", "id": "a53e15eb-799d-4388-9882-9b2fab8370b9", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiOGQ0ZWZmOTUtYzYwYS00NWRjLTgxMzktYTM2NmFhYmRiOTY2IiwKICAibm9uY2UiIDogIjJhOGYyN2U4LTI3MTctNDhiOS1iM2ZmLWJlNzllYTk2YWU1NSIsCiAgImNsaWVudF9pZCIgOiAiMjNhM2IzMzctOTcyYS00YzJmLTk4NWEtOTUyYjBlYWZjMzM4IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZnJhZ21lbnQuand0Igp9.fjvdGQTIXO_PQaRPiDIHur8brEm78qYjpV9LEl98JPd-eNOTdwEK64VZ5o_Kt45I-kGrITQPKKTeD_KWc9xgyTQTGHcjdbwgieWw69gAdIzM4Rw1YrN0VG6lOBMnwU0q7YByilzw2m6yYSVibHzzdnqXtAjy40TcgRmwLxVWbRjjxFn6o3jCXlHTIUxebGIDR1cDQeV7y7xWLSuUdUPZCaycNvQs7ZhUUS0hdyb4b2l5kXy19Z7901E3rAv2_wYW-KBOyuJnEVHoH8QtjYqlDBPFR074XBFilH2fBxumgTMwAZiGoB8vmX9OB0ft9cJydM-S2QzY2n_kaQbYaXa6lA", "opbs": "f7270184-0efa-43dc-9005-fa580fa68e09", "response_type": "token id_token", "session_id": "a53e15eb-799d-4388-9882-9b2fab8370b9", "nonce": "2a8f27e8-2717-48b9-b3ff-be79ea96ae55", "client_id": "23a3b337-972a-4c2f-985a-952b0eafc338", "response_mode": "fragment.jwt", "sid": "ab1b64fc-2197-4185-bd8c-6718ce88cb62", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8d4eff95-c60a-45dc-8139-a366aabdb966", "old_session_id": "d37733fa-e85f-470e-bf2c-343fa5370666" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:22" }, { "isJwt": false, "opbrowserState": "a005bfd9-6c69-4c77-b5da-73aab3449164", "deletable": true, "dn": "jansId=278c9411-1059-477d-9a0b-4c19afd44267,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:22", "creationDate": "2022-11-24T09:23:21", "ttl": 0, "sessionState": "c575887c7632189f13a18c933d76cc74e079256a046d027b92251e6ecea2bda9.8479fee0-a650-4dfb-a04f-876d66b1a993", "lastUsedAt": "2022-11-24T09:23:23", "permissionGrantedMap": { "permissionGranted": { "42edbbff-b3bf-4fea-adf3-ee5972f1ae31": true } }, "outsideSid": "df675842-9425-4862-82d2-bf67f93a83a5", "id": "278c9411-1059-477d-9a0b-4c19afd44267", "state": "authenticated", "sessionAttributes": { "opbs": "a005bfd9-6c69-4c77-b5da-73aab3449164", "response_type": "code token", "session_id": "278c9411-1059-477d-9a0b-4c19afd44267", "client_id": "42edbbff-b3bf-4fea-adf3-ee5972f1ae31", "response_mode": "fragment.jwt", "sid": "df675842-9425-4862-82d2-bf67f93a83a5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "156e98f1-b833-4ac0-85a0-517bfc016aed", "old_session_id": "52501505-768e-45bb-b64c-097067c4381e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:21" }, { "isJwt": false, "opbrowserState": "a1d12e41-1831-47f4-aea2-103ebb833546", "deletable": true, "dn": "jansId=529aacac-32ea-46dd-8258-7657506228d5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:22", "creationDate": "2022-11-24T09:23:21", "ttl": 0, "sessionState": "30ce9aca337ead1daa013a81654309eccd82c940a8964b914ad1a220dd9a49bc.fab78429-f73c-4457-8440-c3926a4f5f10", "lastUsedAt": "2022-11-24T09:23:22", "permissionGrantedMap": { "permissionGranted": { "bb1eb548-8d8b-47ef-9e61-4bcd24a6f05a": true } }, "outsideSid": "83c08540-0b05-4d3a-b54c-6338c248172b", "id": "529aacac-32ea-46dd-8258-7657506228d5", "state": "authenticated", "sessionAttributes": { "opbs": "a1d12e41-1831-47f4-aea2-103ebb833546", "response_type": "token id_token", "session_id": "529aacac-32ea-46dd-8258-7657506228d5", "nonce": "aa6abdea-fae0-4563-81d8-2cc75290d5b4", "client_id": "bb1eb548-8d8b-47ef-9e61-4bcd24a6f05a", "response_mode": "fragment.jwt", "sid": "83c08540-0b05-4d3a-b54c-6338c248172b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "86504e4e-8654-4539-9299-f42bc4860474", "old_session_id": "3633a0a4-e10d-4a10-ab04-7d4157128822" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:21" }, { "isJwt": false, "opbrowserState": "6854fce8-0d5d-4a3e-8ea5-556a8bb764ca", "deletable": true, "dn": "jansId=954f87a0-6865-4eee-9797-a582d13e850a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:21", "creationDate": "2022-11-24T09:23:20", "ttl": 0, "sessionState": "7a38d60c834da83486e1bbdc64daedf6d85f0207629c78438732e1fc9c8388ce.dabcc824-e01b-4459-854f-7d1072668d7c", "lastUsedAt": "2022-11-24T09:23:22", "permissionGrantedMap": { "permissionGranted": { "5274e332-069f-475d-b445-b582ebf4d358": true } }, "outsideSid": "2a695d9f-5c30-4993-80dc-d1f2b93b7507", "id": "954f87a0-6865-4eee-9797-a582d13e850a", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJlY2YzMGY3Yy02MWJjLTRkZTktYTg1MC03YTYzNWYyNjI2ZTIiLAogICJub25jZSIgOiAiZTFmMDk2MzYtNDU2OS00OWVlLThiZGYtNGFlNDYyNDBjNjE0IiwKICAiY2xpZW50X2lkIiA6ICI1Mjc0ZTMzMi0wNjlmLTQ3NWQtYjQ0NS1iNTgyZWJmNGQzNTgiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.RFD0x7ENQAoczs0v0tkduK30LgzdJuKmPRGbT5mB861s9Rz-Woljqx_H0Xr6bcaft0cLLhe9zJc8_upv3S7E23PysoIxu0px7zZ5VhxYAf7_Gs72vIgxig5XXpW4YQf_oRU4JNccFLE9d8B7F5JQTJZ_a1QCDG97UkBKQVoC3EoZrYaF2KelGPruV3yRKv-SDuyfYJ4A1qvC3SR3HXx3eCGJMusdsJUK6g7qAqHGyR6ByOCKiVP602LocBtA_RDQS3G3QUVZT95UC_8aUO3Xc3iIqAWV1wRtJe81SYLOKw19pxsSJBXjLbyMZELuoVwAfxOzU8X343x--K4lFlJ8mw", "opbs": "6854fce8-0d5d-4a3e-8ea5-556a8bb764ca", "response_type": "token", "session_id": "954f87a0-6865-4eee-9797-a582d13e850a", "nonce": "e1f09636-4569-49ee-8bdf-4ae46240c614", "client_id": "5274e332-069f-475d-b445-b582ebf4d358", "response_mode": "fragment.jwt", "sid": "2a695d9f-5c30-4993-80dc-d1f2b93b7507", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ecf30f7c-61bc-4de9-a850-7a635f2626e2", "old_session_id": "df7e3064-ef35-497c-a47d-e8c3c1ee9d4a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:20" }, { "isJwt": false, "opbrowserState": "f6b8db00-f965-417e-8d99-eb80ae61b1ef", "deletable": true, "dn": "jansId=b7bd975f-94f2-4d3f-9690-d4b26ef231f0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:19", "creationDate": "2022-11-24T09:23:19", "ttl": 0, "sessionState": "fb6ad02fa86054909881be221eecf1c8d7f83c5ce3f9f23046df950cd9a0a4bf.57371757-d4b7-45b3-b664-ea650c05b6d0", "lastUsedAt": "2022-11-24T09:23:20", "permissionGrantedMap": { "permissionGranted": { "f9524a0f-984b-4aab-9d93-b023e3d72458": true } }, "outsideSid": "2e239ec4-0a07-4656-b59c-f489877fafb4", "id": "b7bd975f-94f2-4d3f-9690-d4b26ef231f0", "state": "authenticated", "sessionAttributes": { "opbs": "f6b8db00-f965-417e-8d99-eb80ae61b1ef", "response_type": "token id_token", "session_id": "b7bd975f-94f2-4d3f-9690-d4b26ef231f0", "nonce": "62778b33-f628-4a7f-b380-95c0e8ad80da", "client_id": "f9524a0f-984b-4aab-9d93-b023e3d72458", "response_mode": "fragment.jwt", "sid": "2e239ec4-0a07-4656-b59c-f489877fafb4", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f1cc5a25-7b4b-47b1-b3ea-c5b7d7fcc74d", "old_session_id": "d00c1c6c-2318-4814-b6a1-e05c9dd8428d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:19" }, { "isJwt": false, "opbrowserState": "bb79ec12-4856-4ad6-a8cb-d0c160be430a", "deletable": true, "dn": "jansId=1e4e377d-43c3-47e7-9603-c5920b1c86b2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:19", "creationDate": "2022-11-24T09:23:18", "ttl": 0, "sessionState": "279cdaf4c046198bf92f5440241317c62937756866f8837265dbe23dba74d828.8e8c402d-f06f-4334-b628-1a70485f4499", "lastUsedAt": "2022-11-24T09:23:19", "permissionGrantedMap": { "permissionGranted": { "61c13d1d-655b-45ab-b35e-2cc57909237c": true } }, "outsideSid": "dc538d91-8fad-4862-bc39-bfc749f67fc2", "id": "1e4e377d-43c3-47e7-9603-c5920b1c86b2", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI0ZTVhNGFhYy1hZTA5LTRlNjYtOGE2MC0yMzhjM2UwZWY1YjAiLAogICJub25jZSIgOiAiZDEzOWRkMmItMGMzYS00YWVmLWE3MmUtNjE2NDU2OGE5Yjg1IiwKICAiY2xpZW50X2lkIiA6ICI2MWMxM2QxZC02NTViLTQ1YWItYjM1ZS0yY2M1NzkwOTIzN2MiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.jnGsN50DtmAyeRWFp7fPZlZ7D_QIUcB48Il4yluPW1LGh2m7IG2E2FcsRZ-FdroIaNe8bk6N_gewUSZGSlwPFhbs4mEua3etuimw_XzySRwhvzCPWnehX48c94QvlsZ3CRothnvQJ24Rg7il4Ok_mFLrhxZS_sXfpLnfa5Oud64s8j5cA-_rIPvDNn-3vjM8U8xC-GPxIlytKnijGwPC3ASyidEN3xLqYUbu8tmCkvHVA00TzOOg60WRrl_mXfCn8wCfJAupvUdqrASnH3fQryXguOtkeKFEkzw2T9fEsh5frAeQ_zeZOwblm-AA312XMiHWBpR0A-BtOjxD8ZnaDA", "opbs": "bb79ec12-4856-4ad6-a8cb-d0c160be430a", "response_type": "token", "session_id": "1e4e377d-43c3-47e7-9603-c5920b1c86b2", "nonce": "d139dd2b-0c3a-4aef-a72e-6164568a9b85", "client_id": "61c13d1d-655b-45ab-b35e-2cc57909237c", "response_mode": "fragment.jwt", "sid": "dc538d91-8fad-4862-bc39-bfc749f67fc2", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4e5a4aac-ae09-4e66-8a60-238c3e0ef5b0", "old_session_id": "574ee97c-cef1-4b3d-becd-28b4a8f288c6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:18" }, { "isJwt": false, "opbrowserState": "d4d24259-0054-4c36-9983-5081b0603e24", "deletable": true, "dn": "jansId=7459da49-614e-4806-a02b-a23e332f9974,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:18", "creationDate": "2022-11-24T09:23:17", "ttl": 0, "sessionState": "25117415368740c5b79dced8fcd08576c5a3af4b0d8ff6c5c91173ea249c9be4.ca778064-807c-43b6-aca8-33cd54a1e9d2", "lastUsedAt": "2022-11-24T09:23:19", "permissionGrantedMap": { "permissionGranted": { "f3f6b1b7-635a-45ca-a951-6e1d45d9a917": true } }, "outsideSid": "65b82e89-afa5-4963-a13b-6400ca824e6b", "id": "7459da49-614e-4806-a02b-a23e332f9974", "state": "authenticated", "sessionAttributes": { "opbs": "d4d24259-0054-4c36-9983-5081b0603e24", "response_type": "code token", "session_id": "7459da49-614e-4806-a02b-a23e332f9974", "client_id": "f3f6b1b7-635a-45ca-a951-6e1d45d9a917", "response_mode": "fragment.jwt", "sid": "65b82e89-afa5-4963-a13b-6400ca824e6b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d732a790-46f3-40bb-8f5c-29f100ab5ad3", "old_session_id": "80c544cc-58c3-4ec8-aba7-965a10c4ec48" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:17" }, { "isJwt": false, "opbrowserState": "53fdcf80-fea8-4973-b30d-9ad4b3babf5c", "deletable": true, "dn": "jansId=491a7412-c17c-4e8e-b2c5-f4ce2345be3a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:18", "creationDate": "2022-11-24T09:23:17", "ttl": 0, "sessionState": "c099f55c968b784283d40e2db00bb7de4a9eb9e9d58fc04e71f7c4fffa59c6af.6517adf1-a1b0-42d6-9da7-d8b850b3f73e", "lastUsedAt": "2022-11-24T09:23:18", "permissionGrantedMap": { "permissionGranted": { "610d3515-6034-4a30-ac35-8c68b5fa48c5": true } }, "outsideSid": "28722db7-9b47-4af2-a67f-92f8f82826ea", "id": "491a7412-c17c-4e8e-b2c5-f4ce2345be3a", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiMGE2Y2QzMjItODE1OS00NDNhLTg4MjMtNDE4MWIyODNhMjVhIiwKICAibm9uY2UiIDogImI2M2U1ODBkLTZkZjgtNDNkYi1hMTBkLWRjNmUzNDU3NGFlNCIsCiAgImNsaWVudF9pZCIgOiAiNjEwZDM1MTUtNjAzNC00YTMwLWFjMzUtOGM2OGI1ZmE0OGM1IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZnJhZ21lbnQuand0Igp9.n2ONmdUsd-RmXRDF2pX3NCwLP98L_g4l_8o4wsRRsvCIAjml23SiFJcL9FUpdyVwzgjseIZoClNpEHOfXuPNr36uvnmojHpuMA8FpgVTCW9qCMLMapG4p9BM4zvzDKUefRAyHrcbUgIX7tpdTVHTttLEJOSy3ahFEzic1FERKHPvskxw97ikgF00u9AlHTyM2saf-Ukz1ACfAQ7l4VtSYaDi_qykEyE1giOD77oFREhKh_lCdljAX_Wz_EXVHN4Jo9Zy16QUoG0yzGtAW436vHJia1gJfPhtW9pnitwOVCfqnbCa0Itzwqgx5EgE0Ect4VsKLo-eNe2byFNfcF5lNA", "opbs": "53fdcf80-fea8-4973-b30d-9ad4b3babf5c", "response_type": "token id_token", "session_id": "491a7412-c17c-4e8e-b2c5-f4ce2345be3a", "nonce": "b63e580d-6df8-43db-a10d-dc6e34574ae4", "client_id": "610d3515-6034-4a30-ac35-8c68b5fa48c5", "response_mode": "fragment.jwt", "sid": "28722db7-9b47-4af2-a67f-92f8f82826ea", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0a6cd322-8159-443a-8823-4181b283a25a", "old_session_id": "7c0ba97e-ce6d-4327-a0b2-684d4c269d09" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:17" }, { "isJwt": false, "opbrowserState": "56624318-3872-4ace-a381-3f11b969f856", "deletable": true, "dn": "jansId=3939093e-229a-453c-b4fd-c973e9c06552,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:16", "creationDate": "2022-11-24T09:23:15", "ttl": 0, "sessionState": "275003ca106374af2f67721ba0db6bee1e330689c57fa56f355a7e75d874fb92.174323bb-c13b-4408-acf3-9e5773e2ebc7", "lastUsedAt": "2022-11-24T09:23:17", "permissionGrantedMap": { "permissionGranted": { "17e50a28-5c8a-457e-990d-9af2d3ad1977": true } }, "outsideSid": "b7230849-a73f-40d6-9c95-3ed675e887eb", "id": "3939093e-229a-453c-b4fd-c973e9c06552", "state": "authenticated", "sessionAttributes": { "opbs": "56624318-3872-4ace-a381-3f11b969f856", "response_type": "code token", "session_id": "3939093e-229a-453c-b4fd-c973e9c06552", "client_id": "17e50a28-5c8a-457e-990d-9af2d3ad1977", "response_mode": "fragment.jwt", "sid": "b7230849-a73f-40d6-9c95-3ed675e887eb", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a84c0a2a-977d-4daf-ac3e-d971a71ec817", "old_session_id": "45519001-248d-469c-afed-29699a7e2a87" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:15" }, { "isJwt": false, "opbrowserState": "7528ecf2-a4a1-4352-8d7b-1a965d221a3d", "deletable": true, "dn": "jansId=8e28a498-441e-4f32-9647-3f723a449928,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:15", "creationDate": "2022-11-24T09:23:15", "ttl": 0, "sessionState": "f1bdad6f063861309bd5a9c02c0f90271063b2da86256702dde6f522bd226b26.fda5eda0-4003-4a26-b5f1-dfcacfd9babe", "lastUsedAt": "2022-11-24T09:23:16", "permissionGrantedMap": { "permissionGranted": { "751e85e8-dfb5-42a4-9ff2-df0034169d9a": true } }, "outsideSid": "7c838511-a305-415b-a196-442d3fd7985c", "id": "8e28a498-441e-4f32-9647-3f723a449928", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiMzNkNWQ0ODAtNjBiMC00ZWJjLWFlMDgtZGNmNzAxZGYxNmZiIiwKICAibm9uY2UiIDogImVmZDZiMGM2LWMyYWUtNDJmYS05OGQ1LWVjZTllY2MxZTQ0OSIsCiAgImNsaWVudF9pZCIgOiAiNzUxZTg1ZTgtZGZiNS00MmE0LTlmZjItZGYwMDM0MTY5ZDlhIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZnJhZ21lbnQuand0Igp9.oVNA7ql87z8nUmpjhX6KS85UftOye7U9u3rLwKLdl7eqe05GX4BUrPjI2XDnDplgvnvOXrE0ckC34hUcdqFB_pokYfQ8Mgzp1moCObjYpIBhWOpluaz3Fdd4qnyrXEHDicXLh3UINtAAuankwPpkJj6uCpHC_8iP5n3F-4lDe8LPU3T6G7lh_jCHbd27OuEljMVOb1AKbKR1xz-84vbmxeaTVHxlqQMrF9ws_CRxXKCjWtpMnntW_OtEivh8H3YiXpB1fXydG0AtCdN2KegYT3sInd8-f-zzKY1pKqvkGNqZKi5dusVx453RTMqp82_kexVqs5ZawGnP0qN2wzxYSQ", "opbs": "7528ecf2-a4a1-4352-8d7b-1a965d221a3d", "response_type": "token id_token", "session_id": "8e28a498-441e-4f32-9647-3f723a449928", "nonce": "efd6b0c6-c2ae-42fa-98d5-ece9ecc1e449", "client_id": "751e85e8-dfb5-42a4-9ff2-df0034169d9a", "response_mode": "fragment.jwt", "sid": "7c838511-a305-415b-a196-442d3fd7985c", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "33d5d480-60b0-4ebc-ae08-dcf701df16fb", "old_session_id": "72caffd2-d01e-45e7-8dcd-a19bed7c3447" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:15" }, { "isJwt": false, "opbrowserState": "ef5b6ac5-1223-492c-a1c6-58d39cc474b5", "deletable": true, "dn": "jansId=2a843d6a-f568-407e-882d-a788ec217c15,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:14", "creationDate": "2022-11-24T09:23:13", "ttl": 0, "sessionState": "fcf83074c2da27e2dd7572da8410be1d7dcc96df0f4a19c41833fda47910b851.e9fcdfe5-eec0-4690-bdb7-db3c08a00137", "lastUsedAt": "2022-11-24T09:23:15", "permissionGrantedMap": { "permissionGranted": { "e54bcee9-4c98-4c43-a6aa-cea71de8891b": true } }, "outsideSid": "0d059b99-f602-4ae8-a699-8fe8bbca74d9", "id": "2a843d6a-f568-407e-882d-a788ec217c15", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI5NWFkNDExZC03ZTNlLTRjNTQtYWY4NS1iMTAxYWJmMzkyYTEiLAogICJub25jZSIgOiAiYTM3OTRjZDgtNTAxYi00OTBkLWFjOGEtOTM5ZTMzZmNlZWY1IiwKICAiY2xpZW50X2lkIiA6ICJlNTRiY2VlOS00Yzk4LTRjNDMtYTZhYS1jZWE3MWRlODg5MWIiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.AQTAqCXM1GADTR6F4TewEnoyAs9hn7mQ5quasipz5TLmEh8cy68w1uhaSYBowBmJY2mNYG6GJGSwJWof_ezYS1IRARRpDxYMCkO4Q0LLs1EDYmb60WsiboRyFG6YQuQVhRMsjzXXCiPJrfcZarAZMhdFIjrBg-D_soH1t5Rg9cWrscH1", "opbs": "ef5b6ac5-1223-492c-a1c6-58d39cc474b5", "response_type": "token", "session_id": "2a843d6a-f568-407e-882d-a788ec217c15", "nonce": "a3794cd8-501b-490d-ac8a-939e33fceef5", "client_id": "e54bcee9-4c98-4c43-a6aa-cea71de8891b", "response_mode": "fragment.jwt", "sid": "0d059b99-f602-4ae8-a699-8fe8bbca74d9", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "95ad411d-7e3e-4c54-af85-b101abf392a1", "old_session_id": "905c9ed0-3fd7-4633-949f-9b5c799405ab" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:13" }, { "isJwt": false, "opbrowserState": "08dfa034-1edb-428a-a5aa-3ca50c0dc6ae", "deletable": true, "dn": "jansId=12be1e93-fba6-48b6-9487-65ef322f478f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:14", "creationDate": "2022-11-24T09:23:13", "ttl": 0, "sessionState": "14389e22104b55359623678630869232cdf8eea7e45e9749b169d28a517477de.1653f978-9799-4d58-9808-45a63165166b", "lastUsedAt": "2022-11-24T09:23:14", "permissionGrantedMap": { "permissionGranted": { "f659f3d3-4141-4848-ab89-cb4337fb0e36": true } }, "outsideSid": "3450c921-3d28-4431-8f10-56afe1554c85", "id": "12be1e93-fba6-48b6-9487-65ef322f478f", "state": "authenticated", "sessionAttributes": { "opbs": "08dfa034-1edb-428a-a5aa-3ca50c0dc6ae", "response_type": "code token", "session_id": "12be1e93-fba6-48b6-9487-65ef322f478f", "client_id": "f659f3d3-4141-4848-ab89-cb4337fb0e36", "response_mode": "fragment.jwt", "sid": "3450c921-3d28-4431-8f10-56afe1554c85", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e7cdce3c-813f-40f4-8ddd-d688886ee744", "old_session_id": "26b28e1f-da9f-4fe9-baac-7589a82d8c0f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:13" }, { "isJwt": false, "opbrowserState": "ab1b1c2b-c7ba-419e-a8c6-6d699e6cc7ed", "deletable": true, "dn": "jansId=380ed70b-7518-49b7-ac1c-37c98ef4667f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:12", "creationDate": "2022-11-24T09:23:11", "ttl": 0, "sessionState": "442834b6deb34c50d6ba08b373f8bf1e7f7710ed76e785f69244351d22c88b5f.d2df61bd-ab5a-4c15-8827-13c25b226ab4", "lastUsedAt": "2022-11-24T09:23:13", "permissionGrantedMap": { "permissionGranted": { "fbd46b0a-1dac-4ea4-bb89-9a45baecd828": true } }, "outsideSid": "3a1ff2f2-a0d1-4e7e-971a-56b0d34b2b12", "id": "380ed70b-7518-49b7-ac1c-37c98ef4667f", "state": "authenticated", "sessionAttributes": { "opbs": "ab1b1c2b-c7ba-419e-a8c6-6d699e6cc7ed", "response_type": "code token", "session_id": "380ed70b-7518-49b7-ac1c-37c98ef4667f", "client_id": "fbd46b0a-1dac-4ea4-bb89-9a45baecd828", "response_mode": "fragment.jwt", "sid": "3a1ff2f2-a0d1-4e7e-971a-56b0d34b2b12", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f2b8e95d-2ea2-42fb-96d7-671a6d56cc3e", "old_session_id": "251c9a45-24ab-44d8-a762-148b91b4c913" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:11" }, { "isJwt": false, "opbrowserState": "5987c200-2805-465e-a9b6-980d61cc8c03", "deletable": true, "dn": "jansId=7bf42e06-3172-4773-8f35-55fb38868ea8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:12", "creationDate": "2022-11-24T09:23:11", "ttl": 0, "sessionState": "ada21054d9d6a9251f31fec6b097527f4ec36bd18d0415a6f5ae56119eaf45fa.2d9b2957-020b-4181-864b-33b63e3192ac", "lastUsedAt": "2022-11-24T09:23:13", "permissionGrantedMap": { "permissionGranted": { "7849bf46-846e-47b8-914b-0dfea201d35b": true } }, "outsideSid": "e54c2f2a-eb80-43ba-9786-72d3225a5e78", "id": "7bf42e06-3172-4773-8f35-55fb38868ea8", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI1M2Y5MjhkYy01N2FjLTRjMmEtODA0MS00NmRiMzRiNzE4MzQiLAogICJub25jZSIgOiAiYTA4ZjE4ZjUtYjllMC00OTczLWIzMTMtZjQxMmJkNDU3YzczIiwKICAiY2xpZW50X2lkIiA6ICI3ODQ5YmY0Ni04NDZlLTQ3YjgtOTE0Yi0wZGZlYTIwMWQzNWIiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0._iOZGShM4d4rPqFksm6v3YnNE_6iRQ_E6nZaTWhBybn-264VCrRHur7h9mRZo-mnGmj8e--oPyR9se1eYsO4d0TJ7UNu8wb8_Wi_wk6e2farzfkYaZVQCYnWsWnhLOoO", "opbs": "5987c200-2805-465e-a9b6-980d61cc8c03", "response_type": "token", "session_id": "7bf42e06-3172-4773-8f35-55fb38868ea8", "nonce": "a08f18f5-b9e0-4973-b313-f412bd457c73", "client_id": "7849bf46-846e-47b8-914b-0dfea201d35b", "response_mode": "fragment.jwt", "sid": "e54c2f2a-eb80-43ba-9786-72d3225a5e78", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "53f928dc-57ac-4c2a-8041-46db34b71834", "old_session_id": "e01a9565-c790-420d-85b3-8fa68379bb7d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:11" }, { "isJwt": false, "opbrowserState": "be8c4277-40fa-4325-b9bb-3a8bf1ee7efd", "deletable": true, "dn": "jansId=8fcfe445-02ae-4b31-b536-bfea379b1689,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:11", "creationDate": "2022-11-24T09:23:10", "ttl": 0, "sessionState": "23bdc4ba981151ee57225ff46acf1d8536c5643802cb5dd617a3608fe8a872bc.51cbd765-c664-4678-9add-42ecd15910ef", "lastUsedAt": "2022-11-24T09:23:12", "permissionGrantedMap": { "permissionGranted": { "14f4d658-74d4-4b4c-9f2b-04708611ccab": true } }, "outsideSid": "e7574dad-62b8-4371-a634-6a5b47e73062", "id": "8fcfe445-02ae-4b31-b536-bfea379b1689", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiZTY5NWU0YjYtNjc4My00MTg2LTlkZGUtMDQ0ZWE1NGI0MGY4IiwKICAibm9uY2UiIDogImYwMjgwMGEwLTk1ZjAtNDIzOS1iZGJiLTE2NTFmYmE2NGZkMiIsCiAgImNsaWVudF9pZCIgOiAiMTRmNGQ2NTgtNzRkNC00YjRjLTlmMmItMDQ3MDg2MTFjY2FiIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZnJhZ21lbnQuand0Igp9.AWNLQ4EC4MZgOCb3RLyqHmCjoon9xOKxWCr4c_zDKKZJ9fN-9TEiiMh7rq_5V7eyRFbsX8LpJKhj-yfHUkJ9HckdAQV8JHIzQ_vj7MiONJaWwkh22apnRwHuuj0Q0AvKs4RnhT9lIhlpK9KwEaa3WTnZYSqIVqrzkhbd7rNjPIibFqmB", "opbs": "be8c4277-40fa-4325-b9bb-3a8bf1ee7efd", "response_type": "token id_token", "session_id": "8fcfe445-02ae-4b31-b536-bfea379b1689", "nonce": "f02800a0-95f0-4239-bdbb-1651fba64fd2", "client_id": "14f4d658-74d4-4b4c-9f2b-04708611ccab", "response_mode": "fragment.jwt", "sid": "e7574dad-62b8-4371-a634-6a5b47e73062", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e695e4b6-6783-4186-9dde-044ea54b40f8", "old_session_id": "99e9d98c-3cee-4a07-8691-adcf251172dc" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:10" }, { "isJwt": false, "opbrowserState": "9bc7f500-0c42-40c0-9f4a-4abce4373a7f", "deletable": true, "dn": "jansId=a197e60a-2ef7-4c51-b5fd-00f6fb212aa7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:10", "creationDate": "2022-11-24T09:23:10", "ttl": 0, "sessionState": "ec91c654efe3f87a2f93170b363815ca0efc4ef3bcaa2b02e0bf8f16cdee5b4c.af9efb8f-53c1-496d-b886-078efad9d29a", "lastUsedAt": "2022-11-24T09:23:11", "permissionGrantedMap": { "permissionGranted": { "6d9933bf-e7a8-48da-b9a6-8cc795b8aefb": true } }, "outsideSid": "bfb716dc-184a-45df-ab01-bda855809af3", "id": "a197e60a-2ef7-4c51-b5fd-00f6fb212aa7", "state": "authenticated", "sessionAttributes": { "opbs": "9bc7f500-0c42-40c0-9f4a-4abce4373a7f", "response_type": "code token", "session_id": "a197e60a-2ef7-4c51-b5fd-00f6fb212aa7", "client_id": "6d9933bf-e7a8-48da-b9a6-8cc795b8aefb", "response_mode": "fragment.jwt", "sid": "bfb716dc-184a-45df-ab01-bda855809af3", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "396b58b0-d438-49df-bd1b-65e611c6f136", "old_session_id": "0037d236-881b-4f48-b337-1e0fde2db738" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:10" }, { "isJwt": false, "opbrowserState": "e97de7da-ecf4-4387-8790-1b66d045b4fb", "deletable": true, "dn": "jansId=8a904220-b8ef-413d-9afa-e24220c36954,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:09", "creationDate": "2022-11-24T09:23:08", "ttl": 0, "sessionState": "a437daaa921080054d447d39d958f4d523ef0e50e93844f61ae5126fe9acfc0d.021bac3e-600e-42b3-b009-ca3f24efcf62", "lastUsedAt": "2022-11-24T09:23:10", "permissionGrantedMap": { "permissionGranted": { "2eb73ef8-63ec-4842-9238-fabc730cf567": true } }, "outsideSid": "af00fcfd-ac57-433a-a541-b10ad6085638", "id": "8a904220-b8ef-413d-9afa-e24220c36954", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiMWVhZDU2NTItM2IxMi00NDE1LWE4ODgtYzhmOGI0ODc2M2MxIiwKICAibm9uY2UiIDogIjQxMjg4NjlmLTgxMmEtNDllMy04YWIzLWM1MDg1Y2QyMDhiOCIsCiAgImNsaWVudF9pZCIgOiAiMmViNzNlZjgtNjNlYy00ODQyLTkyMzgtZmFiYzczMGNmNTY3IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZnJhZ21lbnQuand0Igp9.fYXK8djtOZCBUBztPYlVrrqgxI50vHtsrH_6NRbn4Y5hsiMkhOFcvEsuxn7pDr3td-Kb1__5poGUZnVoFJILphAAoc8mktV_5vmo-sQjLxmoJJUuRDza3I1zuOSXVj2n", "opbs": "e97de7da-ecf4-4387-8790-1b66d045b4fb", "response_type": "token id_token", "session_id": "8a904220-b8ef-413d-9afa-e24220c36954", "nonce": "4128869f-812a-49e3-8ab3-c5085cd208b8", "client_id": "2eb73ef8-63ec-4842-9238-fabc730cf567", "response_mode": "fragment.jwt", "sid": "af00fcfd-ac57-433a-a541-b10ad6085638", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1ead5652-3b12-4415-a888-c8f8b48763c1", "old_session_id": "34ac24e3-12f1-451a-a0f5-22e2a92a97bf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:08" }, { "isJwt": false, "opbrowserState": "1c8c53ce-59db-486a-8e7d-77a2e935b91f", "deletable": true, "dn": "jansId=6fe689b9-07ab-4523-a2ab-08e2b03ef572,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:08", "creationDate": "2022-11-24T09:23:08", "ttl": 0, "sessionState": "de669b0bfb15564fc35c476e3da94d1e2400cc50ae264f1f6f752cc19d8c4450.6a66cdc2-b541-45ae-96d8-41a73cead4c2", "lastUsedAt": "2022-11-24T09:23:09", "permissionGrantedMap": { "permissionGranted": { "4e462d4a-de7f-40ef-b82d-b145dba88bb4": true } }, "outsideSid": "2123a946-f3c3-4be7-bd9b-5d097aa3d6ae", "id": "6fe689b9-07ab-4523-a2ab-08e2b03ef572", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.bpEO8aUczdZHHdCZ0VqwPkILft0wZdf1IwaKZDbYCphYtGAH3Wmrcw.w4yyljkkl00k5YhB.xlDwa-7AaystN2BofY-DwExyOQKikgzzoSXy9NHpnFKu7mTBu6bO5KnJt_Pb41DVNj7gqARtM02D2gSOz5feFbqZcc6C2QhaCigV1g22QWBuR6DP-siSDz3GZLj-j6pNoe0leEvcs_C0od0hJP1ZxC0Jg2OMzGL-JPDukOCSNNmhxjTqAPG4aJj7kq28RImi9-4KLUGAlwgvjFqqvebfDxgQxGqkbMltr5SOpMiRSxoz7Qsz2pFkybxuf9m4ux_GMh5JMkgA2P0LDG3QMDKf8nRsDOH7elLXvF0JXq_rmt9bYUTGaqZw4rIapbHG6gxaBvfL6o27C9XIDsTp9iVSZskJOnfFnYjLXUI4MHRJxurvHzaZg6tVsw-JwfKu8-ACo7D178Z7v-v84vFfz3hM6nmZqfFVirO97sBJNLmfqAsEoHl5NLWseOR9vHclC4QacbGcflg0vK6Nhmkc6xc7uX3hTKpDjKJOsQBxRQwFaaIikbNEF6oHzpqR3vE_iXdv2q0VVLcyeaB53qcEbXVyUyc5zt4GWrVsrD-d39t2OzXGbFfIn03sacXliFtZ-erM7cWlxNqfo378x-X7pzZElsJ69gCxaIR0NFVlWfTa--Ot0m-O_aGNjy4czCAcVvPv4G4pfd-sO76Izc2JCcKZ57XKTySR61B0cn_6NiCRFfGt9tQTTwFRkAz09PN6O3DTj0v2Uj3EtXpZJAHRN9F4t-cgMXKthFa_uIE48xHp2GWpxjwgM9wu2V_6OlJ1uV7f0Tatxto3dJ1G_qdNB_s6djV7wLebuCKkcKTU26zPDD6NPN_nPLwfBJPlO74C6RTemODucIfNWbyw8tz-_JMXfM_nOnrn5M4fUGQKgC_z3xXlqK6cHsDGqgDy6K8ed5PIlCNjWJeRc_9EUXPKpnxY4s12_w.xEcUO9Ot30fXp7A1a3atMw", "opbs": "1c8c53ce-59db-486a-8e7d-77a2e935b91f", "response_type": "token id_token", "session_id": "6fe689b9-07ab-4523-a2ab-08e2b03ef572", "nonce": "44a54c67-966c-4597-8fd8-c65b09300790", "client_id": "4e462d4a-de7f-40ef-b82d-b145dba88bb4", "response_mode": "fragment.jwt", "sid": "2123a946-f3c3-4be7-bd9b-5d097aa3d6ae", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e843b5c3-d6ce-4374-9dde-271f0b28b6e0", "old_session_id": "6eb0e3c6-8809-48a8-93a3-a39083cff75c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:08" }, { "isJwt": false, "opbrowserState": "cf76dac7-8b99-40cb-870f-748ca0ee6510", "deletable": true, "dn": "jansId=b1171f6d-5209-439a-a891-234e3ae0a74c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:08", "creationDate": "2022-11-24T09:23:07", "ttl": 0, "sessionState": "fc3e48bf343980067cf77edaae7bb52159e5e14d4578fd792dded867d43c3730.e154aafd-236c-41aa-a71f-79ca9b08c16e", "lastUsedAt": "2022-11-24T09:23:09", "permissionGrantedMap": { "permissionGranted": { "720a4392-f2ff-42aa-8c66-405c2917a662": true } }, "outsideSid": "d1298b3d-8f4b-45a2-9b84-141105e4c859", "id": "b1171f6d-5209-439a-a891-234e3ae0a74c", "state": "authenticated", "sessionAttributes": { "opbs": "cf76dac7-8b99-40cb-870f-748ca0ee6510", "response_type": "token", "session_id": "b1171f6d-5209-439a-a891-234e3ae0a74c", "nonce": "20b787cd-f4f8-42db-aa9d-0162792521cb", "client_id": "720a4392-f2ff-42aa-8c66-405c2917a662", "response_mode": "fragment.jwt", "sid": "d1298b3d-8f4b-45a2-9b84-141105e4c859", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ce7ba565-bf1d-4156-b0aa-1500eea34c40", "old_session_id": "fc20cf7e-f330-4d76-8caa-511a75a203f3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:07" }, { "isJwt": false, "opbrowserState": "3e8bbb23-65ce-450c-8c27-9a53cd900500", "deletable": true, "dn": "jansId=42784aa3-ef03-47df-8d7f-26a6b9375b80,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:07", "creationDate": "2022-11-24T09:23:06", "ttl": 0, "sessionState": "fcac87452eaea28dd89c5f7b883dbb80a37ca6001f9ba10e0350d0ab8b439219.8d73f2c9-f23b-40e8-8d08-5f5618daf37f", "lastUsedAt": "2022-11-24T09:23:08", "permissionGrantedMap": { "permissionGranted": { "8f3cd9af-e4bb-4718-b5de-bfc629b633f9": true } }, "outsideSid": "884649d9-911a-436f-a3b6-dcf9dea70a18", "id": "42784aa3-ef03-47df-8d7f-26a6b9375b80", "state": "authenticated", "sessionAttributes": { "opbs": "3e8bbb23-65ce-450c-8c27-9a53cd900500", "response_type": "code token", "session_id": "42784aa3-ef03-47df-8d7f-26a6b9375b80", "client_id": "8f3cd9af-e4bb-4718-b5de-bfc629b633f9", "response_mode": "fragment.jwt", "sid": "884649d9-911a-436f-a3b6-dcf9dea70a18", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a2651895-ae1b-4a56-8ef7-439392f31d72", "old_session_id": "5e6595f0-85ac-411f-a414-6807b9c24533" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:06" }, { "isJwt": false, "opbrowserState": "88981046-0490-4fe2-800c-224dbfa4a733", "deletable": true, "dn": "jansId=866d10a3-ba85-4c18-8391-5cbce356259d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:07", "creationDate": "2022-11-24T09:23:06", "ttl": 0, "sessionState": "0c689acf4c8594e4d16041631eb69af89fc30804cd496e45b7c49918dc880d91.837f3846-5ec9-4ee9-bb1f-2234dc3758bc", "lastUsedAt": "2022-11-24T09:23:08", "permissionGrantedMap": { "permissionGranted": { "3b86528f-7ffc-47dc-9d38-df7046560685": true } }, "outsideSid": "25bddd99-c965-4e58-877d-10ec78914850", "id": "866d10a3-ba85-4c18-8391-5cbce356259d", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiNTgwODYxYTgtOWIxOS00NDljLWI5OTUtNDM4MTM5MWViMjAxIiwKICAibm9uY2UiIDogIjVjNzczZTA5LTViOTQtNDBkNy1iOWJlLTJkMDdhNTRhMTdiYSIsCiAgImNsaWVudF9pZCIgOiAiM2I4NjUyOGYtN2ZmYy00N2RjLTlkMzgtZGY3MDQ2NTYwNjg1IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZnJhZ21lbnQuand0Igp9.KK2b_8YhNNhvILl9h3fVlKgLseLto0tGJLbmwSSVJ7ceGSJifOa62QzXM2KDLxIyylfJ0eQrBTruWBX3CRXXSA", "opbs": "88981046-0490-4fe2-800c-224dbfa4a733", "response_type": "token id_token", "session_id": "866d10a3-ba85-4c18-8391-5cbce356259d", "nonce": "5c773e09-5b94-40d7-b9be-2d07a54a17ba", "client_id": "3b86528f-7ffc-47dc-9d38-df7046560685", "response_mode": "fragment.jwt", "sid": "25bddd99-c965-4e58-877d-10ec78914850", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "580861a8-9b19-449c-b995-4381391eb201", "old_session_id": "0139ea8b-f108-44ba-bd29-ac2419624241" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:06" }, { "isJwt": false, "opbrowserState": "433337f8-afe3-49f1-8a1e-56ad7a2b6be2", "deletable": true, "dn": "jansId=9fa22db2-7090-4ed5-9008-b83c1c804b9a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:06", "creationDate": "2022-11-24T09:23:06", "ttl": 0, "sessionState": "4afb500e052b0e19068ca2071ff0a69826a5719a66e4ee1f99caec86ff96f027.9787e5d5-f10f-4cac-885f-d550b9fa6fb9", "lastUsedAt": "2022-11-24T09:23:07", "permissionGrantedMap": { "permissionGranted": { "4838740b-5e24-4f19-a2a6-a279d39197e2": true } }, "outsideSid": "8aa08832-f0b7-448c-af10-e9f3b1c7002d", "id": "9fa22db2-7090-4ed5-9008-b83c1c804b9a", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.CwO2bnRRh5ZOzNFhcfsyJX-I-Aqx6bbl.JsIfDKuKNsviU57-.nL0TkcJ4FIyLzkq4oU_j4hIGjM4lEjQweUdrJFlV7ITZRaVk-7g_S8AweMnbjMRR8PWykW-MLH5PlSKftEma-ELKF66LaEEE-WZKfoAJsvp1ppBOHxfAv7tVcpxqsAi84x6EewHPyW4bNr3uLmb82F1wfsHCgCO0PdZJvlFHGzH4aniavn0sF5SRXWWl_EhFB5Ge9Ut9k0J2T2f56oRUt4RYGBZ7UOmeRCumCLL2Ix_5hPb1wZwWxygJpwFii0m0_XIdFkuwBD9tYIj4mqUUCfVYhJyHVUe5qJ00fFgTjS1yBbQ1xcFmn2B1H0m7yjDKR0qO2mgZO622ePyBntovu12YTbVz9X2KTkoaDLrn4c98qCC6diBNLkAaSqIVgoUfxRden4kNC4J-5yswXmUbpmJY2O1V8m8C1zPTouf3YlcZV5dfHeIjxntI7CbvcVvhc7otwoUVwpM8jRgNtYvYzZHXI_HHw7dGXqyEf_lk96icAIFcmNyvhSw0f6Oac8aIiFSzLshriks4UCG4LcpdIvXWw5DbPHkbsZngEKB6uVM3E_ZoQvPiRpx6HEwxFd7VDtAg9gSMss7qABE0YRx2HJe0jf862W4bqGHCIuUrCbH-dB1s12AwKKp2FMIoE3oldjB8ZmVkxAHHD-NSbcUIPfIdgHUDlAGgSxWQDGQ_Gdy5j3Gw6Q9VBf_xryJoxiqT1h3Vb-NjwJAKg2By9KyzX4CpDjxdzlw3ANOei3_rYEQxHZIQLb8ghuJvF4MRG3ihQevUAlCE4tUiqcxW-ze4VjFFjaUh5t_ijoRcPZjoHS4DLfimlWWuPi-a1-3qQo_8JsUOe7QFTSoj6NNzhGLyzeu_w5lzBfjzbhSqaYjHyhFgRkoDzSNpztioCyNuHBW2Jlc06WG2r9wBzr4z55TnR8Qtmw.v1LPWYxHeoHPZhcsd1uS1w", "opbs": "433337f8-afe3-49f1-8a1e-56ad7a2b6be2", "response_type": "token id_token", "session_id": "9fa22db2-7090-4ed5-9008-b83c1c804b9a", "nonce": "68b63133-e108-4555-93a6-057530a2128a", "client_id": "4838740b-5e24-4f19-a2a6-a279d39197e2", "response_mode": "fragment.jwt", "sid": "8aa08832-f0b7-448c-af10-e9f3b1c7002d", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7e7ea177-580c-498e-88d9-a3140c30f0ce", "old_session_id": "f00f8a84-71cb-4e3b-baf1-5840465eb021" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:06" }, { "isJwt": false, "opbrowserState": "9e87d064-e3c3-4b1e-8803-c8383c299ecf", "deletable": true, "dn": "jansId=18094fd1-428e-458b-afd3-367e85739e55,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:05", "creationDate": "2022-11-24T09:23:05", "ttl": 0, "sessionState": "36268e78d05ff593ae59696788971ecbc8d371ba4388a993ed3e4c399fce6678.bdd3bd65-4c25-40bd-81df-84c0ba24e781", "lastUsedAt": "2022-11-24T09:23:06", "permissionGrantedMap": { "permissionGranted": { "08d07a97-6b8b-4281-82f9-c98f9d706681": true } }, "outsideSid": "9d7c5273-5b9a-48c6-9f97-6c3908c9cdeb", "id": "18094fd1-428e-458b-afd3-367e85739e55", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJiZmRkZGYzYS00NGJmLTQ0ZGEtODNkMS0wODJjMGRjNTFiYjUiLAogICJub25jZSIgOiAiMTIzM2YyNjUtMTU0NC00ZDgyLWFlMTYtZWFmODhhNTQ3NmRjIiwKICAiY2xpZW50X2lkIiA6ICIwOGQwN2E5Ny02YjhiLTQyODEtODJmOS1jOThmOWQ3MDY2ODEiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.LOW1SLLlx-MEBFjF0vvlDhvZ8plhm7DUWUelw6tZ43zBSwqnEZ_jxmkb04YfIFiolQ5skHl2-yWRWO7Hy5BFPELI59bq3fm6BULrf9DcOC0XIvRb737WPDszHlhkDADsO7dMdJ7xRooDb75Czin2gHvlEpLOX45W2H0ZKDsuH8KG0uXjYWbeS5nBrJJsitjrP4BsnXyrbMlkdGCFNTCyWbqXWslwQC4xWcf_ga_p7ySi9gMkpObkwlPWxz3eWvFGn0vsfhvSReB3Y2pvBBZz6yhHk4tQeXBK68LJ5n8WMvNzNe4IswujfocC1OT3FsCaZu2KI6XK2GNdsAe_I_ZemQ", "opbs": "9e87d064-e3c3-4b1e-8803-c8383c299ecf", "response_type": "code token", "session_id": "18094fd1-428e-458b-afd3-367e85739e55", "nonce": "1233f265-1544-4d82-ae16-eaf88a5476dc", "client_id": "08d07a97-6b8b-4281-82f9-c98f9d706681", "response_mode": "fragment.jwt", "sid": "9d7c5273-5b9a-48c6-9f97-6c3908c9cdeb", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "bfdddf3a-44bf-44da-83d1-082c0dc51bb5", "old_session_id": "7425f800-92d1-4870-8a83-2c03bf9c5c64" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:05" }, { "isJwt": false, "opbrowserState": "70076ff5-630c-46b4-8311-e46553643e05", "deletable": true, "dn": "jansId=00fa1f9b-b3be-4c1c-b8e9-3792a92b77f6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:05", "creationDate": "2022-11-24T09:23:04", "ttl": 0, "sessionState": "c6802eefa2ebdf2936d1f5e080a717e4136f2138887f0d079b937fdf91c66c74.ebda77ef-d04e-4044-8497-562c94dd56dc", "lastUsedAt": "2022-11-24T09:23:05", "permissionGrantedMap": { "permissionGranted": { "d4f7cfaa-95db-4e55-b311-8a2b9c03d566": true } }, "outsideSid": "5b0c2d41-42e9-4d37-abf2-8aaad7964682", "id": "00fa1f9b-b3be-4c1c-b8e9-3792a92b77f6", "state": "authenticated", "sessionAttributes": { "opbs": "70076ff5-630c-46b4-8311-e46553643e05", "response_type": "code id_token token", "session_id": "00fa1f9b-b3be-4c1c-b8e9-3792a92b77f6", "nonce": "e6ef278b-1153-4836-adde-e09dd3745c4c", "client_id": "d4f7cfaa-95db-4e55-b311-8a2b9c03d566", "response_mode": "fragment.jwt", "sid": "5b0c2d41-42e9-4d37-abf2-8aaad7964682", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "40e5b9a1-3e9b-4c64-9b58-0a6553ad1c67", "old_session_id": "2a4c96b6-0509-4fcc-a84c-2f662e5eac5d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:04" }, { "isJwt": false, "opbrowserState": "eeea2920-266d-43e4-9d4f-53163e9e68b2", "deletable": true, "dn": "jansId=415bd50a-1968-4fac-bc6c-68bb721b7756,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:05", "creationDate": "2022-11-24T09:23:04", "ttl": 0, "sessionState": "c1b38bd88eef462249d2d4100792fad2c1ff1c964bfa13819c364af48e56e810.f366cae4-ba4e-4c96-8f84-5a3db811b9b8", "lastUsedAt": "2022-11-24T09:23:05", "permissionGrantedMap": { "permissionGranted": { "0e5b4f45-014c-4710-b777-cc5eadcee6a5": true } }, "outsideSid": "31dd9ff3-7db6-4f9e-90f9-c607c92e9c3a", "id": "415bd50a-1968-4fac-bc6c-68bb721b7756", "state": "authenticated", "sessionAttributes": { "opbs": "eeea2920-266d-43e4-9d4f-53163e9e68b2", "response_type": "token", "session_id": "415bd50a-1968-4fac-bc6c-68bb721b7756", "nonce": "9d2f3263-c3bb-4b32-ae13-20b501557999", "client_id": "0e5b4f45-014c-4710-b777-cc5eadcee6a5", "response_mode": "fragment.jwt", "sid": "31dd9ff3-7db6-4f9e-90f9-c607c92e9c3a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "defc7cc9-84d6-4a76-8c2f-f4d528d38a3a", "old_session_id": "088f250f-6bd3-4a57-aa55-6f8b64692a34" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:04" }, { "isJwt": false, "opbrowserState": "47953483-8196-46a4-82e2-714c50e71ca7", "deletable": true, "dn": "jansId=6c40d32a-e3ce-488b-af85-925273456f49,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:03", "creationDate": "2022-11-24T09:23:03", "ttl": 0, "sessionState": "84d3684ff53875c28852815f1b115dce3bb9f6cbf883b173a8625f96d17e3ed9.c9cb8d1d-ca0e-4a42-bc63-7165d50f98fd", "lastUsedAt": "2022-11-24T09:23:04", "permissionGrantedMap": { "permissionGranted": { "66ea582b-88a2-4359-b67b-1d292f37c14c": true } }, "outsideSid": "0ea492c8-23bf-4e1f-96b9-84bb63df17c8", "id": "6c40d32a-e3ce-488b-af85-925273456f49", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJmZjUwMjZiMy1jZGViLTQ3ZTktYTRiOC05OWZiNTM4ZGE5ZTciLAogICJub25jZSIgOiAiYTJjOWQzN2QtY2E3MC00YTE4LThkMmMtYWIxOThjZWMxZWI1IiwKICAiY2xpZW50X2lkIiA6ICI2NmVhNTgyYi04OGEyLTQzNTktYjY3Yi0xZDI5MmYzN2MxNGMiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.MLpM-doYgtvpqdjRCY15iMQ2CKxoTXfgnV1LrKxNqagT6BuUVtDNoT2Mx52TCPJQMz8ucu1ZWnlKCbNZCf0jgYQ-NTpizAj1xBmSt8kcmKPwi0kAOAs64Xk0_LDMYFtKR8aW58DIhY_HENI-DvFi2IrHXLux5xeAgusFO_S-5tHVJDgQOkS-pb7EmHdIdKjQfluuST62UQbAq8yulZMl5UGECFR6obviu3VaxjWq8-4H9PnRozTZLsFS4LhRzAsx4SEuhr-qMvkEmWN95uIiC9B3uJHbwQo43FC1dR_RRnkOxsUZzCTGVSY-68D59-PQ4tfhElE7IYbUVY72hPGqkg", "opbs": "47953483-8196-46a4-82e2-714c50e71ca7", "response_type": "code token", "session_id": "6c40d32a-e3ce-488b-af85-925273456f49", "nonce": "a2c9d37d-ca70-4a18-8d2c-ab198cec1eb5", "client_id": "66ea582b-88a2-4359-b67b-1d292f37c14c", "response_mode": "fragment.jwt", "sid": "0ea492c8-23bf-4e1f-96b9-84bb63df17c8", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ff5026b3-cdeb-47e9-a4b8-99fb538da9e7", "old_session_id": "150497af-3b58-4088-998f-dae286220ab5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:03" }, { "isJwt": false, "opbrowserState": "96cc00e1-6d0d-4cd3-b440-9f78463d32b9", "deletable": true, "dn": "jansId=b4eb7053-7db6-4883-8623-2a7f67d6639d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:03", "creationDate": "2022-11-24T09:23:02", "ttl": 0, "sessionState": "bb529e74bbb25cfd259fc8b98974d6e518be8a5a6d4b204d03cb411b6582a46f.24ffdceb-59f3-4e8c-8f3a-d2aee7aeabe0", "lastUsedAt": "2022-11-24T09:23:04", "permissionGrantedMap": { "permissionGranted": { "a8b5da24-3201-41b6-b13d-af971da321d6": true } }, "outsideSid": "e3ed4a9c-8bed-4379-be92-a2bc2046312c", "id": "b4eb7053-7db6-4883-8623-2a7f67d6639d", "state": "authenticated", "sessionAttributes": { "opbs": "96cc00e1-6d0d-4cd3-b440-9f78463d32b9", "response_type": "code id_token token", "session_id": "b4eb7053-7db6-4883-8623-2a7f67d6639d", "nonce": "bed91ea2-4555-4145-8987-c2f74af6fc00", "client_id": "a8b5da24-3201-41b6-b13d-af971da321d6", "response_mode": "fragment.jwt", "sid": "e3ed4a9c-8bed-4379-be92-a2bc2046312c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e017c64c-ec54-4e2f-be6b-cc4891b49f16", "old_session_id": "8b0fba03-9612-4222-9a38-9745c44c8ab7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:02" }, { "isJwt": false, "opbrowserState": "0f9dca20-e86d-458c-94a7-7b3d01586030", "deletable": true, "dn": "jansId=84bdc2fc-86e5-40fc-9623-0eab19dac422,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:03", "creationDate": "2022-11-24T09:23:02", "ttl": 0, "sessionState": "3b045bc177efd4489d7d7b902890d5711d9ff964c60807024c4d697a12fe08c3.0d27f0cf-ce71-4616-9e86-d2eac1676c82", "lastUsedAt": "2022-11-24T09:23:03", "permissionGrantedMap": { "permissionGranted": { "622f9e72-4913-4823-8d6e-eaa576089a53": true } }, "outsideSid": "a716b06c-e0fc-42fd-96af-8883c3c544bd", "id": "84bdc2fc-86e5-40fc-9623-0eab19dac422", "state": "authenticated", "sessionAttributes": { "opbs": "0f9dca20-e86d-458c-94a7-7b3d01586030", "response_type": "token", "session_id": "84bdc2fc-86e5-40fc-9623-0eab19dac422", "nonce": "0ebf0841-0594-409d-aac8-7fa20f37b449", "client_id": "622f9e72-4913-4823-8d6e-eaa576089a53", "response_mode": "fragment.jwt", "sid": "a716b06c-e0fc-42fd-96af-8883c3c544bd", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "98564e66-ca4c-47ec-b892-1ba7535686ef", "old_session_id": "ed9fd49d-5a62-47fc-9acc-320bcf12e808" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:02" }, { "isJwt": false, "opbrowserState": "72b5a8df-8c49-43c4-a75d-156021b90b9f", "deletable": true, "dn": "jansId=328684a9-06d4-4bbc-b130-f2653f37b976,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:01", "creationDate": "2022-11-24T09:23:01", "ttl": 0, "sessionState": "ccc3a94f752ef2113ebccfbee41f11279fe9963885aa88835e3843373cfd2b63.7b84c321-c396-4165-908f-4656cd6048cd", "lastUsedAt": "2022-11-24T09:23:02", "permissionGrantedMap": { "permissionGranted": { "06dc6476-a7e4-4aaf-aa94-78dfdd4ae10a": true } }, "outsideSid": "adf5412f-321e-4421-80e7-c901a3327cf4", "id": "328684a9-06d4-4bbc-b130-f2653f37b976", "state": "authenticated", "sessionAttributes": { "opbs": "72b5a8df-8c49-43c4-a75d-156021b90b9f", "response_type": "code id_token token", "session_id": "328684a9-06d4-4bbc-b130-f2653f37b976", "nonce": "0b2a3a52-aed7-4ef1-b21c-744c89c23156", "client_id": "06dc6476-a7e4-4aaf-aa94-78dfdd4ae10a", "response_mode": "fragment.jwt", "sid": "adf5412f-321e-4421-80e7-c901a3327cf4", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "fc5caf4c-fb39-4017-afbe-08758ded572d", "old_session_id": "8f26ffa7-e6d8-45b7-a0c2-4449005da3ff" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:01" }, { "isJwt": false, "opbrowserState": "04c3b43b-0586-4366-9d14-b9fbd59a5042", "deletable": true, "dn": "jansId=2ec90c73-7408-4f37-b85f-b9746933bab2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:01", "creationDate": "2022-11-24T09:23:01", "ttl": 0, "sessionState": "36633b808a58f00da9b557c694a315844e69b4152e519ac80786e2c446b0cbd2.35396f3c-f1ee-4f0f-9794-5faa9166b008", "lastUsedAt": "2022-11-24T09:23:02", "permissionGrantedMap": { "permissionGranted": { "40c159ba-c100-42cb-ad7f-a69efa2de367": true } }, "outsideSid": "c54a8b88-9e73-472e-8f3e-0c63f1b393a5", "id": "2ec90c73-7408-4f37-b85f-b9746933bab2", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJhYzZjN2NjMi1iNjJkLTQ0OTgtYTg0ZC1jMGMwMzkwYTY2NjQiLAogICJub25jZSIgOiAiZGVjMTI1ZDYtOGMyNS00ZTVmLTk3OWQtYWI5YjMzNzhlMGIwIiwKICAiY2xpZW50X2lkIiA6ICI0MGMxNTliYS1jMTAwLTQyY2ItYWQ3Zi1hNjllZmEyZGUzNjciLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.JfP-ezhFR9RN-CTh3l9vg0pUAUFU1k-VejabkYQALin9F56nkAtUfbH8QO4GekyGGJdVqqkzypOefvYmih6Vf4MOOrAZq3Ad1N-jT3RNwrWbk99ucevHS4OTs8BFSdkDQ2yPXO2Fg7qzwwx1OBlVvxaQTWVI0gqaEWdKb6ahkO9_QbAtD5vfm_vbV1sADccOuB79IqJapMP2PAYtXXYKxxV8d-FvGOBXQm63ouJD417lZYIrYilvcbS9RJO4Ainqtoy8vqqXpBQw1g2AjLw5E6oKHAvQaSpmPl2kvqq_3ITn1pt7dTos11rO3UnUc9wYrUc4SexTAol1J0vMuBej5A", "opbs": "04c3b43b-0586-4366-9d14-b9fbd59a5042", "response_type": "code token", "session_id": "2ec90c73-7408-4f37-b85f-b9746933bab2", "nonce": "dec125d6-8c25-4e5f-979d-ab9b3378e0b0", "client_id": "40c159ba-c100-42cb-ad7f-a69efa2de367", "response_mode": "fragment.jwt", "sid": "c54a8b88-9e73-472e-8f3e-0c63f1b393a5", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ac6c7cc2-b62d-4498-a84d-c0c0390a6664", "old_session_id": "461fed16-b046-4887-b94d-68735a9ad7dd" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:01" }, { "isJwt": false, "opbrowserState": "3fc1d7b2-68e2-43e5-8c9d-7737674949d6", "deletable": true, "dn": "jansId=a4260d50-2322-40b0-8b28-8ec0cde1434a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:01", "creationDate": "2022-11-24T09:23:00", "ttl": 0, "sessionState": "7d490530056a53e5f5a9d85065a59b31132cda622335be5c62becb1f1a127253.6d0cc01c-981b-4e89-aef0-d3da1d01a21c", "lastUsedAt": "2022-11-24T09:23:01", "permissionGrantedMap": { "permissionGranted": { "e22d2d65-6093-43d6-884d-7697f0d586e6": true } }, "outsideSid": "87a94800-1175-42d6-ad91-70d1ba751efc", "id": "a4260d50-2322-40b0-8b28-8ec0cde1434a", "state": "authenticated", "sessionAttributes": { "opbs": "3fc1d7b2-68e2-43e5-8c9d-7737674949d6", "response_type": "token", "session_id": "a4260d50-2322-40b0-8b28-8ec0cde1434a", "nonce": "61d0fee1-6874-4b7b-aea3-00aab025affd", "client_id": "e22d2d65-6093-43d6-884d-7697f0d586e6", "response_mode": "fragment.jwt", "sid": "87a94800-1175-42d6-ad91-70d1ba751efc", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9469c2ba-00f7-4936-b033-d13aa8ba3074", "old_session_id": "5106ee06-71f8-428a-b861-f9fac39a229c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:23:00" }, { "isJwt": false, "opbrowserState": "580f53de-799c-4421-8a45-873f40736c98", "deletable": true, "dn": "jansId=76531956-4f95-4931-b73a-f1639276b9f2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:23:00", "creationDate": "2022-11-24T09:22:59", "ttl": 0, "sessionState": "a5897c1bdfa57ad50a0fb90b5bd46fa36e1d38324489e33a34c9dae7c71e2276.a8404bd2-cdcd-4e82-a1ac-255c820ef821", "lastUsedAt": "2022-11-24T09:23:00", "permissionGrantedMap": { "permissionGranted": { "db4f4f1d-4445-4e9a-805a-c32a23f4d0b4": true } }, "outsideSid": "c87765cc-059f-4957-8638-842fbd8a75d5", "id": "76531956-4f95-4931-b73a-f1639276b9f2", "state": "authenticated", "sessionAttributes": { "opbs": "580f53de-799c-4421-8a45-873f40736c98", "response_type": "code id_token token", "session_id": "76531956-4f95-4931-b73a-f1639276b9f2", "nonce": "7abca648-42b6-4b45-a910-18e920d1c855", "client_id": "db4f4f1d-4445-4e9a-805a-c32a23f4d0b4", "response_mode": "fragment.jwt", "sid": "c87765cc-059f-4957-8638-842fbd8a75d5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1a207d16-4593-450a-9723-1f2764f67083", "old_session_id": "c68ce419-0010-44a1-9a6a-e2627869e6c8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:59" }, { "isJwt": false, "opbrowserState": "fa06217b-cc72-4e2c-b2bf-0c7b6e7baf34", "deletable": true, "dn": "jansId=810d9a7d-bf3e-40e6-82b4-71619023aa55,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:59", "creationDate": "2022-11-24T09:22:59", "ttl": 0, "sessionState": "4b7e35e177e52c776f201982ca978be61eb4a35472b1f2d09c7923c89d932d3e.920007f2-4445-45e4-8453-3c6466a65314", "lastUsedAt": "2022-11-24T09:23:00", "permissionGrantedMap": { "permissionGranted": { "30677d78-d748-49bd-8360-b86afb953222": true } }, "outsideSid": "5e5b8427-3940-4df7-8268-bf666317794b", "id": "810d9a7d-bf3e-40e6-82b4-71619023aa55", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJhZTc5ZWNlYy0xODYxLTQzZjMtOGZiZS02NmZiODMzZGNkYjgiLAogICJub25jZSIgOiAiOTUwNjg3MmEtOTJjNC00MTg0LWJhMjctODE1NmMwYTNmNDBjIiwKICAiY2xpZW50X2lkIiA6ICIzMDY3N2Q3OC1kNzQ4LTQ5YmQtODM2MC1iODZhZmI5NTMyMjIiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.EiEP2u7lEVmuYZZ3rlNvmwbFh9TRy4YFWOVyRdlCWfibH7QP4jDJ1lRy6tLa-otYSt5UljIK75CRVvaZ_zM6S_gWxgz_3OcUekl7Vn08-DBhCUIOEDd7Xlgl84-daQfst-XiyXJB0dqGaDw8zXMmR6vmTED5d_7FRDXIh5jJgJTseCHosaN3TsqTO6gnW_Cgck1cli7zC-BnE_t3kNo-6B1ST26EBugSg5Did_KvS9aMMyg3AYVovDXTOU1-rpdPQ2uF7EhuuO-HHx0KYiTxHYmV7bp3FvahJr60xyFnVZz5hHKDfjYhSzxxZAJ5raDDXv4TCtPN9vEE-nFkszauhA", "opbs": "fa06217b-cc72-4e2c-b2bf-0c7b6e7baf34", "response_type": "code token", "session_id": "810d9a7d-bf3e-40e6-82b4-71619023aa55", "nonce": "9506872a-92c4-4184-ba27-8156c0a3f40c", "client_id": "30677d78-d748-49bd-8360-b86afb953222", "response_mode": "fragment.jwt", "sid": "5e5b8427-3940-4df7-8268-bf666317794b", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ae79ecec-1861-43f3-8fbe-66fb833dcdb8", "old_session_id": "2f7827fb-2d8d-456a-837c-c757187e0fe7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:59" }, { "isJwt": false, "opbrowserState": "a06ba210-1966-4df9-9f0d-6aee66152a1b", "deletable": true, "dn": "jansId=65d765b1-a7c4-4592-8303-12375dacc42b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:59", "creationDate": "2022-11-24T09:22:58", "ttl": 0, "sessionState": "67b0e5903540bd492f2ec5f0c882d5a6c4fae11ad28699362c6930cf84fe55ca.e2645294-13ab-4fb2-9837-f44515598800", "lastUsedAt": "2022-11-24T09:23:00", "permissionGrantedMap": { "permissionGranted": { "83a59182-7a75-4a16-923e-c65524193d1a": true } }, "outsideSid": "35609426-94da-4110-8032-6177ecb95955", "id": "65d765b1-a7c4-4592-8303-12375dacc42b", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiI0Y2E3NjMyMi1mY2ZkLTQyNWQtOTc0ZS0zMjBlNTZmM2U2YjFfZW5jX3JzYS1vYWVwIiwidHlwIjoiand0IiwiZW5jIjoiQTI1NkdDTSIsImFsZyI6IlJTQS1PQUVQIn0.E6BpaSSAidp7RQsnEUXeh3aTMgAkslJLuuu1JB9UJpBzTN3qWolDxaXvq0Bzaum94AQ2GNAZhizlvqxOepu7-G1kjliVIbjVZdraqc7Bo-VUitnpMpDwKK8uTY6CYDPf5zYmMgPMFuyHCYvoGRH3zeuyUnxEWteczq2FmB59lXsAB6lEVKPvmEHczH6E6lAcP6spmcxWiPYr20GdAgAj39ZmhDYxspsmah2vDfAwjyL8JsZSX9DA7bG3XRgt_6cOqAysONUqjMqZKb1myNzIrrsbHA_POEcll9GZ9bJJSgIl3yXdsGrTPCUbs_t69QexHj9yN2mstkEQkLBTTdhIIg.m4Kz9h3DGNNCsOr_.B5qU6YB3-n5qVRdtWPYJFivB8jxPuz9XzYCS-5NV-jFRiFEnjY0Oj5QCBULlIRT5AyRccAU1U63sIXEB-6PYK3hIp0Cd1v3gNP49DesNj3wl2lv7cm6sQOqFARds0eJkJRZv9XSILgHh7r882sn_GbvxsFTXufhA5YOlaLEc3XR18zh93BNMiFesmq23w5L4GfZjW0UB490Xoc6V98oC-P5eNCxcKncGR2sUUolZGSyxtoWTzmJ5JrgvHaVdjxWEK939DQspIDC_GbEShYX_N8r4Yn-ERpUdmHc38i52SwDf_TKE51uEEcVhy9KUqPEOUGsbyBrrtRpPB2TUiyJlqgoZVMxpWQ4YFPqQquV-2o5yRSZlX3C0SmettAUCa79W6u-dGM0uXTgn16wycpZPxbw2fwRi8zGdh_VLrOm36oEOpVP1egT6Lv1QJn12CLkK2XNSfaHD9V6UueIcEzEB8VaxNQDxtLCap6OpQE5ddCWergnCCyYb8imUBoO-fQLg8Sc_43kuy_FVhSpmnb2yR7K8tDwybV2JXZos9D6ygL6UIPcbv74zMF5sx4PFWTvwYRUgxVhlnuH_WEI3AurJtyGRqKbP0YsVnuovNaq3ymeFHDmqdjqRcMjFPrp-qAkCsTlad_QxTk12fEuHxZmd_Q0SVOb7OjONv0cOnFyGvYl0HorglK9CwBwC8vEar7_n8Cs7Ne5Urr5d1cnZSTErh0a4--jDhHZ2Fn1_fvTv-vlwytHSMMjAHggfn8_rJzi-mqi9RvHQ56rJVFMSOP4iYApQKGCU3aZ_yrc4pc102nCP3OhHvVuu7bwviHwUhKmiJB_4DoLvgnZL9E6sFIk6-23YSGUnVhm_OdyNFOz0xN3S47LKP96BSyJvGlVUlnYA_s0.MUMvMmO8CfgGe4kIKlEonA", "opbs": "a06ba210-1966-4df9-9f0d-6aee66152a1b", "response_type": "token", "session_id": "65d765b1-a7c4-4592-8303-12375dacc42b", "nonce": "6f065c0f-8d12-4ef1-96f9-3da629894d42", "client_id": "83a59182-7a75-4a16-923e-c65524193d1a", "response_mode": "fragment.jwt", "sid": "35609426-94da-4110-8032-6177ecb95955", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "67baadee-b8fc-403e-84d5-95bbe85bf407", "old_session_id": "80256f79-d80f-43f2-a137-ad63f93a6b13" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:58" }, { "isJwt": false, "opbrowserState": "abae4854-f806-4a2e-a19e-87857aa66744", "deletable": true, "dn": "jansId=269f06a9-35be-49b7-835e-3f32333f377f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:58", "creationDate": "2022-11-24T09:22:58", "ttl": 0, "sessionState": "a31afa6aea4cd6282e69c980d423a89b0076108210726b1a3efab9910831d644.113cda33-8f4a-49c4-be71-13c939b99e75", "lastUsedAt": "2022-11-24T09:22:58", "permissionGrantedMap": { "permissionGranted": { "9b28e20c-d0cd-4d05-901b-e1a248f10026": true } }, "outsideSid": "07f88390-df65-49b8-a9d8-0271c3070424", "id": "269f06a9-35be-49b7-835e-3f32333f377f", "state": "authenticated", "sessionAttributes": { "opbs": "abae4854-f806-4a2e-a19e-87857aa66744", "response_type": "code", "session_id": "269f06a9-35be-49b7-835e-3f32333f377f", "client_id": "9b28e20c-d0cd-4d05-901b-e1a248f10026", "response_mode": "fragment.jwt", "sid": "07f88390-df65-49b8-a9d8-0271c3070424", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f5de6793-c850-4333-b719-e0be9e96dd2f", "old_session_id": "cdfeee65-b220-49d9-9aad-4f37d79e3e17" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:58" }, { "isJwt": false, "opbrowserState": "7f0dc27b-6e38-4b06-a270-342273f22ba2", "deletable": true, "dn": "jansId=6398876a-8ec8-4380-aa8e-dedc93eab97c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:57", "creationDate": "2022-11-24T09:22:56", "ttl": 0, "sessionState": "2d4b92b325058283cac2de61cbbb1482913807f24953748a20b0b8d80f515112.ff0ea276-1ee4-48d5-8f41-fb1171314469", "lastUsedAt": "2022-11-24T09:22:57", "permissionGrantedMap": { "permissionGranted": { "96208f42-444f-4d7d-b24d-f4271373cd4b": true } }, "outsideSid": "e2d7e5bd-36e6-43a3-867c-ce36c361cc95", "id": "6398876a-8ec8-4380-aa8e-dedc93eab97c", "state": "authenticated", "sessionAttributes": { "opbs": "7f0dc27b-6e38-4b06-a270-342273f22ba2", "response_type": "code", "session_id": "6398876a-8ec8-4380-aa8e-dedc93eab97c", "client_id": "96208f42-444f-4d7d-b24d-f4271373cd4b", "response_mode": "fragment.jwt", "sid": "e2d7e5bd-36e6-43a3-867c-ce36c361cc95", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d03da9db-1097-48ae-b090-474dfc359f0e", "old_session_id": "5cf6fefd-4d13-4014-acce-b0e5d53c0dd4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:56" }, { "isJwt": false, "opbrowserState": "1b91aabc-71a3-4dc8-be71-6e0127cf7cd8", "deletable": true, "dn": "jansId=650d2de9-45f5-4461-b07f-babc9345ca26,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:57", "creationDate": "2022-11-24T09:22:56", "ttl": 0, "sessionState": "82ab9f72ee8ad7452acde4f7eba29b7befc4c93d94531d3af10cf9a51082da99.b7220ccb-8195-4ca2-934e-9564530bf6e1", "lastUsedAt": "2022-11-24T09:22:57", "permissionGrantedMap": { "permissionGranted": { "6f54f522-d20c-4b36-97df-969815ea2e58": true } }, "outsideSid": "a896f018-6bc9-404d-b2d3-04984b7fa00d", "id": "650d2de9-45f5-4461-b07f-babc9345ca26", "state": "authenticated", "sessionAttributes": { "opbs": "1b91aabc-71a3-4dc8-be71-6e0127cf7cd8", "response_type": "code id_token token", "session_id": "650d2de9-45f5-4461-b07f-babc9345ca26", "nonce": "1fa46811-11bd-416e-a8d9-caa77808f96f", "client_id": "6f54f522-d20c-4b36-97df-969815ea2e58", "response_mode": "fragment.jwt", "sid": "a896f018-6bc9-404d-b2d3-04984b7fa00d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2a0cefec-0523-4948-bfd2-450ea770c808", "old_session_id": "41af5876-88ea-44b5-be4c-b88b432abeb0" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:56" }, { "isJwt": false, "opbrowserState": "49bdb1c3-ec11-4932-b196-d375ecdcf698", "deletable": true, "dn": "jansId=1b9781ac-0580-404b-b5cf-0fe115ec89e1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:56", "creationDate": "2022-11-24T09:22:56", "ttl": 0, "sessionState": "8389e991992928f1370557c150e4fefd2ba16adb6f795cf4e6eff7a1c38dafb6.2b3bb01a-46c7-48dc-8e4a-3830d952e2c7", "lastUsedAt": "2022-11-24T09:22:57", "permissionGrantedMap": { "permissionGranted": { "4cc5bdfd-63cc-4f5f-9fa2-cc4db30ceacc": true } }, "outsideSid": "9901d5d9-347a-442b-b21f-e979fd97c3e7", "id": "1b9781ac-0580-404b-b5cf-0fe115ec89e1", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIwOWFkZmMyMi0xZTk1LTQwODUtOWZhMi02N2E2ZTExZjZiOGIiLAogICJub25jZSIgOiAiMzZiNjQxYWQtZDhiYi00NGMzLWE1YmItMWUxZjg4M2QxZjY0IiwKICAiY2xpZW50X2lkIiA6ICI0Y2M1YmRmZC02M2NjLTRmNWYtOWZhMi1jYzRkYjMwY2VhY2MiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.AL9u7JB42oTHIhH7cgrg-c95P74ZcHk4ZqvramFD9ZDTO_zE30VxtyLOk9DKSge3Wadwdn_1fRVv02Zpr7ya-VMGSVHhlCMusP6a-FH-RQ8ud0fstOk-k5OmCU-mkaKlW9V432DckiSHirLw-TvnDvSswX6EPvfDoXm14ey2V0A5sDRI4lQbmviw8PfCYqhe6z8yxK8GUxIWAX_YnXJn21dvU72f0IhNYQhQOobVmPerAse7MdDFasastTQu3lRXLzEoFLoWlkOISmAIniosbI86IRoPTlKvE3ojI18iXyy6al6mtRwj1t93NULK9NUq2pmufoAwkH17XxfC5AcVqQ", "opbs": "49bdb1c3-ec11-4932-b196-d375ecdcf698", "response_type": "code token", "session_id": "1b9781ac-0580-404b-b5cf-0fe115ec89e1", "nonce": "36b641ad-d8bb-44c3-a5bb-1e1f883d1f64", "client_id": "4cc5bdfd-63cc-4f5f-9fa2-cc4db30ceacc", "response_mode": "fragment.jwt", "sid": "9901d5d9-347a-442b-b21f-e979fd97c3e7", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "09adfc22-1e95-4085-9fa2-67a6e11f6b8b", "old_session_id": "267fd760-46a6-409c-bc68-ab3465060e6f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:56" }, { "isJwt": false, "opbrowserState": "f73ae1c8-716f-449e-ac23-9e021685ed07", "deletable": true, "dn": "jansId=a2aced84-e636-4f9f-aa21-5c3379d65f02,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:55", "creationDate": "2022-11-24T09:22:55", "ttl": 0, "sessionState": "38a8b24ea3bb22db88b0b29673af75e76a5dd8ba9af186129e2ac11cec9f9e0d.fec7352f-bb13-4bbf-ad00-688f831cb10d", "lastUsedAt": "2022-11-24T09:22:56", "permissionGrantedMap": { "permissionGranted": { "ca1d6a92-7dbf-4f6f-a40b-54d06de8dfe4": true } }, "outsideSid": "5319fb58-7c11-4696-b960-ca87ca325c09", "id": "a2aced84-e636-4f9f-aa21-5c3379d65f02", "state": "authenticated", "sessionAttributes": { "opbs": "f73ae1c8-716f-449e-ac23-9e021685ed07", "response_type": "code id_token token", "session_id": "a2aced84-e636-4f9f-aa21-5c3379d65f02", "nonce": "028b67eb-f6aa-4363-b872-05d6d9dccf0f", "client_id": "ca1d6a92-7dbf-4f6f-a40b-54d06de8dfe4", "response_mode": "fragment.jwt", "sid": "5319fb58-7c11-4696-b960-ca87ca325c09", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5253931a-ceab-4f29-8125-4f7d7a7d0f9a", "old_session_id": "e417f399-213e-4271-a342-42c8b9326bac" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:55" }, { "isJwt": false, "opbrowserState": "4f758e4a-c25d-4cb0-ab7e-3e7c5b0e5770", "deletable": true, "dn": "jansId=73489555-ff8d-4d0f-b5c7-47faf156daf9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:55", "creationDate": "2022-11-24T09:22:55", "ttl": 0, "sessionState": "2952164fbee4dfcc0d1e000ee6be0692ac0d22070647c9bb0691b9654f7c1ba6.f0946d9d-152e-4343-ba3f-de2cf0c6f695", "lastUsedAt": "2022-11-24T09:22:55", "permissionGrantedMap": { "permissionGranted": { "3345c60a-bee4-4e63-b7ae-3de456f845fb": true } }, "outsideSid": "84003591-d6c4-4cb5-95f1-dd5f1f8b1afd", "id": "73489555-ff8d-4d0f-b5c7-47faf156daf9", "state": "authenticated", "sessionAttributes": { "opbs": "4f758e4a-c25d-4cb0-ab7e-3e7c5b0e5770", "response_type": "code", "session_id": "73489555-ff8d-4d0f-b5c7-47faf156daf9", "client_id": "3345c60a-bee4-4e63-b7ae-3de456f845fb", "response_mode": "fragment.jwt", "sid": "84003591-d6c4-4cb5-95f1-dd5f1f8b1afd", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1eac9028-eced-443d-a148-9bbc5473a70e", "old_session_id": "5c13c436-c92e-480c-91e0-cc8cc51e8f45" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:55" }, { "isJwt": false, "opbrowserState": "5c060a98-43c6-43f8-9b53-7f2d7b34c68b", "deletable": true, "dn": "jansId=aac2f21c-d4ab-48b1-a6ba-63ae3cfb59a8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:55", "creationDate": "2022-11-24T09:22:54", "ttl": 0, "sessionState": "cf45163c1052fbe382c147257201db2f20bd3233420828c069e7aecc427280aa.ade9de14-902e-406f-a84d-a32b42dab687", "lastUsedAt": "2022-11-24T09:22:55", "permissionGrantedMap": { "permissionGranted": { "63344ad7-32ba-4956-a182-9eff264c8455": true } }, "outsideSid": "ac9e81b2-9078-4f66-a875-d91d613e3140", "id": "aac2f21c-d4ab-48b1-a6ba-63ae3cfb59a8", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIyZmViMjFiNC04NDViLTQ5NTAtODY3NS1mY2UwZDE1MjhiNGQiLAogICJub25jZSIgOiAiMThmNTBkM2QtYTU5OS00NWVkLTk0NGEtZTAxODFhM2RiMTUwIiwKICAiY2xpZW50X2lkIiA6ICI2MzM0NGFkNy0zMmJhLTQ5NTYtYTE4Mi05ZWZmMjY0Yzg0NTUiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.AKAFR0sadfDYgy-0gSWqzo_BY-njkMZn7nMh7h6OaJuEIqRxclVDWHkagAjRJHXmSKlRylpkfM6cMbssWIL6JNlgAAgNLHMw6Yb5lZ6rwwYc1HY6UOlia_IFR7fzsPigF5P_LhJan1cDKcTL0G3wMYUrohBKVONFAT00Z3S_YcO1rB1k", "opbs": "5c060a98-43c6-43f8-9b53-7f2d7b34c68b", "response_type": "code token", "session_id": "aac2f21c-d4ab-48b1-a6ba-63ae3cfb59a8", "nonce": "18f50d3d-a599-45ed-944a-e0181a3db150", "client_id": "63344ad7-32ba-4956-a182-9eff264c8455", "response_mode": "fragment.jwt", "sid": "ac9e81b2-9078-4f66-a875-d91d613e3140", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2feb21b4-845b-4950-8675-fce0d1528b4d", "old_session_id": "326422c1-8486-4437-9a3f-3b988c489609" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:54" }, { "isJwt": false, "opbrowserState": "38c8e0da-0728-43fb-a678-28dad18ca79c", "deletable": true, "dn": "jansId=52c6619a-cb0a-4c62-9715-f190a80aa966,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:54", "creationDate": "2022-11-24T09:22:53", "ttl": 0, "sessionState": "4fa81167d965c49c8721f35fe8c3fde5533711008de8b4170c73ccd5e9b71390.969d4656-4052-419a-88c6-1cd866c4f2d8", "lastUsedAt": "2022-11-24T09:22:54", "permissionGrantedMap": { "permissionGranted": { "a8ad0d1d-f763-4d94-a317-2b3181589fbf": true } }, "outsideSid": "51d2ff51-a68a-4209-a7ef-27f27c0ed075", "id": "52c6619a-cb0a-4c62-9715-f190a80aa966", "state": "authenticated", "sessionAttributes": { "opbs": "38c8e0da-0728-43fb-a678-28dad18ca79c", "response_type": "code id_token token", "session_id": "52c6619a-cb0a-4c62-9715-f190a80aa966", "nonce": "d710a256-bbe3-4206-9411-08e2020112ac", "client_id": "a8ad0d1d-f763-4d94-a317-2b3181589fbf", "response_mode": "fragment.jwt", "sid": "51d2ff51-a68a-4209-a7ef-27f27c0ed075", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5025a6e9-3d50-409a-a1dd-8536fe5fc342", "old_session_id": "a2c814de-3ac8-4393-a8f0-07afb5f84cb5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:53" }, { "isJwt": false, "opbrowserState": "f2127de8-85f1-4423-9a99-7ee05f2e2c46", "deletable": true, "dn": "jansId=9efc94bb-abc4-4431-99e9-da8c273062b3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:54", "creationDate": "2022-11-24T09:22:53", "ttl": 0, "sessionState": "aa66f46353239fe241716d6189da0092c3c1ca752bf058fe1724a00f51a893f1.74c853a2-8846-442f-864f-b84aecdf3106", "lastUsedAt": "2022-11-24T09:22:54", "permissionGrantedMap": { "permissionGranted": { "f54a2ff8-e0cf-4577-b2d5-d2e5c249668e": true } }, "outsideSid": "a854cb5d-81c6-4336-8493-84f2cb596baa", "id": "9efc94bb-abc4-4431-99e9-da8c273062b3", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.L99W597vdlpVfZIJBsFfjBumhoxdyAgCAA5mbaCGEzhFFMWR856i7w.1_vaLFLDbcu5xHLy.O8rbw2myEqsq0cFkyokRKSVNkke9EAk5uGEg6kveKJkkwF-Ed6EUNwNXD17ENxsL7D1qmC6kYXj99o-AyrT3vMcgRxcLhiXvRHRSNhGDgymq61RPEvYCFLwX6Q8paYGXC8LTHb7WqcUjzHK3MUbxhaYOQFZ-el2RL1wJ5s415aSe9n6GswGLV6-xxo7zBds-YLJ0ugx7RRGd4UZdnX_iBWCQavgmMtN7efoS9P8GMP-zzmBuqkFW1NlMG4HIErwPjrZRRS74MYW3mCTQRuO8hfpdQFiAdJzhbaN6eucsIotdQknC4V0FpWlk7uv9TidaI7NoLHgeGK7E_eXgfkcUL00sciYG-N02Aq3AtG1GBKi7F4_AbL2jWdwXrxA8-quEZkJfjf6vFK-fD_wH3-kcLLsHgL9GNEfKhV2uQm-liRbh9UzOcxBP_vCk2tzwdo7ygYZ3f9M_wO9agoio8LUYb0tyMYzgj6KKV3poYLy6N1PQiCNyp17ccTWxUjbZ7MCYlQH_v6OX7R3536KY0cian9g7Zf62h8cN95blRU-Pt8-ZM-MJA6Kw_Qkt_75Ko69DWkG29aAC3KdqbO5pyR9I4vG8GAY3bGF2sZIsvMLr5RAo9Up3oIr7l6OGpsa6pom5Nb82ygxjq-YuBM6IURJG4JfLtzBtOQCmwKr_Kt8k6D__LFzvwPJgVCI9uGe00IchLAyV-GdaisflLy5JxTfyYYXNLjmDbexQ1l6Ck-OnvtI9EAwBmV7EDGxddOwoFhCdVkwTC2801d_HzFb9fHOK3jahH8WFu3J2PZLl78AjJ7Z8eZkKhRF51rN0iO9IFJVNmzsOxPlaQJigLIczDjvPqRUTkhv5MYtOQH_XhOcoIbrba502z0MjvYF_g28i-s3JB_U.CsN8ICHmpTrQDR74U3524Q", "opbs": "f2127de8-85f1-4423-9a99-7ee05f2e2c46", "response_type": "token", "session_id": "9efc94bb-abc4-4431-99e9-da8c273062b3", "nonce": "01a2c611-a29d-46c6-8b1f-81b0b64db1d0", "client_id": "f54a2ff8-e0cf-4577-b2d5-d2e5c249668e", "response_mode": "fragment.jwt", "sid": "a854cb5d-81c6-4336-8493-84f2cb596baa", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b4d0eaed-df8e-4d0b-a14e-17f03c6764e6", "old_session_id": "7dfc7456-bfb1-428b-8c92-72e3f3dc0398" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:53" }, { "isJwt": false, "opbrowserState": "101e1996-8282-47b1-84fc-bf532d055f35", "deletable": true, "dn": "jansId=852059e6-adea-42a3-ba80-761317782b6b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:53", "creationDate": "2022-11-24T09:22:53", "ttl": 0, "sessionState": "c4d128879476b3d7220ee293644f889ba03efc3d85a6794d046665b1a6faebe0.0e794705-8549-4ca2-bbd9-fe6bbb6b3291", "lastUsedAt": "2022-11-24T09:22:54", "permissionGrantedMap": { "permissionGranted": { "63cac1af-c3c9-4216-9f9d-c91cd9de9a75": true } }, "outsideSid": "a98c8410-57ae-42d4-9bb2-b5c2e5baa497", "id": "852059e6-adea-42a3-ba80-761317782b6b", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJhNjlkZjYwYi1mODY1LTQ1NzktYTAyOS0wY2JlNDdjOGE1MDMiLAogICJub25jZSIgOiAiNDZiZWQ4ZWItOWViZC00ZjJiLThkNjYtNDE1Zjc1YjE2MmQ5IiwKICAiY2xpZW50X2lkIiA6ICI2M2NhYzFhZi1jM2M5LTQyMTYtOWY5ZC1jOTFjZDlkZTlhNzUiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.os5aUNPoGQQx8cOSwfrYb86-06e41wJ04QEsG9uaQayCFgpT1slBrrcadyXp_Dem-VASOmRmz5W4BpA0ZM6-Zu4VOPrYxmPYC618DrmDOPYfHkvrnoTN2kx6MrpDl-kI", "opbs": "101e1996-8282-47b1-84fc-bf532d055f35", "response_type": "code token", "session_id": "852059e6-adea-42a3-ba80-761317782b6b", "nonce": "46bed8eb-9ebd-4f2b-8d66-415f75b162d9", "client_id": "63cac1af-c3c9-4216-9f9d-c91cd9de9a75", "response_mode": "fragment.jwt", "sid": "a98c8410-57ae-42d4-9bb2-b5c2e5baa497", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a69df60b-f865-4579-a029-0cbe47c8a503", "old_session_id": "aa534a0c-1969-48db-a3dd-f00d64c4e3d4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:53" }, { "isJwt": false, "opbrowserState": "52e71c2b-39a6-4ebb-8973-8392ec230d1a", "deletable": true, "dn": "jansId=2b7c13eb-1a60-4590-bc23-8fae5ad56c44,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:53", "creationDate": "2022-11-24T09:22:52", "ttl": 0, "sessionState": "2d202cd222095f060bbf0d99c8e1bce0ab1607a197bf281239e99c8dd0f6223c.b28845c6-2876-4f55-81e2-7063c21635a5", "lastUsedAt": "2022-11-24T09:22:53", "permissionGrantedMap": { "permissionGranted": { "975fd8d8-32f8-41b3-9dcc-247b78a788b0": true } }, "outsideSid": "9fdfb0ae-7bef-4b55-b268-98a59473cd5c", "id": "2b7c13eb-1a60-4590-bc23-8fae5ad56c44", "state": "authenticated", "sessionAttributes": { "opbs": "52e71c2b-39a6-4ebb-8973-8392ec230d1a", "response_type": "code id_token token", "session_id": "2b7c13eb-1a60-4590-bc23-8fae5ad56c44", "nonce": "d5cce5ca-4050-4993-8c6d-ffc512ab5a8c", "client_id": "975fd8d8-32f8-41b3-9dcc-247b78a788b0", "response_mode": "fragment.jwt", "sid": "9fdfb0ae-7bef-4b55-b268-98a59473cd5c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "166f8965-f1c5-4cc0-80db-f4f72e71905d", "old_session_id": "715e9808-e900-4b78-bae4-f638083dfe53" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:52" }, { "isJwt": false, "opbrowserState": "d6bf40c7-70ac-42ba-bf73-1c54a2fccd0a", "deletable": true, "dn": "jansId=4b2f602c-0023-41f4-998c-5cadb30bb136,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:52", "creationDate": "2022-11-24T09:22:52", "ttl": 0, "sessionState": "3f68de434ff1afff3e24a4ce47da227284a51fef1df788d91a574367523c9438.ed9487b1-7924-46d3-a0fd-57a681b0e8c2", "lastUsedAt": "2022-11-24T09:22:53", "permissionGrantedMap": { "permissionGranted": { "567fa0c4-0452-435a-926c-e919116d042b": true } }, "outsideSid": "e958ae0b-3f18-4606-a735-be8618170835", "id": "4b2f602c-0023-41f4-998c-5cadb30bb136", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.Nve7xaUacj5TzGg6euSQmqYlO2zQ0nMF.ynjG9tOEJGgSKEnW.JDbZNLEJXZzUamErOfcnADy6Q8idOiZNWonmXJ9pldHMAfxonIjVypG1ZADOe9m90L_S0tqkNav_FUAnOaucFNeVL8bYFqTdmpvKdNQkaZIChePiFCByf7jelwTjgWv9jI0w66vYdEJGEOu91wI--qRISBFG1PdjMIrptAkzrA9vhZFYNukNKt94r0DXne5d61IH7FPHDTGkZyQJIEnoPpL60FY4mKhRwsyEMw7nt7HktooGH4q2Tpl_FfxKRx20h3DMYK2pLocc6It_RZ6ZGGQOsgmYBYP_6CTQSzHrMXGv3FEejMhIWeZeDQkDyayqf_u1xXtGOwSy0N_68xdl69xLC8A-xaBZ9QJUSXTibhMT45J3YHGacRMeVooygz8VNvnlyya7ZRlO7XhEUGV58ltO-3Y1Gx-ZL7nP9LR7wPSRLZ7GY4mwzs288VaIesTt6TjhXYi6XA1S0pcEbk_J3NSjJej2EAAcoaDLUIvWCLZUFmwnyTCl2ygMEyYbk7hihfihlD4nukErH3wIZdJ9-00A9--JYgdqores4GW3E1Z6IFpR4SkjbjL-RX_dcEodHyIjsu-XAqut_bK5MiXKKcxYAKEcSoUe1VTlkv90z0Hqrn9N7WlT7cb9LT3VtzWjzqNk1ZhcRahFPMNj42qsNdKLCDxPgnibhY_o5KjYrHR9Aic4sc1NTaZ59W8bQnmJSL0rInAGQ55nycCRHPPJckST1ObxHAZgzkzDrqRY2CNZJv1GmA75ZMkHwSR_m0K3S_FWUXiP5CfT9mXoXX_6aPLZHrgNxCt_COPa05U1JMOIOv-bqGaTZxgfGF73_9fkwLut9O5q32cSq9xZ-CBESPWI1YbvmRERewfcCWRT3CWaEPpimwoTPm8ABbtE07DhRDE.qq73Mo2VqdP-pNNCzoPU6g", "opbs": "d6bf40c7-70ac-42ba-bf73-1c54a2fccd0a", "response_type": "token", "session_id": "4b2f602c-0023-41f4-998c-5cadb30bb136", "nonce": "374cdea3-c00b-4d35-acfb-614b158af3ac", "client_id": "567fa0c4-0452-435a-926c-e919116d042b", "response_mode": "fragment.jwt", "sid": "e958ae0b-3f18-4606-a735-be8618170835", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6b8fc2ed-e55b-4233-84ba-9d693e68b161", "old_session_id": "22e30be8-2c7b-4e3e-931e-e55039b4611f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:52" }, { "isJwt": false, "opbrowserState": "18830385-c9ea-49f8-b8eb-cd2be3c93fba", "deletable": true, "dn": "jansId=9e78ce3e-9b5f-4f78-b011-3a6af26f3a47,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:52", "creationDate": "2022-11-24T09:22:51", "ttl": 0, "sessionState": "b95c3a49f9e2c7d1c8ae60d0cc865a380d1fc7728c543d38912523625c0695a4.d30cc50e-2340-4383-b6b9-64d65f50e639", "lastUsedAt": "2022-11-24T09:22:52", "permissionGrantedMap": { "permissionGranted": { "93e2523d-8a6a-4ceb-af8d-93552d9468a9": true } }, "outsideSid": "5deef8b8-f5f3-49a6-b01b-131d04a7571e", "id": "9e78ce3e-9b5f-4f78-b011-3a6af26f3a47", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJiZjhiZjg0Yy1mMDliLTRkYTEtOGM4YS0wYzI1NjI1MjhhNmIiLAogICJub25jZSIgOiAiYmEzNzNiNWMtYmQyNS00OGYwLTk2ZmEtZDA0ZWYzYWZiOTA1IiwKICAiY2xpZW50X2lkIiA6ICI5M2UyNTIzZC04YTZhLTRjZWItYWY4ZC05MzU1MmQ5NDY4YTkiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.YKbmzLUQAvcMdnM_uxUGNbUa9epv1IO6E6fs0QLZ8tfVDWYulaQNpx2Mfqh8dIQbWFg7F17mLrpPGjU6cw2SKA", "opbs": "18830385-c9ea-49f8-b8eb-cd2be3c93fba", "response_type": "code token", "session_id": "9e78ce3e-9b5f-4f78-b011-3a6af26f3a47", "nonce": "ba373b5c-bd25-48f0-96fa-d04ef3afb905", "client_id": "93e2523d-8a6a-4ceb-af8d-93552d9468a9", "response_mode": "fragment.jwt", "sid": "5deef8b8-f5f3-49a6-b01b-131d04a7571e", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "bf8bf84c-f09b-4da1-8c8a-0c2562528a6b", "old_session_id": "23a074b9-3c0d-4951-94fb-4a3de41bc69f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:51" }, { "isJwt": false, "opbrowserState": "8ba54b3f-da16-43ee-ba54-0735d1fbbedc", "deletable": true, "dn": "jansId=3d15aacb-e27c-4451-ba1e-b74c645f1b46,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:51", "creationDate": "2022-11-24T09:22:51", "ttl": 0, "sessionState": "a2157903a99fd2e5a7aada1ba469dc9ef72fb791148b70cb9b83236738972332.d85f045f-c9c7-4ce2-963e-892632044f5c", "lastUsedAt": "2022-11-24T09:22:51", "permissionGrantedMap": { "permissionGranted": { "ccc9db07-c6f5-4a31-a059-5bb8dbe119d3": true } }, "outsideSid": "07c0f846-95f8-49ae-86be-51479166da09", "id": "3d15aacb-e27c-4451-ba1e-b74c645f1b46", "state": "authenticated", "sessionAttributes": { "opbs": "8ba54b3f-da16-43ee-ba54-0735d1fbbedc", "response_type": "code id_token token", "session_id": "3d15aacb-e27c-4451-ba1e-b74c645f1b46", "nonce": "3741c932-029a-4d0a-a67b-6433d613e914", "client_id": "ccc9db07-c6f5-4a31-a059-5bb8dbe119d3", "response_mode": "fragment.jwt", "sid": "07c0f846-95f8-49ae-86be-51479166da09", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5569c5d9-edfc-4524-91d8-0d6513a67280", "old_session_id": "8288388c-412a-464c-a4f3-78eadd305ccc" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:51" }, { "isJwt": false, "opbrowserState": "d0692adf-b80c-4f1c-8ac7-df700f5b8b5c", "deletable": true, "dn": "jansId=2f35683b-354c-486f-885c-36b649730637,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:51", "creationDate": "2022-11-24T09:22:51", "ttl": 0, "sessionState": "45231872eb055a61505a844de1bee7478877c0f383ca5cef503077830a371157.d07fc8ad-4eb7-4f15-8e3b-53e98e826c80", "lastUsedAt": "2022-11-24T09:22:51", "permissionGrantedMap": { "permissionGranted": { "1b7b3ce4-cdc8-47c3-967c-0f4168751079": true } }, "outsideSid": "4c181536-3c6e-430a-92db-3f66a6adf651", "id": "2f35683b-354c-486f-885c-36b649730637", "state": "authenticated", "sessionAttributes": { "opbs": "d0692adf-b80c-4f1c-8ac7-df700f5b8b5c", "response_type": "code", "session_id": "2f35683b-354c-486f-885c-36b649730637", "client_id": "1b7b3ce4-cdc8-47c3-967c-0f4168751079", "response_mode": "fragment.jwt", "sid": "4c181536-3c6e-430a-92db-3f66a6adf651", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "27777897-f655-4fa5-a3df-e4cf17ede971", "old_session_id": "1a83ca7c-5ae8-4d85-b5c9-92d101328855" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:51" }, { "isJwt": false, "opbrowserState": "49727756-d633-4b1c-9c2e-909f390f9ba9", "deletable": true, "dn": "jansId=27bd63d8-222c-461f-930b-60254e86ba33,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:51", "creationDate": "2022-11-24T09:22:50", "ttl": 0, "sessionState": "eda13f5d84eb13f62296c5cc9a999516e88cb296e1aa5916fa07803ae3524cdb.ccbd0caf-954d-4e14-83bd-10a7d24ba5e8", "lastUsedAt": "2022-11-24T09:22:51", "permissionGrantedMap": { "permissionGranted": { "58aea3c4-504d-45af-aca4-1e7aef7572e5": true } }, "outsideSid": "5afe7e96-450d-4287-8a27-2f23af2b63da", "id": "27bd63d8-222c-461f-930b-60254e86ba33", "state": "authenticated", "sessionAttributes": { "opbs": "49727756-d633-4b1c-9c2e-909f390f9ba9", "response_type": "code id_token", "session_id": "27bd63d8-222c-461f-930b-60254e86ba33", "nonce": "7e47bec9-591b-4622-830a-a860bdd4f039", "client_id": "58aea3c4-504d-45af-aca4-1e7aef7572e5", "response_mode": "fragment.jwt", "sid": "5afe7e96-450d-4287-8a27-2f23af2b63da", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "cc22fd10-bb5b-414c-b775-417298c59257", "old_session_id": "d6bbd9d8-638d-43a3-b681-702dc2d0923e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:50" }, { "isJwt": false, "opbrowserState": "3c3c9de4-3460-42bc-8cec-50b52c546668", "deletable": true, "dn": "jansId=615850af-81b0-448b-9eaa-2009ee52d516,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:50", "creationDate": "2022-11-24T09:22:49", "ttl": 0, "sessionState": "e44509aa34998b5fe81694d1b988eaf8010d231c330ddf211e2a878de95e13df.7395b2df-500b-4e73-8b52-608af861e7f2", "lastUsedAt": "2022-11-24T09:22:50", "permissionGrantedMap": { "permissionGranted": { "834ad423-9526-4c09-b5e2-304d9c05f49e": true } }, "outsideSid": "5282164d-eb8c-4b50-ba5e-5a9f13060f19", "id": "615850af-81b0-448b-9eaa-2009ee52d516", "state": "authenticated", "sessionAttributes": { "opbs": "3c3c9de4-3460-42bc-8cec-50b52c546668", "response_type": "code token", "session_id": "615850af-81b0-448b-9eaa-2009ee52d516", "client_id": "834ad423-9526-4c09-b5e2-304d9c05f49e", "response_mode": "fragment.jwt", "sid": "5282164d-eb8c-4b50-ba5e-5a9f13060f19", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ea2e2516-611a-455e-9a20-35c71460d9df", "old_session_id": "a9c2871b-9992-448a-a3e0-668be74909c3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:49" }, { "isJwt": false, "opbrowserState": "7de70efc-6009-48ec-b1e4-0aab35134346", "deletable": true, "dn": "jansId=4adeee2d-35f8-4442-9472-3d864cea895f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:49", "creationDate": "2022-11-24T09:22:49", "ttl": 0, "sessionState": "98536b8647d16899976a846cca095d88520776b5f3ab67c04d1d51cb71d23879.d9efa4a5-0cd1-4f0c-9d39-d1e09afe75e3", "lastUsedAt": "2022-11-24T09:22:50", "permissionGrantedMap": { "permissionGranted": { "09f520c8-c11e-4d8d-a176-7dd8f2aad2ec": true } }, "outsideSid": "6d7f3935-e7d2-44ab-86d2-f64b589e7d2e", "id": "4adeee2d-35f8-4442-9472-3d864cea895f", "state": "authenticated", "sessionAttributes": { "opbs": "7de70efc-6009-48ec-b1e4-0aab35134346", "response_type": "code id_token", "session_id": "4adeee2d-35f8-4442-9472-3d864cea895f", "nonce": "3c846938-4fd4-481d-a895-494e675379aa", "client_id": "09f520c8-c11e-4d8d-a176-7dd8f2aad2ec", "response_mode": "fragment.jwt", "sid": "6d7f3935-e7d2-44ab-86d2-f64b589e7d2e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b5543984-7604-475f-94ed-0223980e327e", "old_session_id": "5fca0d6c-d3fc-47d6-8ef1-cc15c392244e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:49" }, { "isJwt": false, "opbrowserState": "a5225d78-4dc3-42d8-91ef-3a1e55c8aa7f", "deletable": true, "dn": "jansId=0ebd8c8e-7840-4855-a3d9-4f68a0a7a57f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:49", "creationDate": "2022-11-24T09:22:48", "ttl": 0, "sessionState": "279701e2b407b784921b2065e1caf35bafc33ab6a228fa43be2e1e223f5a78e8.23d71e8c-48f2-4734-a7bc-4273e70876cc", "lastUsedAt": "2022-11-24T09:22:49", "permissionGrantedMap": { "permissionGranted": { "3efb5265-f53f-40aa-b47b-35dd661edb52": true } }, "outsideSid": "a7301eb1-e9dc-4fdb-8590-aa8e096f0966", "id": "0ebd8c8e-7840-4855-a3d9-4f68a0a7a57f", "state": "authenticated", "sessionAttributes": { "opbs": "a5225d78-4dc3-42d8-91ef-3a1e55c8aa7f", "response_type": "code id_token token", "session_id": "0ebd8c8e-7840-4855-a3d9-4f68a0a7a57f", "nonce": "f44140b2-b544-46e6-9190-3679e38b37b1", "client_id": "3efb5265-f53f-40aa-b47b-35dd661edb52", "response_mode": "fragment.jwt", "sid": "a7301eb1-e9dc-4fdb-8590-aa8e096f0966", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f3d6e344-e2cc-4609-8aaa-221d9d717301", "old_session_id": "f55d61a3-3f5f-4997-982a-2b3a66268939" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:48" }, { "isJwt": false, "opbrowserState": "93598a03-9603-4311-bdad-369ef5d95837", "deletable": true, "dn": "jansId=0afa1e86-16c4-48fd-a7b2-c1657a28b895,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:49", "creationDate": "2022-11-24T09:22:47", "ttl": 0, "sessionState": "9942f5716021831565172065b51a04632f8b74ef1df578f2c706cba45ad75535.091686e2-cee4-4b6b-a924-e061f3ab7f78", "lastUsedAt": "2022-11-24T09:22:49", "permissionGrantedMap": { "permissionGranted": { "e64bde4c-721d-4c21-a1d0-ae839727251c": true } }, "outsideSid": "0857c430-fc5d-47f6-86ac-2a89f8c6ac7e", "id": "0afa1e86-16c4-48fd-a7b2-c1657a28b895", "state": "authenticated", "sessionAttributes": { "opbs": "93598a03-9603-4311-bdad-369ef5d95837", "response_type": "code token", "session_id": "0afa1e86-16c4-48fd-a7b2-c1657a28b895", "client_id": "e64bde4c-721d-4c21-a1d0-ae839727251c", "response_mode": "fragment.jwt", "sid": "0857c430-fc5d-47f6-86ac-2a89f8c6ac7e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f0d97ee4-631d-4ff7-a329-a10ac39c04b9", "old_session_id": "e49b057e-ee60-40b0-b19b-0e5480e57773" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:47" }, { "isJwt": false, "opbrowserState": "1596c649-e607-4999-a897-bd6c2a88fc5a", "deletable": true, "dn": "jansId=9c6abe94-56a9-4bfb-bc73-adef6775329f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:48", "creationDate": "2022-11-24T09:22:47", "ttl": 0, "sessionState": "1b8ad870a59e8065d4894aa43442bd448fd8e26eba57906b81e53c43689e7227.79a42e63-fa96-4016-959b-3ea94097c6a0", "lastUsedAt": "2022-11-24T09:22:48", "permissionGrantedMap": { "permissionGranted": { "cc233ed8-1e87-45fb-a2a2-8976190d3d88": true } }, "outsideSid": "8b1de001-592a-4e8c-b4f8-8258d6c5762b", "id": "9c6abe94-56a9-4bfb-bc73-adef6775329f", "state": "authenticated", "sessionAttributes": { "opbs": "1596c649-e607-4999-a897-bd6c2a88fc5a", "response_type": "code id_token", "session_id": "9c6abe94-56a9-4bfb-bc73-adef6775329f", "nonce": "0d3bba07-dc1f-474a-864f-52c238f4fec3", "client_id": "cc233ed8-1e87-45fb-a2a2-8976190d3d88", "response_mode": "fragment.jwt", "sid": "8b1de001-592a-4e8c-b4f8-8258d6c5762b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4f69f370-671a-4ec9-82c7-d07e0eb9dfcb", "old_session_id": "043660ab-1e2d-4f94-9125-a0339db80409" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:47" }, { "isJwt": false, "opbrowserState": "644088a1-67a9-4bfd-a849-b57ef215dafb", "deletable": true, "dn": "jansId=00ad3b97-68a1-4350-a84f-2bd697075042,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:48", "creationDate": "2022-11-24T09:22:47", "ttl": 0, "sessionState": "16ab1abd0624198ff8226deb935a0902f5cf720a2fde77fc1bbd059d49807e7a.a37e5eeb-6426-47d8-81a4-b2b440b0308a", "lastUsedAt": "2022-11-24T09:22:48", "permissionGrantedMap": { "permissionGranted": { "40f107e5-58fe-4956-aa91-6649935b4602": true } }, "outsideSid": "d0e52268-5ccf-48ae-a04d-86c73f617c99", "id": "00ad3b97-68a1-4350-a84f-2bd697075042", "state": "authenticated", "sessionAttributes": { "opbs": "644088a1-67a9-4bfd-a849-b57ef215dafb", "response_type": "code id_token token", "session_id": "00ad3b97-68a1-4350-a84f-2bd697075042", "nonce": "5c28e8c7-3db1-4694-9e53-a443e5d5e841", "client_id": "40f107e5-58fe-4956-aa91-6649935b4602", "response_mode": "fragment.jwt", "sid": "d0e52268-5ccf-48ae-a04d-86c73f617c99", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ecdc57c4-b9bd-4091-8e16-0327f6be2c14", "old_session_id": "a5b7e39d-5986-4a9a-b1a5-de28c90ac7b7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:47" }, { "isJwt": false, "opbrowserState": "d094ec14-cc70-4432-ab36-58618d0074f1", "deletable": true, "dn": "jansId=32beff66-74d7-4d47-8c83-839032f1dea9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:47", "creationDate": "2022-11-24T09:22:47", "ttl": 0, "sessionState": "93e0da963173cb271fbfe81736065751301c4d5c95e4b1a1a805848492de99ae.2310551d-17e9-457f-9de9-9bf19589c989", "lastUsedAt": "2022-11-24T09:22:48", "permissionGrantedMap": { "permissionGranted": { "2212d396-3cc1-465b-8543-081c2e279c79": true } }, "outsideSid": "b4caca36-da36-4acb-9432-a613f98b5ef5", "id": "32beff66-74d7-4d47-8c83-839032f1dea9", "state": "authenticated", "sessionAttributes": { "opbs": "d094ec14-cc70-4432-ab36-58618d0074f1", "response_type": "code", "session_id": "32beff66-74d7-4d47-8c83-839032f1dea9", "client_id": "2212d396-3cc1-465b-8543-081c2e279c79", "response_mode": "fragment.jwt", "sid": "b4caca36-da36-4acb-9432-a613f98b5ef5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a540d925-c271-499c-98a2-4907db636407", "old_session_id": "422ae4a4-9e48-470d-9505-c90e409d62db" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:47" }, { "isJwt": false, "opbrowserState": "c9c918df-f24e-41dd-bbe9-b9318af960b3", "deletable": true, "dn": "jansId=0468942e-22ba-413c-8e14-73fe3478e044,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:46", "creationDate": "2022-11-24T09:22:46", "ttl": 0, "sessionState": "626af0a5d7ce3adf57591c0b75d210fb7ce7c2d76813e9c2af42235a14099558.ccd29811-3071-4f04-a5c7-14c02468c5d6", "lastUsedAt": "2022-11-24T09:22:46", "permissionGrantedMap": { "permissionGranted": { "118415f4-8f72-4fb6-858c-cd035ce7c8a7": true } }, "outsideSid": "af076464-53d1-4d4b-879b-7d04c326baad", "id": "0468942e-22ba-413c-8e14-73fe3478e044", "state": "authenticated", "sessionAttributes": { "opbs": "c9c918df-f24e-41dd-bbe9-b9318af960b3", "response_type": "code token", "session_id": "0468942e-22ba-413c-8e14-73fe3478e044", "client_id": "118415f4-8f72-4fb6-858c-cd035ce7c8a7", "response_mode": "fragment.jwt", "sid": "af076464-53d1-4d4b-879b-7d04c326baad", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5bc6b2f1-0d07-4745-a73c-bfebc6233845", "old_session_id": "14f26262-5d46-4c57-97ec-af70eaffd9ca" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:46" }, { "isJwt": false, "opbrowserState": "775d9536-be1a-42ee-995f-483b4cf3bed5", "deletable": true, "dn": "jansId=4f8c7e5b-2b66-495b-a16b-d29fd0289293,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:46", "creationDate": "2022-11-24T09:22:46", "ttl": 0, "sessionState": "4f26a72c46e4de0a0cd87c85f3946606131bebcdda8caacfe6aee34017775934.7c28b228-c45c-4c0e-ba47-f413409a15fc", "lastUsedAt": "2022-11-24T09:22:47", "permissionGrantedMap": { "permissionGranted": { "fa8cb10e-c191-412f-ad24-e65088c981f0": true } }, "outsideSid": "2f96ef2d-9b43-453e-a158-b1685403f4ae", "id": "4f8c7e5b-2b66-495b-a16b-d29fd0289293", "state": "authenticated", "sessionAttributes": { "opbs": "775d9536-be1a-42ee-995f-483b4cf3bed5", "response_type": "code id_token", "session_id": "4f8c7e5b-2b66-495b-a16b-d29fd0289293", "nonce": "8c4e0260-ffa0-4f49-b39d-35ac83500a60", "client_id": "fa8cb10e-c191-412f-ad24-e65088c981f0", "response_mode": "fragment.jwt", "sid": "2f96ef2d-9b43-453e-a158-b1685403f4ae", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "043433e0-d08d-4d84-9c3a-bbc62ec503cb", "old_session_id": "df6f22c1-1592-47ca-b3af-136da073168c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:46" }, { "isJwt": false, "opbrowserState": "383ee74b-e418-4a8e-b813-b13c85cc47bc", "deletable": true, "dn": "jansId=05fc1ee7-cfc7-4ce7-8e6a-c720795e0eb8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:46", "creationDate": "2022-11-24T09:22:46", "ttl": 0, "sessionState": "78ef4d1d80ae37a70c3b45a8c120a559ef892ce7eb7e5134f74658294d29bcba.2e0d28de-0447-4e33-af99-c44e32ecddd0", "lastUsedAt": "2022-11-24T09:22:46", "permissionGrantedMap": { "permissionGranted": { "3a6e15ce-b949-42d9-ac2a-f1d1c60ca968": true } }, "outsideSid": "a8e70d82-3a32-4e90-bb49-1100b06b10a8", "id": "05fc1ee7-cfc7-4ce7-8e6a-c720795e0eb8", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogImIzZDJkNTIwLWY4ZDItNGM5ZC1hMjNkLWU1MDBjODI2ZmJjYSIsCiAgImNsaWVudF9pZCIgOiAiM2E2ZTE1Y2UtYjk0OS00MmQ5LWFjMmEtZjFkMWM2MGNhOTY4IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZnJhZ21lbnQuand0Igp9.jxRRGaVwWLBwl_5JPjZIIR-jxrz_QkzEexDgtN-vHS-DH11hEMLNkbSI6nJs2lGA8frdaK1X7ROxM7rrfiUh9NUu-y8DjHV_JBWDMeOMQa4_vXArspbFKRK4A4QIR7PNDePUlkmg002iHdCGL4JBFqWNQ8hjEnRBoakiKBvA28OdSNG9il7KC3ibwsB3e3ZFIBTioxfeugoPQ-1FPiUHyf8UfKW-qPRhBHQwYnxqxheYcORgUERyCDl8YkCP5C6WLXCfbWc6nNsbQ3VGu2kIMmTTey2YJnDjH24Jh05ZFCFznnfDB6KofDgo7HtKpkiHbFKBtmDEufhsBPVZYUw9eA", "opbs": "383ee74b-e418-4a8e-b813-b13c85cc47bc", "response_type": "code", "session_id": "05fc1ee7-cfc7-4ce7-8e6a-c720795e0eb8", "client_id": "3a6e15ce-b949-42d9-ac2a-f1d1c60ca968", "response_mode": "fragment.jwt", "sid": "a8e70d82-3a32-4e90-bb49-1100b06b10a8", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b3d2d520-f8d2-4c9d-a23d-e500c826fbca", "old_session_id": "96a6df21-a424-4fa0-a7d8-a942c6f1a3d3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:46" }, { "isJwt": false, "opbrowserState": "5ed185d3-db2e-47d9-b571-9afd4c3b3ff5", "deletable": true, "dn": "jansId=69bb900e-9adb-4a92-b149-f6a405acc8a4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:46", "creationDate": "2022-11-24T09:22:46", "ttl": 0, "sessionState": "af8d704ed4ca8cd75f755232852ace40a7a86a9b45401946727a36c1a0d07e31.3c1ebcf1-618f-4cb2-8b72-e1cbfe9f6233", "lastUsedAt": "2022-11-24T09:22:47", "permissionGrantedMap": { "permissionGranted": { "a4aa9ea9-faac-40d7-a863-2d4e0ed2acc4": true } }, "outsideSid": "50799af0-2a4f-43e2-8c75-f59ee597555b", "id": "69bb900e-9adb-4a92-b149-f6a405acc8a4", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIzMTk1MDI5Yy0wYjY3LTQ1OWMtODg1YS01MTJkMDg3NWRlZWYiLAogICJub25jZSIgOiAiZTUyNTA5OWUtMDAwOC00OWJiLWJlYTUtNmRmYjhhOGU5MGViIiwKICAiY2xpZW50X2lkIiA6ICJhNGFhOWVhOS1mYWFjLTQwZDctYTg2My0yZDRlMGVkMmFjYzQiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.nj9iI-0CDxnb4-dT2aWATpSokoLEQQHfrn2Qyv9SCnuusiQXgfBoqYkHaDY1I_VWjBkYBwMUTkLGgeyE_tcBMuA_hmLHeDw963RwC597Y0jHXFQ12IwZYamJ3klJFpABfTEVxIOp0crcOvXC2BNEdYgW4v1G7eWLZpiv-SgSOxWDIz1jLllF53FjJok1CtvJr-ql6uTS8AzE3ECTZg3dkEIeRrrdBQyJhckNtvpZWGWGYvaXCS0kmq-StRJcmsuvHdJVswv3D3ZH7PSBS3953YqcK7PFeP82LyB6oeOtwcPsw-rbk3G4SpoiDKndGRM62sl848Hmgg5UouhsVlC2Dw", "opbs": "5ed185d3-db2e-47d9-b571-9afd4c3b3ff5", "response_type": "code id_token token", "session_id": "69bb900e-9adb-4a92-b149-f6a405acc8a4", "nonce": "e525099e-0008-49bb-bea5-6dfb8a8e90eb", "client_id": "a4aa9ea9-faac-40d7-a863-2d4e0ed2acc4", "response_mode": "fragment.jwt", "sid": "50799af0-2a4f-43e2-8c75-f59ee597555b", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3195029c-0b67-459c-885a-512d0875deef", "old_session_id": "703bf25a-d7db-4587-814e-3a1d86b37208" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:46" }, { "isJwt": false, "opbrowserState": "fe4386ef-0c6d-4911-b9df-9d994dca5f9e", "deletable": true, "dn": "jansId=9fb85012-c5a8-4ed6-bd2a-165e3dc8f03b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:45", "creationDate": "2022-11-24T09:22:45", "ttl": 0, "sessionState": "54cb6db5e6cf7ff4a16ff8232420585051fb8d98398949f7ad9444b6ee22b533.41593458-14f1-4a55-99f2-48af5003a15c", "lastUsedAt": "2022-11-24T09:22:45", "permissionGrantedMap": { "permissionGranted": { "2a6c3981-8b98-4bd8-9618-a985b6b340c4": true } }, "outsideSid": "312c1ae5-6513-4a84-8ad1-d705e34fa0d8", "id": "9fb85012-c5a8-4ed6-bd2a-165e3dc8f03b", "state": "authenticated", "sessionAttributes": { "opbs": "fe4386ef-0c6d-4911-b9df-9d994dca5f9e", "response_type": "code token", "session_id": "9fb85012-c5a8-4ed6-bd2a-165e3dc8f03b", "client_id": "2a6c3981-8b98-4bd8-9618-a985b6b340c4", "response_mode": "fragment.jwt", "sid": "312c1ae5-6513-4a84-8ad1-d705e34fa0d8", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "08b7c19c-f21e-46bf-9e2c-3b68034f3e28", "old_session_id": "7baebf09-7f3f-49c8-bdc8-41bb23ec9ba4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:45" }, { "isJwt": false, "opbrowserState": "d5540e81-3a33-4381-9cef-3f82c4abef73", "deletable": true, "dn": "jansId=0786a6ca-fe01-48ca-8653-c3ec976578f8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:45", "creationDate": "2022-11-24T09:22:45", "ttl": 0, "sessionState": "1308c1a0254ab5c2d9f95a68cf1f0ba2e25dba0f8239c8ea89ada7226eea70c2.075f68be-c78f-47df-9bbf-e1ad87e37a9e", "lastUsedAt": "2022-11-24T09:22:45", "permissionGrantedMap": { "permissionGranted": { "c71f3ff0-73bb-40f9-87a1-67ede8783149": true } }, "outsideSid": "e9d43d03-07c5-4478-b555-f4e0875af357", "id": "0786a6ca-fe01-48ca-8653-c3ec976578f8", "state": "authenticated", "sessionAttributes": { "opbs": "d5540e81-3a33-4381-9cef-3f82c4abef73", "response_type": "code id_token", "session_id": "0786a6ca-fe01-48ca-8653-c3ec976578f8", "nonce": "d8ac00fb-93df-4b08-bed7-a39da9126fc5", "client_id": "c71f3ff0-73bb-40f9-87a1-67ede8783149", "response_mode": "fragment.jwt", "sid": "e9d43d03-07c5-4478-b555-f4e0875af357", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "15e85b3d-6477-4f5b-b68c-41d53dbcfc94", "old_session_id": "95545e45-242b-4c9f-935a-f858c08312e8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:45" }, { "isJwt": false, "opbrowserState": "2213b36d-84b4-4907-894f-f99811b05c34", "deletable": true, "dn": "jansId=46b2e0b6-50fb-4812-962a-0712cc847dd6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:45", "creationDate": "2022-11-24T09:22:44", "ttl": 0, "sessionState": "d51279e170a9316ce5859b62fea8a1b047869f995c7e2d7cb177b137ba79c231.a200d90f-1689-4008-b8fc-2d2b927e17cf", "lastUsedAt": "2022-11-24T09:22:45", "permissionGrantedMap": { "permissionGranted": { "ad6fe069-42fe-45b6-a0ac-17efd9b6dea5": true } }, "outsideSid": "a64d0a31-b6cd-4adb-aa67-3ab2ba25c636", "id": "46b2e0b6-50fb-4812-962a-0712cc847dd6", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogImE5NzViNGUwLTZmZmUtNGMyNS05YTY3LWQ5YjkyZjUyMWRmYSIsCiAgImNsaWVudF9pZCIgOiAiYWQ2ZmUwNjktNDJmZS00NWI2LWEwYWMtMTdlZmQ5YjZkZWE1IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZnJhZ21lbnQuand0Igp9.UlXpeFL4QnW5ss1SEa4XtM1O89ASovS7frxXyWzzr0E-qPIDeo7WA678TpX2amiymE78yXLMmvxr0OWTKcUM3Dqwrx_bsBAVOmraN0cdNP1OKzUVnYow5Y_zk7Vs3O5-SHYiMgN4dNEC7SfDCK1Uwy4kycDvFLGHJxDd1yx8lDqK5W3cYzIwGPpt9RNGw-a2UliOnhHHzPoyiGvVw1jWAYK8OMAgszJPynodFjcfIimDi-zytn152v8Rg5pTJTYkiATMLO6BGsi0MrF7ULRgO8RThYtBhWRNx6AODQ1ndzBJ5HjEfVU9v6PZORXjRAZiP-3ECMEh-bvVDlb5hdBr3g", "opbs": "2213b36d-84b4-4907-894f-f99811b05c34", "response_type": "code", "session_id": "46b2e0b6-50fb-4812-962a-0712cc847dd6", "client_id": "ad6fe069-42fe-45b6-a0ac-17efd9b6dea5", "response_mode": "fragment.jwt", "sid": "a64d0a31-b6cd-4adb-aa67-3ab2ba25c636", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a975b4e0-6ffe-4c25-9a67-d9b92f521dfa", "old_session_id": "c218b6a4-18dc-493d-adc2-ead7c7327a73" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:44" }, { "isJwt": false, "opbrowserState": "a41ef88d-8e61-4cee-91ce-923a84ac0b81", "deletable": true, "dn": "jansId=7baac122-3ba8-4dbe-8405-13f97560adae,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:44", "creationDate": "2022-11-24T09:22:44", "ttl": 0, "sessionState": "f0678089d4445215e41d95ecf480d1075f62a94244684e5e5e0bacd26411d03d.1477eee8-ad61-4cd5-9797-9d31e8b09eb6", "lastUsedAt": "2022-11-24T09:22:45", "permissionGrantedMap": { "permissionGranted": { "83b99773-9981-418b-822e-ad76193d24a2": true } }, "outsideSid": "f445abfb-6d04-4ad2-ba4b-48430de1b2a2", "id": "7baac122-3ba8-4dbe-8405-13f97560adae", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJkNGUyY2FjNy00NzAyLTRlMDQtYWE1MC0zODgwMTY0ODY1NmIiLAogICJub25jZSIgOiAiYTQzZDU0MDEtZDc1ZS00NDE2LTkxMDYtZTRkZjI3ODRlZWQ2IiwKICAiY2xpZW50X2lkIiA6ICI4M2I5OTc3My05OTgxLTQxOGItODIyZS1hZDc2MTkzZDI0YTIiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.h4qofHasRqeNaT-eV6_HaeW7OVsr8pD0OF6ue2n5gcIqNeAFXGPhQr_1WqztbykIkNcvurSvdS0icMs7kIugkI5oq8b6RcWohNOFBlE0KNQH95rbQZhOnSJvv0Vp0BejOv9KtyhMl3xkokucGAC4m7QQuwY6fEOPavtvebOxgpSxHxjhcgMAvN0HyOy4j2f1_ztGyaYDBl8MevxIPlFhgNh7MlojWYX9eKEACVO9flAS1CE_6dSie7DqQ_yc2dccVZrr2GAaqOerTVr433ry6_LYWwWNh238BIsvGLiU0n0A5T1_rCvPISjdsMHiFSrZ9N-k6B8dCY5Sag2puUJxrg", "opbs": "a41ef88d-8e61-4cee-91ce-923a84ac0b81", "response_type": "code id_token token", "session_id": "7baac122-3ba8-4dbe-8405-13f97560adae", "nonce": "a43d5401-d75e-4416-9106-e4df2784eed6", "client_id": "83b99773-9981-418b-822e-ad76193d24a2", "response_mode": "fragment.jwt", "sid": "f445abfb-6d04-4ad2-ba4b-48430de1b2a2", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d4e2cac7-4702-4e04-aa50-38801648656b", "old_session_id": "90129a51-94b0-4a93-b54d-5aa39922d84c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:44" }, { "isJwt": false, "opbrowserState": "0f662946-f019-49f4-9c06-6a8838e5d6b6", "deletable": true, "dn": "jansId=15f5f5ae-4997-4c70-8711-b7cbfc7f8d09,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:44", "creationDate": "2022-11-24T09:22:44", "ttl": 0, "sessionState": "eb78d9fb58c70253d301ac521072d8ef5de2f52b0b3fa8d77e52d2518b11e625.74c01fae-7427-4689-8ab3-55dbe15f9425", "lastUsedAt": "2022-11-24T09:22:44", "permissionGrantedMap": { "permissionGranted": { "2d4df044-6eff-4316-8f1f-71d0cefb21fc": true } }, "outsideSid": "a6092bbf-8572-4594-af83-1b21bffba960", "id": "15f5f5ae-4997-4c70-8711-b7cbfc7f8d09", "state": "authenticated", "sessionAttributes": { "opbs": "0f662946-f019-49f4-9c06-6a8838e5d6b6", "response_type": "code token", "session_id": "15f5f5ae-4997-4c70-8711-b7cbfc7f8d09", "client_id": "2d4df044-6eff-4316-8f1f-71d0cefb21fc", "response_mode": "fragment.jwt", "sid": "a6092bbf-8572-4594-af83-1b21bffba960", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d70bfc10-af29-4a98-bf00-6d5a5177007e", "old_session_id": "8c3c1f02-6f58-43a1-961e-64dc9fc1f115" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:44" }, { "isJwt": false, "opbrowserState": "8294378e-c0d0-47d4-abb4-b81d474f415b", "deletable": true, "dn": "jansId=45684d26-9d0c-4748-93bd-ef5c3ff3face,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:44", "creationDate": "2022-11-24T09:22:43", "ttl": 0, "sessionState": "489b59b63eb0fdb564720fb1002c5736d790f35c4ee1fc36dc3683fba0ce4a84.2da3ac39-c3c3-46ca-80fe-c8f5a15429e0", "lastUsedAt": "2022-11-24T09:22:44", "permissionGrantedMap": { "permissionGranted": { "616724cb-4fe2-4f8c-94d1-c5a523822b33": true } }, "outsideSid": "0d61f0d8-177c-4c9a-9d64-370f28e1aefb", "id": "45684d26-9d0c-4748-93bd-ef5c3ff3face", "state": "authenticated", "sessionAttributes": { "opbs": "8294378e-c0d0-47d4-abb4-b81d474f415b", "response_type": "code id_token", "session_id": "45684d26-9d0c-4748-93bd-ef5c3ff3face", "nonce": "43aa4c21-3e04-445c-ab57-f5548818ac7e", "client_id": "616724cb-4fe2-4f8c-94d1-c5a523822b33", "response_mode": "fragment.jwt", "sid": "0d61f0d8-177c-4c9a-9d64-370f28e1aefb", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b067390d-b7c4-4acf-8923-99b6d44327e2", "old_session_id": "f8d6c0f9-9158-4c29-98fb-33bab7a29cc1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:43" }, { "isJwt": false, "opbrowserState": "58029625-eead-4751-a7c3-b51616696849", "deletable": true, "dn": "jansId=79c00e5d-8394-438c-aedb-b8931f0765c7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:43", "creationDate": "2022-11-24T09:22:43", "ttl": 0, "sessionState": "47070079650aaf31ed53ea2dc34c864b07741f33d754285a298fa4abc959a802.3fbb5b98-1c34-484a-8ef4-3a00dfe11648", "lastUsedAt": "2022-11-24T09:22:43", "permissionGrantedMap": { "permissionGranted": { "dcb1c1ea-9108-4241-bdb9-040c6992237d": true } }, "outsideSid": "d85848c1-3581-4cd8-8253-83b7a440f632", "id": "79c00e5d-8394-438c-aedb-b8931f0765c7", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogImVjZDNhNDNkLWNlMjgtNDc5Ni1hOTRjLTk4NmJiMjNmNmEwOSIsCiAgImNsaWVudF9pZCIgOiAiZGNiMWMxZWEtOTEwOC00MjQxLWJkYjktMDQwYzY5OTIyMzdkIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZnJhZ21lbnQuand0Igp9.Ha2r0VgHZleWSKz-kUJiX8sUTcJzQZhwN0Jlq_iy66nhlBu_PAFomKRzRV8xN5unPp9jo2PbkCy5rbu-fF7kPNX2Fjfv7nPeN48r_gPXRnfu4WIT9Llkab_FDolCa8lcbzPhP3Gmft4KtVv9TpePsT1j9ncOL_yZHg9DcL0O7JfxSHWea7Oc1CC8VjhjJr5sFeC4hZfAtq-jra0yG-ZYiO_SuAe-2QmpxcZ0dhfy5RVNbkPX-l62nGVvyS9OeKD5AHKYGVojTdg5krPx3bfzpy2GtF5rA2RgiE50fl3j8WyNtwQQy5oOOqVSyWk-Du0CF87opfrMTVbcDiSBDqfeVQ", "opbs": "58029625-eead-4751-a7c3-b51616696849", "response_type": "code", "session_id": "79c00e5d-8394-438c-aedb-b8931f0765c7", "client_id": "dcb1c1ea-9108-4241-bdb9-040c6992237d", "response_mode": "fragment.jwt", "sid": "d85848c1-3581-4cd8-8253-83b7a440f632", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ecd3a43d-ce28-4796-a94c-986bb23f6a09", "old_session_id": "71914155-da39-4493-8d30-81522faee935" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:43" }, { "isJwt": false, "opbrowserState": "22a9550e-d3b0-4095-a106-02d1a26a0cfb", "deletable": true, "dn": "jansId=10269b8f-335b-4695-a233-314511d9eefd,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:43", "creationDate": "2022-11-24T09:22:42", "ttl": 0, "sessionState": "21da1833d474040124b7ac5ce90f69f4eca30c70369841c65f94e3f6d3ddc561.330ca449-3fb6-46bd-95f0-f012259f38b7", "lastUsedAt": "2022-11-24T09:22:43", "permissionGrantedMap": { "permissionGranted": { "46cdca19-dc12-4001-bc15-1712ee8581fa": true } }, "outsideSid": "40c436b8-636d-4278-bd51-6e960bd473d1", "id": "10269b8f-335b-4695-a233-314511d9eefd", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiI0Y2E3NjMyMi1mY2ZkLTQyNWQtOTc0ZS0zMjBlNTZmM2U2YjFfZW5jX3JzYS1vYWVwIiwidHlwIjoiand0IiwiZW5jIjoiQTI1NkdDTSIsImFsZyI6IlJTQS1PQUVQIn0.Gvwkad033UxKNxIzpjSD0jAmd1H9xTu0Fq4v1JBzfGVN-HH1Klgbmx5xJpyBJl80XPBsW7Q2w7HhgziNQKQtGvlRKbDlf2QYePVsVUKYMJQziCRVvOnMbnEAHhp8d9yz2L0aSALtFwywOWp5tXiwZ7BRG9VBPNcOXt4azUWEp3R3GHHa9VwEl2c6ECL-1mzjNcBDrgEItcAjflshS9A_d8EDZmVVD0SdLU8tqAkiFwygw4If3G06Ei_AqBXPHrHdyOvKl-LhfTIeKdRcGQhpcgx3LwexfU84A6Vaqo888Y4G5j2E281fuWNeG9ChRCWiswrx_ZkhfXuazD9QZU6uOw.81zzcB3v29cn77Jl.0M1eAU0ZGQA6G9Wqzj6PKCLNyZfPi1cV1JUkLrQje3K4BEYVTat8P8o2jWpMEBaknh_naxbhMXfd53D2KalByypayy5fU7kvdB_orWN9lWc3iwC2ZEkeLV-dMSN8HKNG-aidWmXsVrnQvTO8dO2bvtZ20hE3okUTxA0iA67lwlcxlXaqZpFjh19DSDIw3RscVbwBRESG-jYz2X3vpVN8jCaEqavMLMdn_FzmESR9bT7N5aFAyn5eMXX63YAdMAVh1HrUb_vopHbkYs72mkzFs_QDStfuqW6Zm5yTIOQtx-kIveg5Jm8TPHfrV1g1NtPQjgmSDWCnZNba6V8FCCe3DGxdon1dA6VQJy4gnlUSgyBuQSIQSkv6f1mKcQS8NkwLVuOFBZjD5sCNqwBKY38yvHu1bWACIIcakgju0vp7RgtrGRZ1A1xVMUDUH1lHHIjRgZShuCtUNL8gUUNp7rjiYmw5VbznGZWFAY_Q5YpHG0pr6eilUwZIys25-8bhDgKo7P72MZU8RuBHDZ1pwYPRpTE8Br6Kyu-kIpXlKMAN1IFJAMZpOKccr3wPgvXX0q-Cu8JKwZUKLtw1uNrIu_zP9Tc9Zm35GYmxr-4lmKTXDg9bmJHeo1S67tQjW3TD5z_xWdxAIvpnJVhcdceWAppYEXUCNZytDQsNXjH2PS_QqlV_pIDnNHjhgU9O66_VdcEjCnuq1JD_6hMwqW53Je7GbySNKekUmflZuRFnF_dyq-Jzn3nMSmSihYCI82EzsHrvQHIxPCA8TMHDz9BpUj5EuNHT6QwWJw3Y3gyyStdRDkdiGJ87NO8dj502bskThWsuckMQXRuQnroVDVb7JkD9vhJxw9DG1nLRj43Tg4WkRbPDlJ9pUxw0Bh_vENPhoSr_5Q4Ypum_LkzkcW0F298.ikP2p84IZuCh5g_ooGPkEg", "opbs": "22a9550e-d3b0-4095-a106-02d1a26a0cfb", "response_type": "code token", "session_id": "10269b8f-335b-4695-a233-314511d9eefd", "nonce": "adeb576d-699c-4643-bbbb-854b173eec55", "client_id": "46cdca19-dc12-4001-bc15-1712ee8581fa", "response_mode": "fragment.jwt", "sid": "40c436b8-636d-4278-bd51-6e960bd473d1", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6321e1be-1dae-4c82-92ce-a95c566fbec5", "old_session_id": "38abeb9f-2d6d-4341-8a0d-af78bbbdcd8b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:42" }, { "isJwt": false, "opbrowserState": "0aefde7c-3c6d-4409-85e0-27aae4eba868", "deletable": true, "dn": "jansId=0374ab20-d8df-47e8-a12e-84bda556ac71,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:42", "creationDate": "2022-11-24T09:22:41", "ttl": 0, "sessionState": "b1a9404d424699041147709f6e69b8cb07cf740f486f20ecd5816941b3966684.7bdf8cca-46f6-4673-9a1c-fdd0af3166c7", "lastUsedAt": "2022-11-24T09:22:42", "permissionGrantedMap": { "permissionGranted": { "43d1e522-788e-48c9-b98a-e4d380ef7263": true } }, "outsideSid": "2d29ef3b-add7-41f4-9345-8df28f78bab1", "id": "0374ab20-d8df-47e8-a12e-84bda556ac71", "state": "authenticated", "sessionAttributes": { "opbs": "0aefde7c-3c6d-4409-85e0-27aae4eba868", "response_type": "code id_token", "session_id": "0374ab20-d8df-47e8-a12e-84bda556ac71", "nonce": "f54f39ba-e196-489d-8123-5c8be8923900", "client_id": "43d1e522-788e-48c9-b98a-e4d380ef7263", "response_mode": "fragment.jwt", "sid": "2d29ef3b-add7-41f4-9345-8df28f78bab1", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "058dba12-f959-4589-be09-467659be028d", "old_session_id": "b8391b2e-d4e5-4f82-af07-752c3d3d02ec" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:41" }, { "isJwt": false, "opbrowserState": "6fe4f573-0e7f-40ce-8b4f-b9b936a81c55", "deletable": true, "dn": "jansId=467312d9-bcff-40b1-8f54-0d737858444c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:41", "creationDate": "2022-11-24T09:22:40", "ttl": 0, "sessionState": "c227a52b219b74c0f5110eeedc0b7ef8209aab27077c675fe7012c6cff959193.4820d59a-38f2-42b0-86ad-797c0270d9e3", "lastUsedAt": "2022-11-24T09:22:41", "permissionGrantedMap": { "permissionGranted": { "b22be56b-1dff-4cf8-9510-b1b01ff57f44": true } }, "outsideSid": "23bbf94e-741d-4a91-9911-e15228513bb0", "id": "467312d9-bcff-40b1-8f54-0d737858444c", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkEyNTZDQkMrSFM1MTIiLCJhbGciOiJSU0ExXzUifQ.BAptL7P3_pKvkLtcEp2D5DnEy6XfXF4CCUq-wC-HAeXsZMojg5UncgSmEaBQJY_3G_E8o9iVbFtP9hj1kjWSXQBJBlv9bXByDnNyWJGEZK5XbVSkOUF-Hm7veggnI6I5vwTjqon79-K3ikWgkGTH2WE8g7k0NqgsEroaD-S123TZ6ws8BdpL50M7j4G9qRz9oSGfjrTLHzfGtzLX4BZHMJEZZWyws23MVXFWVhl6C3vzFzRrrwAh0DA3RK7ru-alp_0Fy7NsvjDz_8cqRaEqBl1S28i88ibZ1svXIt47oOncb24aU9ra1dzWa66UdTEdxlsj-v2V3s7Rd8TbKWD2iw.vsrVX3ma-4wS7WtkHEyZYQ.3LT4LVp11r_GoH2halEGi21TeEDQI-xMT3-XaIWr0mEaP89oyGNo6wzARNYZsR5YtSXRjpk82M0WomrELrz8F5yjr10DJRbCHqIwtT957ev7cVtX0qZbHveMP1bjvkprnPUa18yp3pWIMN61Psp6NkKF7aNchmtvrynuG4TEyIEcQw_spXKEku1kcjlxr5AHBEI1XIh4sq3Rpyv0I39EHgpcTv5tMC8IXf1Bd323go4GJ_OLMqy22tNxcfs8DveAk8FIBoYIj1jY2DEhR_cw7Hhc26qaBkaf_MLZMg6LG_GLcRRkvhviTf2P7WwdIVJ_cHlqicw98Ion7HVTymIAvbkaiGsxwi38rUcAQumy38aQiGqiCcdSEYTc2Y80wI1KUJf4BlFxMMP4QQVW9IJ1K7XBttXt56KPBDVMUYBwlQTWR42BSSX4kJNEwQQtNaafYz-DAshfq04uR5whi_A46aR99GcsdMQdMo6WerICo-ktXjk51hv7h6vVnP_834eetAqvGjz8zPK9ZJTsOHWgyRetY2QQ9t9vv5OGGnztOrglXRdJ8Z5uTmb-BQqU-D7V_nJELb_xylAz3DTZrb4FLHByEMJ2WhKrROMH736K8Pt4mEEUv66fS8Ph9bWwxx2H6oaYzGboawx3lLdz5Uqk3HOKYzBhpThobCOBUtvNX3VumMSpnYBeQEbIHBR-k0VzjzDyLJGPiuvNQ_r-2xbuMe3V87bndxfiFa_Y5mwDDHMjnzRKCz4fkWexuEm1ordaBmKPGXcSTa5XopyUbwSkr4pl0cLF13KlUCzQ1GMTxwSRjtO3P_ELcpJSotnab4kZK4bLpauLHDvBx2cDMbGvdzO7hK7VG6PIANhl6R0g2tSISm3fR76n8ewgpHOcCFrVrfCsylCDhxRKFPDIx0aQVg.i3JFx80KBDUf71dVDXxv2ATv19wUK22y8KA8vgEWnojwKzOnnXnIe6Bgki-WSaTjFPkEDLAkq-hfP_srD81_CQ", "opbs": "6fe4f573-0e7f-40ce-8b4f-b9b936a81c55", "response_type": "code token", "session_id": "467312d9-bcff-40b1-8f54-0d737858444c", "nonce": "532f676a-debb-4d40-84ad-91b7134e6f1d", "client_id": "b22be56b-1dff-4cf8-9510-b1b01ff57f44", "response_mode": "fragment.jwt", "sid": "23bbf94e-741d-4a91-9911-e15228513bb0", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7acf2442-17f9-4c9b-99b6-10131c723970", "old_session_id": "b394cb50-a1ba-4204-8958-1a98a1234c2f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:40" }, { "isJwt": false, "opbrowserState": "8a0a2bf6-692d-4e32-b47c-83e0c2a63a0a", "deletable": true, "dn": "jansId=493f3914-6e93-4893-8620-d6b6f8b8da26,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:40", "creationDate": "2022-11-24T09:22:40", "ttl": 0, "sessionState": "a1e4bd19c76c2cb82b268f6eb47df937867e3bc976e4ad05ed43bb559dfc9436.438ea0bf-c9fa-431d-bdd3-58652490ce51", "lastUsedAt": "2022-11-24T09:22:41", "permissionGrantedMap": { "permissionGranted": { "3fb491b7-b1ee-4e9f-8dbf-7aa6015d0e0b": true } }, "outsideSid": "2e6c23ed-d81c-4c9e-97e6-8904f4f9ecb6", "id": "493f3914-6e93-4893-8620-d6b6f8b8da26", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjUyNzBkYmMzLWI2MWMtNGIxZC1hODkwLWQ1MzExYmVjMzE0OCIsCiAgImNsaWVudF9pZCIgOiAiM2ZiNDkxYjctYjFlZS00ZTlmLThkYmYtN2FhNjAxNWQwZTBiIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZnJhZ21lbnQuand0Igp9.DqJa5hOk9Fv1Xf__vbHyLMUIFeISyfdTAs1obb_bWhSUEr0-yxQFLSkuG4OGbcacfKqFtooXxLQXcLuUDtfja68_ZUzdbHd7VSz8K8bXN1PxIPO9Ajd8Z61cmV3IhwXPGOyNCcHHN5FgwDyM9f2wyJrMKABc_ip4qOWdoSUbEtUd32_BVF96WbTTB4xXFYXM8RrGdmbQJppOp1GnxPmnSxbItAG3fVHFEfELTBDTdPSHea2YazKnzTCnlbl6TIwPqaeibfKy1chbiX6B-EGTFAaPVlmqRdkDSSRuxEW-RrTIIgNnEanNx8L_7bK65MWwvyxsaBrSElpeFYZW5Djsbg", "opbs": "8a0a2bf6-692d-4e32-b47c-83e0c2a63a0a", "response_type": "code", "session_id": "493f3914-6e93-4893-8620-d6b6f8b8da26", "client_id": "3fb491b7-b1ee-4e9f-8dbf-7aa6015d0e0b", "response_mode": "fragment.jwt", "sid": "2e6c23ed-d81c-4c9e-97e6-8904f4f9ecb6", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5270dbc3-b61c-4b1d-a890-d5311bec3148", "old_session_id": "2c483e9d-e885-46c1-9bb8-263c9b26add7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:40" }, { "isJwt": false, "opbrowserState": "f50268dd-f42a-41ed-b3e1-377b10e59bbf", "deletable": true, "dn": "jansId=3ea6c686-7768-433b-a157-72d402dc22c0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:39", "creationDate": "2022-11-24T09:22:39", "ttl": 0, "sessionState": "7d41eb692e2526ba74809a6a3f94bf0a66640a0101775b97d12f3918bb63828b.9c90629b-7478-4cde-89b5-c10ba5436dd4", "lastUsedAt": "2022-11-24T09:22:40", "permissionGrantedMap": { "permissionGranted": { "4a204a33-35dd-44e3-8083-b0ad4ff66a01": true } }, "outsideSid": "e088490a-59dc-4829-ab7d-86c2fc07a902", "id": "3ea6c686-7768-433b-a157-72d402dc22c0", "state": "authenticated", "sessionAttributes": { "opbs": "f50268dd-f42a-41ed-b3e1-377b10e59bbf", "response_type": "code id_token", "session_id": "3ea6c686-7768-433b-a157-72d402dc22c0", "nonce": "ee0c3cd1-19ef-42d6-ab15-08ae836a3ff5", "client_id": "4a204a33-35dd-44e3-8083-b0ad4ff66a01", "response_mode": "fragment.jwt", "sid": "e088490a-59dc-4829-ab7d-86c2fc07a902", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b54f9e74-0e2b-46e7-83ba-858cebfefd26", "old_session_id": "dfdaddd0-390a-47c7-aed1-efd2ba5ce8fa" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:39" }, { "isJwt": false, "opbrowserState": "49425962-4d18-475b-925a-e6d02129dee0", "deletable": true, "dn": "jansId=0a0ae506-60d8-429c-8ec3-06a8914b1f55,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:39", "creationDate": "2022-11-24T09:22:38", "ttl": 0, "sessionState": "60f7141d847d84125846a968f7cb474c9cfced447abd6afef00005adcaab583f.8b705e69-c724-48e8-8350-a138862cd02c", "lastUsedAt": "2022-11-24T09:22:39", "permissionGrantedMap": { "permissionGranted": { "0933c08b-a88d-404f-ad92-1dd3f3693c9a": true } }, "outsideSid": "29f0912b-a307-4dfd-bcd9-0bbc5ec529bc", "id": "0a0ae506-60d8-429c-8ec3-06a8914b1f55", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI5ZjIzNGMzNi03OWQxLTQ2NGItOGM2ZC0wMTg3YjU1ZDU0MzIiLAogICJub25jZSIgOiAiN2VmZTllYjctZGY4YS00MDQ2LTllMDYtZDE0NTEzMWQwYjY0IiwKICAiY2xpZW50X2lkIiA6ICIwOTMzYzA4Yi1hODhkLTQwNGYtYWQ5Mi0xZGQzZjM2OTNjOWEiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.dS05b2RsSI3TLIWcRb7_6Wy013gDcwVArhu3V5SLIjm6d0nb_vQ_5NyfFtXHFVl4qVf7f-pmKIEPacIfMjyGOh7jZd1UM-Pn3S_l9NRt-h-5R3aozsoq35ryKmwQl6l1kZZ1_a_m7l44WeM7oaMd-NPnVKtSMtpijqAOS50BFFH5laYKddlPhf-e0Ia_bg7fCcvsRf7gFkKZlglz0cLBFuTGsxf3UZyuATCLviaqQrHL5c5zHiCw3vBgI04JVfYWLivgtDbjmwwjm-SO06JUV0L3B2hPK_uRsCa4qptV1dIwGBGxJvmXJBDJQphbPdl7O5kvRJreiilTI_G3ulNjdA", "opbs": "49425962-4d18-475b-925a-e6d02129dee0", "response_type": "code id_token token", "session_id": "0a0ae506-60d8-429c-8ec3-06a8914b1f55", "nonce": "7efe9eb7-df8a-4046-9e06-d145131d0b64", "client_id": "0933c08b-a88d-404f-ad92-1dd3f3693c9a", "response_mode": "fragment.jwt", "sid": "29f0912b-a307-4dfd-bcd9-0bbc5ec529bc", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9f234c36-79d1-464b-8c6d-0187b55d5432", "old_session_id": "1fa614ae-7f2a-42ab-9d25-3a043beb2998" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:38" }, { "isJwt": false, "opbrowserState": "811a9df0-da66-4669-898e-796e9a28612b", "deletable": true, "dn": "jansId=5bf9e31c-189d-442b-99ab-29f1bc8cb3dc,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:39", "creationDate": "2022-11-24T09:22:38", "ttl": 0, "sessionState": "3dd30a761d2c70d2cddda32bca49dbc1e49e71d74337143b22a5f2016f4f043f.90897dc3-8680-4439-aa10-f5a0afffd66f", "lastUsedAt": "2022-11-24T09:22:40", "permissionGrantedMap": { "permissionGranted": { "8c7e3e61-ea66-4a72-b0db-1fb561753651": true } }, "outsideSid": "281f475e-579f-447e-b5ed-2b14fdc77e73", "id": "5bf9e31c-189d-442b-99ab-29f1bc8cb3dc", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.yr1cX8WQjz8lo2V7URKXeb-rOl5L5iG0UlUUBrarBVIdzRdmfagUcG1TKAALvVWG1aOCYNAvF1hjy0UfBhyt5ZV2rSGIH2frlbpueJD42CzG-30ajcGYGf6ZiKuS7r-Q1oH504r_FW6vf09Y4T0_Nk2h5Y5u8_LWo99qNeydzm3WCgTjN8NWkJ1pFUtfHFoQH0E4_FAauu35HmEK2Hs4lquTbqgqKtWGXN8fPBEcyXtCWoyKZ4rdV1pGZht5OxNMTu_FMbHnj7TM0btCqfjJKMHtjvNTf-U5q0uP0YjtP-JLgsaH3EEMSpCCwtOMUz2xJrXJLHfvZCiOA5DzfKE0kw.IgC5JC5iyC1RlzJcgYNqyQ.RIgmiTv52hMiDQUc73KIUhcLWCfdTz2iCI1OB0uI-GbcR-STP_03ztiiInQMLxOq-ZIowJy1LJMrp44ycrFxezh63fi4K1ZeGFyKkCPnXb0Rfb7ohzi8d55DqHVIpZVnqVdUmNfrotEgK55rcF3UFixnkVI2cMYDTON5TRfLDxSaRGJEKNyY63UD2JBGtWy8kxugrYJftRfJG7mxpfvA0kmd-q-yRYDL_cJudjnzXHAL_9Qvtiw_yPtIVxh29-DBDNk6oGGhZ0KsJHeQ0L8Qu1NKkWmmfSlux2DbozKi26yeJvboueAxubu52PfWgI9wGoSPA_kR2q6mK5tvo6pcsZMoKw7JWgxoCWrwiwu8LTDYtEKZhtj9G8NDfs7QTZUU1yWrcGYS5Z7mAQ1uXBoWIG5fiSOTzANaCFmgpuz1zQrup06xkXq0B8n_Gj_UsQsDEKN0lM4Bq_rUnHS5Zi7dsu9PPS8Dahxu-0tyMp0h4GEOgVq2iVHqk95k_lAcH4iLJitb0X2WiuKUu8ePxKz8er83BDEBx1iZiJPiB2pdpxUkTyWt50HyRvqIwIOC-e0T76yRiBabGNRG2XVXnb29S2D_iLbzsGLEDnOkh_mEo8CgNNcfSVHB-SplKHPs-48Dx1DJQyTLNrN_hWqVGj7kgmxsgPCkJfgIziiDMyEIpmI3mMx6Xix2SmUPHqxd8-B9-oUoth9ronDrC9vzK4bWVLeZ7oe-VtLN1Tc0tQYZ9S4BPrRhSFToWx3Y50HgktxrwQdECh-GWaDwykA7uxPQQkwDEUO8GlaFHnuTarMmy65PlaJgWUYsoawxBiSyC3whslaDSZwXKchPCnzmXgssXD_qL6svw1ziqEMaVIJMPCcNI-f0ldPlGmXNu6HJ8p9U14L7Pc3OBlps2PC1YmmBwQ.x_Z24D9P2JKizv3htvkzzdBF_jJPZQcHGzmlZWglk8s", "opbs": "811a9df0-da66-4669-898e-796e9a28612b", "response_type": "code token", "session_id": "5bf9e31c-189d-442b-99ab-29f1bc8cb3dc", "nonce": "2ed26a86-74ed-4923-b4fc-deedff9a5281", "client_id": "8c7e3e61-ea66-4a72-b0db-1fb561753651", "response_mode": "fragment.jwt", "sid": "281f475e-579f-447e-b5ed-2b14fdc77e73", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0529680a-6519-45cb-b88f-3b084c125bf6", "old_session_id": "04849e36-6717-4508-b741-191a6780711a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:38" }, { "isJwt": false, "opbrowserState": "4448957b-d8d3-4d89-afea-f7df085b2ade", "deletable": true, "dn": "jansId=94eff12c-7242-4a6a-8195-07a3ac22a9c8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:38", "creationDate": "2022-11-24T09:22:37", "ttl": 0, "sessionState": "305c1052f455e247de6bfbdcb4f2d576826c0f2665be4898959e286175b5dd2e.dc9e0f9e-0608-4736-a4b1-471aba37d2f8", "lastUsedAt": "2022-11-24T09:22:38", "permissionGrantedMap": { "permissionGranted": { "ea6195f4-a5d6-4780-9cba-a76839c1fe81": true } }, "outsideSid": "9c0dc807-4856-487a-b17c-00c39fbdd35b", "id": "94eff12c-7242-4a6a-8195-07a3ac22a9c8", "state": "authenticated", "sessionAttributes": { "opbs": "4448957b-d8d3-4d89-afea-f7df085b2ade", "response_type": "code id_token", "session_id": "94eff12c-7242-4a6a-8195-07a3ac22a9c8", "nonce": "6a8f89b6-236c-427b-9865-0518177e87a0", "client_id": "ea6195f4-a5d6-4780-9cba-a76839c1fe81", "response_mode": "fragment.jwt", "sid": "9c0dc807-4856-487a-b17c-00c39fbdd35b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5ea72345-2896-4286-b491-73166ef5981a", "old_session_id": "09c889bf-e518-49f0-9b97-b2180d624804" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:37" }, { "isJwt": false, "opbrowserState": "fe197cc2-d309-442a-b637-555a9ad4ec03", "deletable": true, "dn": "jansId=93de7306-01f5-4488-af98-a88b3d82b8fd,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:37", "creationDate": "2022-11-24T09:22:36", "ttl": 0, "sessionState": "b8bf0d2ab8595a488b350a06f82335f488eb53e9b138bd37b320eeb5a3f8a376.34d146d0-27b9-40f1-8574-c8bd25b1a2bf", "lastUsedAt": "2022-11-24T09:22:38", "permissionGrantedMap": { "permissionGranted": { "03009651-0968-4564-9be9-37dd1f04d96a": true } }, "outsideSid": "2a754f5f-a2bc-4a28-898e-192f31ebc9b4", "id": "93de7306-01f5-4488-af98-a88b3d82b8fd", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJiNWNjOTJjOC0wZGE4LTRkNDQtYjE5ZC02ZTAxYWNmOTI1Y2UiLAogICJub25jZSIgOiAiMDdiNjIxNzktY2U2OS00YTk2LWI2NmItNWI3NWJhMTVhZjA4IiwKICAiY2xpZW50X2lkIiA6ICIwMzAwOTY1MS0wOTY4LTQ1NjQtOWJlOS0zN2RkMWYwNGQ5NmEiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.qDdRiiJKDkjwNWItR5n-5t8kfBw6iRmrLq5CPrWCqeRufhpXZOY4jK06hSFFN4Y8x00Rx7zYsAV-UoBVZ7tXo6wSw-Bc6XnJ5Lw3ZHt7P-dWV1W0By4ple5uS9hDDTDhAlYxZLLo5QQn5egUavbSuFHHNQBSeTIElKVkXSEzjd9NOhJg-sRf0oUI15PB-3_8yIPmwS5L8StlWXHh_0n-aMHzZa-_D8vr3DRANghXxmDMrolqrBfTjR_FRSBxGejnUctMeBQrd9TybSNL_a_mtYj1e49XG5So_JkApqrRTV3hf-U2ObEAjOaqAYuCklhEEAVPP_ldqkFDwl3DJWaogw", "opbs": "fe197cc2-d309-442a-b637-555a9ad4ec03", "response_type": "code id_token token", "session_id": "93de7306-01f5-4488-af98-a88b3d82b8fd", "nonce": "07b62179-ce69-4a96-b66b-5b75ba15af08", "client_id": "03009651-0968-4564-9be9-37dd1f04d96a", "response_mode": "fragment.jwt", "sid": "2a754f5f-a2bc-4a28-898e-192f31ebc9b4", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b5cc92c8-0da8-4d44-b19d-6e01acf925ce", "old_session_id": "fdb6766f-1bbe-4d2e-bff1-87877d5514ad" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:36" }, { "isJwt": false, "opbrowserState": "8c8343b6-5401-4106-8d1b-5ae5b1d78040", "deletable": true, "dn": "jansId=5b198d33-32f0-482c-bfb3-381fd51de674,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:37", "creationDate": "2022-11-24T09:22:36", "ttl": 0, "sessionState": "f0333de2a58f168a26b4f9a2084f9ca9ad466483f03bb5a389b3e3969d906dde.cb75f595-ee8c-41a9-a193-7820c632685b", "lastUsedAt": "2022-11-24T09:22:37", "permissionGrantedMap": { "permissionGranted": { "3487be04-0ad4-4b2f-8827-30823ffb2f90": true } }, "outsideSid": "5abe3f21-e71f-4fdd-bdfb-e2e2cf82477c", "id": "5b198d33-32f0-482c-bfb3-381fd51de674", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.HL8YgQL9rmM4J256utCJy_xXTaBoRC7nRN-DvM348yqC5dUimoRaQw.ceLDundT6RDx0IXe.83YrE2G_A1hBskT45B3h1aRdHMCH5LIBWsVz0T79hHngFoOtV6AqWUFMdp7xQm2f-r9oaHTeaVK0kEaGcLMoVbvtyCtQjOBdmJjRKuSqKVD3EU-N1W1_A0kDsyYcHhNKg6Y80QjEhYSzPukmLb5F6rRBY9NPgipHz-3Ebbg2HgezK_7Z5q6mnbGJ0PL8JJJeG2iR49NUTnN6KXtjIyxA1-XznaUQ3pV3eDc27VhxKPsjtuh-CArtRkA5NjTITXea1OaGOcYPJS-7gObnntYG3EFTkl00tZfCor8SflWKTwXxiYWv6cxFEm-I-az8O2AB4z9UPwHfTXuOROvHXfedeWJ5H5GZjRJuiMr9x2xH8YhZXUfN3rIoAn5WP7iYz76T8ZDjweYQONhsRkrazw1IMhNXfLi0VWti19cEq180OIk_AEVvOZi8d39VbhkZ9P370l23dR4qJi3YWq7KE4YWPzfIgXgUfU7Z1C4XOLnDRGIqWX2OG_-WEguCAg1VSMRiDq8tikdcbxuYT673N9uApBI23OalQdfiA31gHyR3ydyq_WR7wU28tuXRnr4UrSe4ctPI0gIiwWy57af9-hGtmLVmJhnI4RXmCsNkanhAnoApz-ojpJy92Yl8U6yPXdiYi2yVsEA-XB1D0u2fYIzdeLFsvvt9_6OVnIyUy_1EA2RFg24vW1q91owim1Sq3CXM_oVxxpR91YKq1uyOTJLX4TFRSfu7BoBv-jPH5NMzthpy_z0fr8EsluPdAo_8SZI2OQLaqbt-MoUR4KVhZ0T7nUfB3A0fF330WR8hT1GPXPEf8_AQKabwPzVqIyB_9hGlfLv5M9yBCWg5aOh3cpaDjIGmDDKzjyPrN0FhfccciQdiqPj0qJUFF7Kv5kMBxWIsMeBvs8U5snb2-sO-6J8.e1GEN60LyHpCFWd5pDQEKg", "opbs": "8c8343b6-5401-4106-8d1b-5ae5b1d78040", "response_type": "code token", "session_id": "5b198d33-32f0-482c-bfb3-381fd51de674", "nonce": "031c80ac-545b-4ed9-ad8b-8cc0477a1c34", "client_id": "3487be04-0ad4-4b2f-8827-30823ffb2f90", "response_mode": "fragment.jwt", "sid": "5abe3f21-e71f-4fdd-bdfb-e2e2cf82477c", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7896d66e-fb5c-4634-9caf-6d0b9c66ea2a", "old_session_id": "f3fefc99-252b-4017-ab01-072edea9e72c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:36" }, { "isJwt": false, "opbrowserState": "20a3af35-a04d-47e0-b56e-507b326b6750", "deletable": true, "dn": "jansId=ae59b28e-7429-471e-a330-523818bc48c9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:37", "creationDate": "2022-11-24T09:22:36", "ttl": 0, "sessionState": "fcd1ed8a929091ff7c46eb59349bcbbd29ac7cc25d7b616166778831b821022a.8f741b41-5540-4b8b-b47d-66830438afc5", "lastUsedAt": "2022-11-24T09:22:38", "permissionGrantedMap": { "permissionGranted": { "ec5cd1c4-ffa8-4763-8dc4-10427a75ef7d": true } }, "outsideSid": "aa42c5e0-9cf2-4121-bc7c-4368ab6f12e3", "id": "ae59b28e-7429-471e-a330-523818bc48c9", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjA3MDUwMWU5LWY1MTQtNDIxYy1hZTM0LWQ4OTE3MDVmNzU4ZSIsCiAgImNsaWVudF9pZCIgOiAiZWM1Y2QxYzQtZmZhOC00NzYzLThkYzQtMTA0MjdhNzVlZjdkIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZnJhZ21lbnQuand0Igp9.AWqTyt8R7sZotvVrQygGvPpiEIDvO0OAr3OYG-hqBIR_pFGJq5u6k01DFPZVkaJJ3YdqR8Jd5tW8_cDqkPJxOVjcADo83jn0t0doWXzU7joGA5z8j6pB7V64C7bGoDQgyF9rYB_JxorKP0qIAdx5urKQOBxZajeguDeXgAL7ZZdlVLjw", "opbs": "20a3af35-a04d-47e0-b56e-507b326b6750", "response_type": "code", "session_id": "ae59b28e-7429-471e-a330-523818bc48c9", "client_id": "ec5cd1c4-ffa8-4763-8dc4-10427a75ef7d", "response_mode": "fragment.jwt", "sid": "aa42c5e0-9cf2-4121-bc7c-4368ab6f12e3", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "070501e9-f514-421c-ae34-d891705f758e", "old_session_id": "eea1b935-6090-4b37-a078-27a8bfa58b26" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:36" }, { "isJwt": false, "opbrowserState": "3c5c2350-f945-4fdc-a229-6a4484a0efaf", "deletable": true, "dn": "jansId=425d2d4d-0c8f-4fce-9f75-be86a83b636c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:36", "creationDate": "2022-11-24T09:22:36", "ttl": 0, "sessionState": "c20efaf22913dfbd2b0f3b191989680361a15cb31cc20c96168e5ec4c6e2abc8.ab83e6d1-8c8a-4f6d-8f2f-31057720e6a8", "lastUsedAt": "2022-11-24T09:22:37", "permissionGrantedMap": { "permissionGranted": { "cf3ee536-fc34-4b1a-929b-412b53e86984": true } }, "outsideSid": "76706766-12aa-4c1b-bbef-ebf86655f940", "id": "425d2d4d-0c8f-4fce-9f75-be86a83b636c", "state": "authenticated", "sessionAttributes": { "opbs": "3c5c2350-f945-4fdc-a229-6a4484a0efaf", "response_type": "code id_token", "session_id": "425d2d4d-0c8f-4fce-9f75-be86a83b636c", "nonce": "90f55fce-5fd2-43e5-af56-3836fcc561f9", "client_id": "cf3ee536-fc34-4b1a-929b-412b53e86984", "response_mode": "fragment.jwt", "sid": "76706766-12aa-4c1b-bbef-ebf86655f940", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "cda35043-e285-4620-9a3e-87eda81d8c59", "old_session_id": "2d22a946-f45e-41e2-aff1-9268ce92d8a8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:36" }, { "isJwt": false, "opbrowserState": "29ed4944-2e2e-4589-9565-ab87bd2845a3", "deletable": true, "dn": "jansId=aa88ebf7-1bff-4273-ba84-6fb24e53e93c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:35", "creationDate": "2022-11-24T09:22:35", "ttl": 0, "sessionState": "710195584ba6632fd7438a746f38ee41afc00cda2ba83f63d0c2b8347340e9c7.6e71863c-c13f-48ba-bc0d-672952587253", "lastUsedAt": "2022-11-24T09:22:35", "permissionGrantedMap": { "permissionGranted": { "59619818-2dd5-4613-b28f-87dbddfd3f50": true } }, "outsideSid": "15109da5-90cc-4f60-89a6-64a254e36eef", "id": "aa88ebf7-1bff-4273-ba84-6fb24e53e93c", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.7qUlFu-it0FHnmdZI_JzuZbJV55PBkiq.aEHrAodkrLdzjh6q.IAPb8Tx-Hmtl-p4EJ5-sba5CZLSJcM8COc-Y5v6gOstbH0NUCSMOqlWVywJqByksuCHDYpAXYX4lC4IkXKl8BxNX6g62zJLrRkeqipQRoiyX_YxLLcdmwVVYF1TWRl0CtU1uervU0eeetsL_NgPU8P55bxkv6LF6YeTFdc14sA46nQdxS7ISPGrgdFxJL6OcfSwi02qzyzbLhWjkQoqJ6KElki4L2WlQtfDfFqDpmURqOmtRe3f7H0u-LWF1dy2J4P28d4iZsnBS9QrvijwPz019RZoMZkbYFY_Z4td8nenkYSCabOcH-JlzYfZnsXhf6gVtQcBLa3MfRdqsOlWyAdzIjyC5bteMKTv0vPbbcVNrhHZUdZvv7Cz5jOTddEK4oMasuAnu8wSoEcrfP5N5mXvEC6KChm59ZhCWiwq1Y7eMIFUW0cJfeGvUn9qgfK2wpKw02Dt1EeFQJg3ps_i52xWFbPVTSd2z788aM8-yXDEoyjYpCcieYJ0xl08B65avgD2_xXy32cDBlyx-nBSbp2zCk3fIOIo3QePogJijDNSchYN3EWx_8ROxmGMP7vt4_0bZzJzja1p5dxSwHQTc6PkI9wJfmMFN9ba82bJ1NhvYKxW7lNlIWsmqzXNR91gTk0_3Xx4HwzJ3t3xRVlp2yAW5n1JAWqIR-hT7jHinbVryEedbUnwshyq19hwv_glS05S4n6jP83uGPQ3uSHEnIlXismnKJvOhhqkP5neGqQIQo23Mr9nje0CzNxiZieJodChMW61ZPLwSv2OQR2zBilDxxOhvnBGKuqhasWNA3D0dsLSzv_3M3AeP9XJk__8bopic7jt9eFjtTaD62gAtGmMdF0pq5KvwYFlGMpl2jECXwvI64Lem6Ucs3yKw3n611UGbhRasUSG0AuNbxXw.qqNYBvZaKZWO8P6ogT0Nmg", "opbs": "29ed4944-2e2e-4589-9565-ab87bd2845a3", "response_type": "code token", "session_id": "aa88ebf7-1bff-4273-ba84-6fb24e53e93c", "nonce": "ce1bc587-014f-439a-8a5a-f2414437e5f5", "client_id": "59619818-2dd5-4613-b28f-87dbddfd3f50", "response_mode": "fragment.jwt", "sid": "15109da5-90cc-4f60-89a6-64a254e36eef", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "969f8c8b-0f6b-4849-88ad-4c94c1ddee16", "old_session_id": "0847feab-32f8-4f8d-a71c-b12d07111f55" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:35" }, { "isJwt": false, "opbrowserState": "b5bde72c-6187-468e-b9cc-543a7b2da65f", "deletable": true, "dn": "jansId=3dea5e79-fb9d-49ef-8790-32c215d1ff14,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:35", "creationDate": "2022-11-24T09:22:35", "ttl": 0, "sessionState": "e78c30a57816741f4565b58ec06c6458a5f50d77f5380ca81dca1a772a925d9f.490a80d8-77cc-40eb-93e7-4e3fc2447e61", "lastUsedAt": "2022-11-24T09:22:35", "permissionGrantedMap": { "permissionGranted": { "49495bb1-2c9c-4c97-a8e9-3d1717278ed7": true } }, "outsideSid": "55962792-e576-4aa1-ae1a-7306fb91d19a", "id": "3dea5e79-fb9d-49ef-8790-32c215d1ff14", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjk0ZjM5MjM4LWYyODQtNDI2NC1hZDE2LTllOTBiNTVhZDA3YyIsCiAgImNsaWVudF9pZCIgOiAiNDk0OTViYjEtMmM5Yy00Yzk3LWE4ZTktM2QxNzE3Mjc4ZWQ3IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZnJhZ21lbnQuand0Igp9.FSVq3YpGXBvM8pTlagbsGfFviLuEQxVGwB4JhJityq3k1mTTok9TI07jnHo08d8wPEBBvKLqiZOnmfXfV4Emw3Na6admiCnGv705eBjswVjFlAjh-1yk2EYzD96_bk6l", "opbs": "b5bde72c-6187-468e-b9cc-543a7b2da65f", "response_type": "code", "session_id": "3dea5e79-fb9d-49ef-8790-32c215d1ff14", "client_id": "49495bb1-2c9c-4c97-a8e9-3d1717278ed7", "response_mode": "fragment.jwt", "sid": "55962792-e576-4aa1-ae1a-7306fb91d19a", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "94f39238-f284-4264-ad16-9e90b55ad07c", "old_session_id": "4c390b77-8b1b-42d6-b121-ed884d166dd1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:35" }, { "isJwt": false, "opbrowserState": "089d09ea-50ca-41ec-870d-9883039c13ca", "deletable": true, "dn": "jansId=9756442a-91bf-43b7-80b3-fe97af10ae23,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:35", "creationDate": "2022-11-24T09:22:35", "ttl": 0, "sessionState": "714ec80bba79ef8959dc622410315c24782570f784ddb02627450c8dad18c3c3.53451d46-7bab-44a5-9f56-97b87293d4cd", "lastUsedAt": "2022-11-24T09:22:36", "permissionGrantedMap": { "permissionGranted": { "fef8d5dc-8efc-4e40-8cbf-7492edbac58f": true } }, "outsideSid": "e8e3aa88-1bde-4bc5-8ab8-8b26a5b8cea4", "id": "9756442a-91bf-43b7-80b3-fe97af10ae23", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIyYTBjMzQ3YS1iODJjLTRlODAtYWQ5OC03MWVkOTc0NDE4ZjQiLAogICJub25jZSIgOiAiNTZiY2RhZGMtNjMwMS00MmI0LTlmNTgtYTMyMDU0NTkwNmYxIiwKICAiY2xpZW50X2lkIiA6ICJmZWY4ZDVkYy04ZWZjLTRlNDAtOGNiZi03NDkyZWRiYWM1OGYiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.AA1YAtsBSonIqLXVv1cBkwitI_lpSrUeQSmwt4X2lIWoqW6A4ev-vmTfpue4rJZTUuvW80EsIKd17ZsQCQPxTDOjARjMxs8zpQVDsPA0uI_soDF-bh5xDxTUrc3DJrcv1stK_9VQJCylXLuz7asQVpYGQVUkLHXOdjvmgRjEdolKJHln", "opbs": "089d09ea-50ca-41ec-870d-9883039c13ca", "response_type": "code id_token token", "session_id": "9756442a-91bf-43b7-80b3-fe97af10ae23", "nonce": "56bcdadc-6301-42b4-9f58-a320545906f1", "client_id": "fef8d5dc-8efc-4e40-8cbf-7492edbac58f", "response_mode": "fragment.jwt", "sid": "e8e3aa88-1bde-4bc5-8ab8-8b26a5b8cea4", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2a0c347a-b82c-4e80-ad98-71ed974418f4", "old_session_id": "883f8096-701b-4b19-b3eb-1e19d9b0a5e4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:35" }, { "isJwt": false, "opbrowserState": "6665def1-52f4-48d9-9ce1-1f5b6976f3a4", "deletable": true, "dn": "jansId=a6b399fd-1fd0-4d3c-b114-adafa1fd2845,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:34", "creationDate": "2022-11-24T09:22:33", "ttl": 0, "sessionState": "75c1d98c410b47d2d30ddd03e155eaa1c47d519c4dfb18fc423c64326e84c74b.cfef6378-67e6-459b-bc91-74f11712fa9b", "lastUsedAt": "2022-11-24T09:22:34", "permissionGrantedMap": { "permissionGranted": { "d760036f-87ef-44ff-8528-36cef3f7bb2c": true } }, "outsideSid": "e92e59ea-e5aa-4e08-bece-58ca700263d2", "id": "a6b399fd-1fd0-4d3c-b114-adafa1fd2845", "state": "authenticated", "sessionAttributes": { "opbs": "6665def1-52f4-48d9-9ce1-1f5b6976f3a4", "response_type": "code id_token token", "session_id": "a6b399fd-1fd0-4d3c-b114-adafa1fd2845", "nonce": "774d69c7-b1ec-4e0b-9d47-3eba15dce4b1", "client_id": "d760036f-87ef-44ff-8528-36cef3f7bb2c", "response_mode": "fragment.jwt", "sid": "e92e59ea-e5aa-4e08-bece-58ca700263d2", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c1fea262-4945-403d-b170-07120b4c4b18", "old_session_id": "0b98d535-2a39-4b68-8360-3353f516b2be" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:33" }, { "isJwt": false, "opbrowserState": "5bf1ee4c-ccd0-4460-889a-d6aa85c2d70f", "deletable": true, "dn": "jansId=78daea83-5983-4b77-bb1a-4fc867afbe8d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:34", "creationDate": "2022-11-24T09:22:33", "ttl": 0, "sessionState": "04e1d7d44c401d664cc0854f1fd1a058120aab6902ef46a4752f85d2ad7c1964.5d078442-339e-4186-a6cf-e3c619afc5c0", "lastUsedAt": "2022-11-24T09:22:34", "permissionGrantedMap": { "permissionGranted": { "d74683ae-1909-4bb1-8546-6127c23607fe": true } }, "outsideSid": "11588695-21b4-4ed3-bea9-9c84db6543e1", "id": "78daea83-5983-4b77-bb1a-4fc867afbe8d", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogImE5YTA3MjZjLWQ2MmItNDkwNS05ODNmLTU4OGVmOGFhOGNkNCIsCiAgImNsaWVudF9pZCIgOiAiZDc0NjgzYWUtMTkwOS00YmIxLTg1NDYtNjEyN2MyMzYwN2ZlIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZnJhZ21lbnQuand0Igp9.xV2fGdwbRpm6hwxHoJc_kCyzR3m7kD1_IUY2FWpyAFyYW7BcFKYRxgw5Yw8Fj1tzTrJxpOlcF-_-qBEq_Ayf1A", "opbs": "5bf1ee4c-ccd0-4460-889a-d6aa85c2d70f", "response_type": "code", "session_id": "78daea83-5983-4b77-bb1a-4fc867afbe8d", "client_id": "d74683ae-1909-4bb1-8546-6127c23607fe", "response_mode": "fragment.jwt", "sid": "11588695-21b4-4ed3-bea9-9c84db6543e1", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a9a0726c-d62b-4905-983f-588ef8aa8cd4", "old_session_id": "17e01c75-61d3-4633-84f6-68eaf915551e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:33" }, { "isJwt": false, "opbrowserState": "59ab8772-ced3-4028-9b7a-579a0e373e92", "deletable": true, "dn": "jansId=a05ecfa6-892b-4559-b1ea-46c8dc3c38db,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:32", "creationDate": "2022-11-24T09:22:31", "ttl": 0, "sessionState": "db33bd96cab0e01d7843a7de7447d73cd47ff571d3f481822b46703e61ad8087.325be479-cd3c-428e-b889-b44418e88820", "lastUsedAt": "2022-11-24T09:22:33", "permissionGrantedMap": { "permissionGranted": { "bb10fa66-8521-4d7f-8cc1-5ee1b8886177": true } }, "outsideSid": "5daf365a-1c4e-4074-a9b0-bfd92ab2fed6", "id": "a05ecfa6-892b-4559-b1ea-46c8dc3c38db", "state": "authenticated", "sessionAttributes": { "opbs": "59ab8772-ced3-4028-9b7a-579a0e373e92", "response_type": "token id_token", "session_id": "a05ecfa6-892b-4559-b1ea-46c8dc3c38db", "nonce": "a9c353ca-57ad-4e5b-8557-176ee518240f", "client_id": "bb10fa66-8521-4d7f-8cc1-5ee1b8886177", "response_mode": "form_post.jwt", "sid": "5daf365a-1c4e-4074-a9b0-bfd92ab2fed6", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "01e5a48e-bcb1-4b3a-aaf1-0b4c96e1a6c3", "old_session_id": "e679bce8-1e4e-4b27-ad67-ca34881342fe" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:31" }, { "isJwt": false, "opbrowserState": "27ceded0-78a5-49e9-86a5-5dd9804c6323", "deletable": true, "dn": "jansId=981674a0-978f-4196-addf-f8ab9e69062d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:32", "creationDate": "2022-11-24T09:22:31", "ttl": 0, "sessionState": "6d1989c0d4d8fc0301065eeab676b60480be667b85061c3bda322a2c9a9da78e.8cc417ab-02d2-46a6-983b-32002c3aec74", "lastUsedAt": "2022-11-24T09:22:33", "permissionGrantedMap": { "permissionGranted": { "2449966c-17f6-43ba-b8ef-7765ef722ca3": true } }, "outsideSid": "54ebbac4-af23-4aad-8731-8e61c39c7dbb", "id": "981674a0-978f-4196-addf-f8ab9e69062d", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI3NTI0YWE0My1hYzRmLTRmMzYtODEzYS1hOTU5YmVkMWVhZGYiLAogICJub25jZSIgOiAiZGYzZTk1Y2QtYzNhNC00MWQ1LWExZWYtMDM2Nzg1YmU2YmY3IiwKICAiY2xpZW50X2lkIiA6ICIyNDQ5OTY2Yy0xN2Y2LTQzYmEtYjhlZi03NzY1ZWY3MjJjYTMiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.m7th5cf3e1dhv2OQSzPUFRVzZabEz2MF0uGQBppofPXQNMcJbCp2N0U_-yPiV2P4w4h6DAd0MNJ03wlKfw3jbxx0iD7u5rDOqUZBvN3q5HXRJFUL4aUfIE6UZZa4ksdN8ZAqSAzLpXT2M_TynVO3dzvYJSVUIX2Xg6JMa5xeTDrrHFs75GXBemCi6rPa-eWC_GGo6XeAnqDG7ExUpvbXvZaQH7TQVZe2905XLgzEP3ZEuskORNJTIIRwNONcAyx1EOJLNW48_NlusT8GeOYWWuouzd3LTmN6AVz-WcJKXDnvkixgggJNao0MAexi7IqfYm2wfoSEwmxCX1oJkfTffA", "opbs": "27ceded0-78a5-49e9-86a5-5dd9804c6323", "response_type": "code id_token", "session_id": "981674a0-978f-4196-addf-f8ab9e69062d", "nonce": "df3e95cd-c3a4-41d5-a1ef-036785be6bf7", "client_id": "2449966c-17f6-43ba-b8ef-7765ef722ca3", "response_mode": "fragment.jwt", "sid": "54ebbac4-af23-4aad-8731-8e61c39c7dbb", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7524aa43-ac4f-4f36-813a-a959bed1eadf", "old_session_id": "880599ec-d191-4070-95a8-4287590bbeb5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:31" }, { "isJwt": false, "opbrowserState": "442aa416-4f78-4e52-ad2c-09735e4120e6", "deletable": true, "dn": "jansId=b4a92c65-4bc5-461a-af5c-98e962191e3c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:32", "creationDate": "2022-11-24T09:22:31", "ttl": 0, "sessionState": "ff6154e1be3f59e6e5f21673654f011d7b1465ee1d587f9c8beaadc739ba2093.6729f18a-9b2d-479f-b053-02890692b5a2", "lastUsedAt": "2022-11-24T09:22:32", "permissionGrantedMap": { "permissionGranted": { "578ec3bf-f41f-4461-b191-7a0c63b6e2ba": true } }, "outsideSid": "7c647af5-3c9d-4286-8ea4-0b920ca59ddc", "id": "b4a92c65-4bc5-461a-af5c-98e962191e3c", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJkNzE0NDlkMy05MTgyLTQyZjUtOGRlZC1hMDhiZjA3ZTcwZjEiLAogICJub25jZSIgOiAiYmYwYTE1N2QtMGE3My00MGYzLWE2ODktOWIzZTQ5ZDY1Y2ExIiwKICAiY2xpZW50X2lkIiA6ICI1NzhlYzNiZi1mNDFmLTQ0NjEtYjE5MS03YTBjNjNiNmUyYmEiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.ACvbaX_J8BSoigGUjQVP18J-buD_BKakxRlBnm2qKMz9SbkhSiIkG1HpzfBI9iqJFhpj3skHp9nVtBFWvEHG-g", "opbs": "442aa416-4f78-4e52-ad2c-09735e4120e6", "response_type": "code id_token token", "session_id": "b4a92c65-4bc5-461a-af5c-98e962191e3c", "nonce": "bf0a157d-0a73-40f3-a689-9b3e49d65ca1", "client_id": "578ec3bf-f41f-4461-b191-7a0c63b6e2ba", "response_mode": "fragment.jwt", "sid": "7c647af5-3c9d-4286-8ea4-0b920ca59ddc", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d71449d3-9182-42f5-8ded-a08bf07e70f1", "old_session_id": "5dfbf852-b4ea-463d-b563-d75a90ea751b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:31" }, { "isJwt": false, "opbrowserState": "c65a9327-3ee4-4d91-af60-c409f7a0c8a7", "deletable": true, "dn": "jansId=a6f77e9a-7736-4871-9698-d19e390a1286,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:31", "creationDate": "2022-11-24T09:22:30", "ttl": 0, "sessionState": "7f4cd684fbc193c17c44d563d1bc2b3b95e8562e8358b73a98e36a7e46f6d00f.b0697bc2-7fec-46f8-8174-9bba7d5be192", "lastUsedAt": "2022-11-24T09:22:32", "permissionGrantedMap": { "permissionGranted": { "dfee4501-7948-4680-abb8-5b76bb4d8f33": true } }, "outsideSid": "35ee5e7d-b7eb-4aa6-9a76-354d1c343027", "id": "a6f77e9a-7736-4871-9698-d19e390a1286", "state": "authenticated", "sessionAttributes": { "opbs": "c65a9327-3ee4-4d91-af60-c409f7a0c8a7", "response_type": "code id_token token", "session_id": "a6f77e9a-7736-4871-9698-d19e390a1286", "nonce": "173e9d58-bd39-41f7-ad8d-0ae695159894", "client_id": "dfee4501-7948-4680-abb8-5b76bb4d8f33", "response_mode": "fragment.jwt", "sid": "35ee5e7d-b7eb-4aa6-9a76-354d1c343027", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ecf57a2d-dd53-4b37-b368-c85dd1c0c7b1", "old_session_id": "93758250-ede0-4b27-bf15-785c662330aa" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:30" }, { "isJwt": false, "opbrowserState": "378773ea-76d0-4f5b-9b9e-4fa3860df2f8", "deletable": true, "dn": "jansId=131e8d2a-4f9d-4097-af52-67c20247e6eb,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:30", "creationDate": "2022-11-24T09:22:29", "ttl": 0, "sessionState": "57ce13eaa93ce7a2e2b11ff23b7c437d9a3b0803b441331617602909066caf2e.af37d30c-fb7f-4239-8f46-07d7a3a1815c", "lastUsedAt": "2022-11-24T09:22:30", "permissionGrantedMap": { "permissionGranted": { "ece31476-6ca2-497c-927f-3aef43ebfcab": true } }, "outsideSid": "0dbe0361-d7e3-4ff9-abf5-7c867a15d1de", "id": "131e8d2a-4f9d-4097-af52-67c20247e6eb", "state": "authenticated", "sessionAttributes": { "opbs": "378773ea-76d0-4f5b-9b9e-4fa3860df2f8", "response_type": "token", "session_id": "131e8d2a-4f9d-4097-af52-67c20247e6eb", "nonce": "5d4a2c34-fa02-442b-9fdd-e34c37c0f128", "client_id": "ece31476-6ca2-497c-927f-3aef43ebfcab", "response_mode": "form_post.jwt", "sid": "0dbe0361-d7e3-4ff9-abf5-7c867a15d1de", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ad001e8f-404f-4dfc-b44f-b4dee4c39f80", "old_session_id": "9210e35e-205a-4219-86e4-46c8b5cc4f40" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:29" }, { "isJwt": false, "opbrowserState": "7ae069f6-01da-48eb-a5ce-511754b590e3", "deletable": true, "dn": "jansId=7b80da0a-acad-4f3c-82d4-775605f9224b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:30", "creationDate": "2022-11-24T09:22:29", "ttl": 0, "sessionState": "e1111c96597d13af2e16db10b97a88af6dd16e74fa5932bb985e2401547a7a7f.68783d37-2dd8-4426-9208-9d0faba68cd7", "lastUsedAt": "2022-11-24T09:22:30", "permissionGrantedMap": { "permissionGranted": { "f52a870b-d4a8-4f1d-915a-fc696b8709fb": true } }, "outsideSid": "fd6dfae2-a90f-4448-8b4f-e88aa4e3b966", "id": "7b80da0a-acad-4f3c-82d4-775605f9224b", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJiYjdjMTRlZi1lNWYxLTQ5MjctOTljYi1mZWMyMzZhZDk4MjAiLAogICJub25jZSIgOiAiZjVlZDY1OTMtZmU5MC00OGVjLWIzYzAtMzJjZDAxYzExZWQzIiwKICAiY2xpZW50X2lkIiA6ICJmNTJhODcwYi1kNGE4LTRmMWQtOTE1YS1mYzY5NmI4NzA5ZmIiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.DRtoCJRHHd1I1yUKKQopEYZza2Rtar6z_WJIxDndoZNsR8wJHkh3INrn0871aHr1uv2ByDWZBBpeI_u0MnKrUgOuA0J55hNMdPxukBmcNUptYddOdbhLMiac33ATXNtQ1wlOm-elS-0kPnIVlNNmQnUkfFB6_LNciIRDKuz9eefj3vmJ8Dw1EXQQ47q33lswZt7eGY1u2gV-UFhAbIE3-atOcMucDRzor8YulJcAHQdlXlE3LdnLCnRrUxdVXcHmVVScnUryLEZhv0Qi4sbqYCyzZQTC8Crp8V2ekfgscqfNH46_yfT6FjtvtbyVKfBd6wtW8ahav5uVaPHr-9qDZw", "opbs": "7ae069f6-01da-48eb-a5ce-511754b590e3", "response_type": "code id_token", "session_id": "7b80da0a-acad-4f3c-82d4-775605f9224b", "nonce": "f5ed6593-fe90-48ec-b3c0-32cd01c11ed3", "client_id": "f52a870b-d4a8-4f1d-915a-fc696b8709fb", "response_mode": "fragment.jwt", "sid": "fd6dfae2-a90f-4448-8b4f-e88aa4e3b966", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "bb7c14ef-e5f1-4927-99cb-fec236ad9820", "old_session_id": "373f2caf-c06b-4114-9f77-69f2a7f6a359" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:29" }, { "isJwt": false, "opbrowserState": "fc4a8ea1-342b-4a6b-8943-17a7a14766c9", "deletable": true, "dn": "jansId=86a049f9-49f2-449d-9e0b-ee0b8aa82fe6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:28", "creationDate": "2022-11-24T09:22:28", "ttl": 0, "sessionState": "451697ccb28045ef3d66383873f30130133a33263c223675506ccd3dc5f25650.a02069ac-b982-410b-9242-a8cbbc754938", "lastUsedAt": "2022-11-24T09:22:29", "permissionGrantedMap": { "permissionGranted": { "2afceaa9-fdb1-4948-9cef-1a595bc035e2": true } }, "outsideSid": "f80ac347-82c1-440a-a53e-f1efacb639fb", "id": "86a049f9-49f2-449d-9e0b-ee0b8aa82fe6", "state": "authenticated", "sessionAttributes": { "opbs": "fc4a8ea1-342b-4a6b-8943-17a7a14766c9", "response_type": "token id_token", "session_id": "86a049f9-49f2-449d-9e0b-ee0b8aa82fe6", "nonce": "e8bb7e4a-d9c8-4ded-9f1b-0fe0fdfad879", "client_id": "2afceaa9-fdb1-4948-9cef-1a595bc035e2", "response_mode": "form_post.jwt", "sid": "f80ac347-82c1-440a-a53e-f1efacb639fb", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5038be8c-5daf-415c-8499-449f8d895a7d", "old_session_id": "52d51da6-e580-4457-9022-30b0cdbe10a8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:28" }, { "isJwt": false, "opbrowserState": "7e5dfefa-536d-45c2-a38f-3b8a52a0f427", "deletable": true, "dn": "jansId=abbd1924-7299-497a-b657-9a97deca7aed,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:28", "creationDate": "2022-11-24T09:22:27", "ttl": 0, "sessionState": "20466db99ff92ced0bed1f33388a90e47fa53fcff52017a72c7ddaca32b6f7f8.62f00cb3-f576-467a-bf3a-7902209953bc", "lastUsedAt": "2022-11-24T09:22:29", "permissionGrantedMap": { "permissionGranted": { "90b73cb8-a137-4b50-a856-5b17654aca27": true } }, "outsideSid": "506f7891-cef9-400b-95bd-545d6068faa3", "id": "abbd1924-7299-497a-b657-9a97deca7aed", "state": "authenticated", "sessionAttributes": { "opbs": "7e5dfefa-536d-45c2-a38f-3b8a52a0f427", "response_type": "token", "session_id": "abbd1924-7299-497a-b657-9a97deca7aed", "nonce": "8c3aeba0-38b0-41e9-a8bf-c1c7eee8b435", "client_id": "90b73cb8-a137-4b50-a856-5b17654aca27", "response_mode": "form_post.jwt", "sid": "506f7891-cef9-400b-95bd-545d6068faa3", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9d50b746-12db-459c-bc29-0f139231a77f", "old_session_id": "0e8a2467-7a5f-4e52-90cc-5db866737803" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:27" }, { "isJwt": false, "opbrowserState": "b302d451-d0e7-40d7-9cd1-84673c0f98d3", "deletable": true, "dn": "jansId=5cac2f55-dccd-4f26-931d-c76fbd3b52d3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:28", "creationDate": "2022-11-24T09:22:27", "ttl": 0, "sessionState": "98ffcc36fad635fe4e0e775132f5971aa7155f1e1eeaeec4feaf9d26deb06f96.cc6f45a9-3502-48d3-97fb-2fd60110957c", "lastUsedAt": "2022-11-24T09:22:29", "permissionGrantedMap": { "permissionGranted": { "da507a5f-9e1d-47fc-828e-37fd9c94e273": true } }, "outsideSid": "a298901f-4ba8-4d2d-b5e3-c1f5c74b50b5", "id": "5cac2f55-dccd-4f26-931d-c76fbd3b52d3", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJlZDNmYmYxNy0wY2YxLTRmYTMtYjk0YS01YThjMmQ4NTI2MmUiLAogICJub25jZSIgOiAiMzgyNzQ2ZWYtMjRhZC00ZjI4LWEzMjMtZjk3MDVhYWRiYzJjIiwKICAiY2xpZW50X2lkIiA6ICJkYTUwN2E1Zi05ZTFkLTQ3ZmMtODI4ZS0zN2ZkOWM5NGUyNzMiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.GVozIJNI8jEdHYgbACBIIwDB5R03Ve7gLOZM1HOUQU-BKN6iihNOkRAF-06fdiUFrGcMGdlqnkb0ke5eyfWrs1U5Ud8xnJGCvT-GVSsHPx6-YczXM_P1TsNJ7SMGRl5picA4v7OXVJEK5j7eRYc0ztuBacgiDSyq7N0MkKo2KmTgArMM2rwfyjxIyeTGY0yBRsZs_EdSlWfutIO7VsE-esI1o9reESye0Ul8EjEiSotc-hVnpVmL-yZWnXtPbXKu3ADZrOl9g2GxB5JQ74wfomGCiBzirG6XGGveN0Y6IgSKXA_74qZTIcjFnn4RKa3paO_xdFP01wRTbGQuX6z90A", "opbs": "b302d451-d0e7-40d7-9cd1-84673c0f98d3", "response_type": "code id_token", "session_id": "5cac2f55-dccd-4f26-931d-c76fbd3b52d3", "nonce": "382746ef-24ad-4f28-a323-f9705aadbc2c", "client_id": "da507a5f-9e1d-47fc-828e-37fd9c94e273", "response_mode": "fragment.jwt", "sid": "a298901f-4ba8-4d2d-b5e3-c1f5c74b50b5", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ed3fbf17-0cf1-4fa3-b94a-5a8c2d85262e", "old_session_id": "5a831da6-1401-4545-9fd4-cda4811654a6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:27" }, { "isJwt": false, "opbrowserState": "e9adb26d-40a8-4c8a-a80d-8599a0065ed1", "deletable": true, "dn": "jansId=510d02ba-41f3-4a2b-a9d0-26719d700669,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:27", "creationDate": "2022-11-24T09:22:25", "ttl": 0, "sessionState": "7a83923229ff8c0f131d4d5fac6eb2b4fd907c8acc62e876b8d84f7b97ba9f6c.6a546103-921a-458c-b48b-819e8e626d55", "lastUsedAt": "2022-11-24T09:22:27", "permissionGrantedMap": { "permissionGranted": { "97b6e6b1-1e6c-4a4e-8feb-a6522ff5af85": true } }, "outsideSid": "97254c15-8c9a-49ee-841b-9d5b630a1b11", "id": "510d02ba-41f3-4a2b-a9d0-26719d700669", "state": "authenticated", "sessionAttributes": { "opbs": "e9adb26d-40a8-4c8a-a80d-8599a0065ed1", "response_type": "token id_token", "session_id": "510d02ba-41f3-4a2b-a9d0-26719d700669", "nonce": "2a53a709-d628-4e5f-bf55-8f7e43ece8c6", "client_id": "97b6e6b1-1e6c-4a4e-8feb-a6522ff5af85", "response_mode": "form_post.jwt", "sid": "97254c15-8c9a-49ee-841b-9d5b630a1b11", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d39fd638-4291-49ad-a9c1-fb1cc2e24e48", "old_session_id": "73987db2-0781-45ac-aefc-83d01768dbcb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:25" }, { "isJwt": false, "opbrowserState": "05b4ed72-5e85-45e0-b7d9-626f8f0c11f6", "deletable": true, "dn": "jansId=b8dcbf50-fb8c-477a-a1c1-09d1c0966f98,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:26", "creationDate": "2022-11-24T09:22:25", "ttl": 0, "sessionState": "531ce729f2143d295a0b4153f073f5014109f4b81419eeb8674cc86f6a9301cb.296bb2fa-4c0e-49f3-8f08-4f1016c0d630", "lastUsedAt": "2022-11-24T09:22:27", "permissionGrantedMap": { "permissionGranted": { "a25a607d-75c5-4148-96d2-284bab33cc50": true } }, "outsideSid": "495a30a1-26bb-4361-b192-20232fd68c3d", "id": "b8dcbf50-fb8c-477a-a1c1-09d1c0966f98", "state": "authenticated", "sessionAttributes": { "opbs": "05b4ed72-5e85-45e0-b7d9-626f8f0c11f6", "response_type": "token", "session_id": "b8dcbf50-fb8c-477a-a1c1-09d1c0966f98", "nonce": "ac7e8aa5-6e81-411b-b7ed-c0a98a65447d", "client_id": "a25a607d-75c5-4148-96d2-284bab33cc50", "response_mode": "form_post.jwt", "sid": "495a30a1-26bb-4361-b192-20232fd68c3d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "73ca5b58-e568-4223-a207-980c399752da", "old_session_id": "47cc8044-00f0-4390-8e4c-9264a6068471" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:25" }, { "isJwt": false, "opbrowserState": "7d69494d-f585-4f4a-9f69-9cee37121ddb", "deletable": true, "dn": "jansId=a7674f81-a534-45e1-a8a2-d9167d3421db,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:26", "creationDate": "2022-11-24T09:22:25", "ttl": 0, "sessionState": "c562fd03a82c7e87c02485f646da35c65eeb084eb02b329d2fe49c2b908fe70f.4d7581f3-1648-4c64-8b7d-5624569fa8b5", "lastUsedAt": "2022-11-24T09:22:26", "permissionGrantedMap": { "permissionGranted": { "59c6b95f-a54b-4c89-96c3-72a9fd40dd07": true } }, "outsideSid": "c3b58358-fc12-43ca-89d1-016cab079b2f", "id": "a7674f81-a534-45e1-a8a2-d9167d3421db", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiI0Y2E3NjMyMi1mY2ZkLTQyNWQtOTc0ZS0zMjBlNTZmM2U2YjFfZW5jX3JzYS1vYWVwIiwidHlwIjoiand0IiwiZW5jIjoiQTI1NkdDTSIsImFsZyI6IlJTQS1PQUVQIn0.AOqsHbrltdfx0Px93iWdiTuGS3feri0lwuZ_XSquhL1lJ2VD9Ho5ob5tBPcnmyL4Nn3uQRI9vlpT1ZIevkk0gkwRNHCfiE9CgDWY2Fb64YiZkt7kz_QowNt3wH5HH9I0Wu9Hsp9b-jXf6nSsmBAox8S65JaADqZDu0BIxkqrbXVMOZGmCZS9OWiQU2HecTGDRyYbzL3-AOmKyMqlxkcI3fkOGyYA6Uzw_mvq5kVUn7zOFPr-GCXo1HK2wfYKZqKqb9iam9hkaPadSW9GvLy4u2O80_23_l35II-4sD62vV-wiPiSgI2sKSCWVlJm9tWUT0PmOyqLf4hMe_kRWP0oSQ.TfV-nx2UnX00Vx6T._tzXl4qke_L1W3FK0rsZbkFkDxGH9QLPVUaQqhNaQQsde9t0kNvvmLqU0NfcGjvAjCVgUvLp4VsSWS_hcvYi5nqKuShWazByfLPesh8PnmwmJdaX1g0MRZ6_ywaMmxt-aw5LQlKhVpbgyFwrjvoAsqe6qLJEvcSmww3oJRnDdTY4FQFzlNbdSXpfUuZWMMMrb0IpoGFMbbLmkutHhRVZKIBRXkzAMfBaNuMwckQjh3TVDome82j4iMDxP4F5tDfaYHgzN6enS0WSrIK5IKahOpkrAARJk09tPp84nD6BDCw4Qm96Dro4O5b_RvaDMH5Ntcqa85g0bCievEuAqJL__9diClJq5v_SNFoo_hldIDpg2TuZTXBt2pZiuKzkxjWrjsK7NrLRiJqW2qAyP-g3DSVKR1jHv3B_nzghhbdx2rWae-D5-5HcHcMfi0UMDkrbEzYtP-GilBgDVYcluRpOfM8xn014lfouTP027NiLt3hE7DrLBC4AKnbU8Oo3K-42p2FMK5CoQ-Cbi_LMSGawQRue3-vU-ybfj3if8lBkozXkpIJBf7VfL2bclZ63o6jaVnMtxVdfnzZVVt8Y-dE7I3KoT_SmNZJaCnWO_SdfKciTHBAQ6S7daRh6xW0EcTsQ2Bum0WpeX3OORD-OZEsJNWWFwhN3GeSi2DFjVB4lEWDfL6tnrcxcInzhfK4MAPq8e7VOARmGZ62aFOfvuLBq0Q9HY762qrQQM42A6VKsSgmkJcs2boxfCWPw4Um75kGMBmi4AzFPSQb41hFEpN9BYtqsQo0M86gX2xqwuq_hS2ED-1ES6P2I1ZNCLpo30DyJhjq4_OPu7jHswAQcZGc8rPnPk1tyNYIw_6ApoL3FuFbO6soDbeVCuBVpOzi2wNKhMpNKVnGqvPl_9ursoRLMGh74JrrfQrDsL_3izA.5Q_H2F0GYCTM4kGn5ND48g", "opbs": "7d69494d-f585-4f4a-9f69-9cee37121ddb", "response_type": "code id_token token", "session_id": "a7674f81-a534-45e1-a8a2-d9167d3421db", "nonce": "794f8208-69b2-4439-9557-b3fc7e73025f", "client_id": "59c6b95f-a54b-4c89-96c3-72a9fd40dd07", "response_mode": "fragment.jwt", "sid": "c3b58358-fc12-43ca-89d1-016cab079b2f", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "062eee39-00aa-44c9-9e8c-3f66892cdcc1", "old_session_id": "f6c080c8-0f97-4fee-a055-e6666b805482" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:25" }, { "isJwt": false, "opbrowserState": "761fdef6-1b98-442a-8425-0e00e40b264a", "deletable": true, "dn": "jansId=007e5dec-3a06-45df-b4c7-ccebcd0c88a4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:25", "creationDate": "2022-11-24T09:22:24", "ttl": 0, "sessionState": "7b5eb700d8d17bc8aba545ca6af7eac2e8d30cf973d4c92d0973d92b7ff71dd6.45584883-0d45-4d79-bb4c-7274f7588c80", "lastUsedAt": "2022-11-24T09:22:26", "permissionGrantedMap": { "permissionGranted": { "c60c0563-dea6-448e-84a8-65d6f982376d": true } }, "outsideSid": "9f68ed17-bf5b-48d4-99c8-c6b7ad98d77e", "id": "007e5dec-3a06-45df-b4c7-ccebcd0c88a4", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIzY2FhMWRkMy0zYjZiLTQyOWYtYTYyOS0wYjU3ZjVmODA1ZTgiLAogICJub25jZSIgOiAiNGU1YzhhZTUtYzQ4NC00YTVhLThlM2QtZjUwMmQ0NWIzMzA3IiwKICAiY2xpZW50X2lkIiA6ICJjNjBjMDU2My1kZWE2LTQ0OGUtODRhOC02NWQ2Zjk4MjM3NmQiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.hMQ_bJvJYir5L4wZ1ExqlILq2vtRYGmIUCbvIXxsGEPpr_tr6zfQtmjpF7y1ayfrhDPhquAW0RlkC-acwL5YE44dXRxW9TUyikU8RWXUrQKLCjtTJu2_4bMkbPdycAYcc5PN1Zx6vt--K6RJgOA3pw6IU7w2DJRy8xwMMTHDKgmhdt91G77aTKBhU-xNszG6-mYAnbfsUb8yOVqB1ggfS2RFV7m1EG64sVhSU0yfksd-jXyLzqSPXeHI4OZXx485-eFmZxvFbu9jK0lz13A2B8rpjLhg06vL1JI13sQ9ih7mQGAEbkgdHeqckoJi7ED4M5NlNCo_VHxBSM12bdDDbA", "opbs": "761fdef6-1b98-442a-8425-0e00e40b264a", "response_type": "code id_token", "session_id": "007e5dec-3a06-45df-b4c7-ccebcd0c88a4", "nonce": "4e5c8ae5-c484-4a5a-8e3d-f502d45b3307", "client_id": "c60c0563-dea6-448e-84a8-65d6f982376d", "response_mode": "fragment.jwt", "sid": "9f68ed17-bf5b-48d4-99c8-c6b7ad98d77e", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3caa1dd3-3b6b-429f-a629-0b57f5f805e8", "old_session_id": "dbd14d77-0425-4fc8-89f9-a753b26c8eaf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:24" }, { "isJwt": false, "opbrowserState": "337495fe-274a-4262-b2c1-255ed447eb92", "deletable": true, "dn": "jansId=605b811b-ac7a-4683-bfff-e5c6c4617ff7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:23", "creationDate": "2022-11-24T09:22:22", "ttl": 0, "sessionState": "023e82241da8cdb9d75db5c3965dd82b4d3cc10d995db7fc789c2424cd16fc1e.515e596c-b2aa-416a-8ef6-6a9196be8209", "lastUsedAt": "2022-11-24T09:22:23", "permissionGrantedMap": { "permissionGranted": { "55805ffc-cc04-4d93-85a6-2751f1551c0c": true } }, "outsideSid": "8933736d-18ff-4b69-9272-f9fa326111f3", "id": "605b811b-ac7a-4683-bfff-e5c6c4617ff7", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIwNzY4MTMwZi0zODQzLTQ0ZjQtODhmMC1jMjk1OGI5MjljNGIiLAogICJub25jZSIgOiAiYzRhNWNlYjUtNmVhZS00YTQyLWE1NDktYzAwNDE1ZmU5ODgzIiwKICAiY2xpZW50X2lkIiA6ICI1NTgwNWZmYy1jYzA0LTRkOTMtODVhNi0yNzUxZjE1NTFjMGMiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.wZs6oZeZPjA142gijZkQLm4OWIrEqedo60RMK3XLr3xJeyj9xA3W1ew8PDeqlen1fqofd4lEKl2BKUlF4joQrFII6HUYlkpMrsJetB5AflEuoX8MrhW0_X3sDEo1rDeocwYXL-c458vPcpmOpzDHBRxLK96z8_FD03yMijv6PRfrdWWMCz8m6CkJizAv6IDNk5DcgvZMcej3gLfGRPemn5BiLlhXdfjY7d4rXBbglx8aGR5Kn1168VQvr3tuhhj3mDQy5kbhSycmgt_H-6w2zcolsyjcWS4gzoimRu4mcWH3R8R51a4tyJzWW98DOIOElrAeo8lr-t2VvBHoI2YkGA", "opbs": "337495fe-274a-4262-b2c1-255ed447eb92", "response_type": "code id_token", "session_id": "605b811b-ac7a-4683-bfff-e5c6c4617ff7", "nonce": "c4a5ceb5-6eae-4a42-a549-c00415fe9883", "client_id": "55805ffc-cc04-4d93-85a6-2751f1551c0c", "response_mode": "fragment.jwt", "sid": "8933736d-18ff-4b69-9272-f9fa326111f3", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0768130f-3843-44f4-88f0-c2958b929c4b", "old_session_id": "86e17c2c-4f1a-4b12-8239-5f4e936d03bc" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:22" }, { "isJwt": false, "opbrowserState": "fc5ffd29-09a0-4d68-82c9-e902dbb88463", "deletable": true, "dn": "jansId=87873442-cdbc-487a-a7b0-7823ca219b2b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:22", "creationDate": "2022-11-24T09:22:21", "ttl": 0, "sessionState": "663f2dc590c9cea570c4e64c4e4a57c0c296f91b25cbd86111911a949aeaa4e8.986eac5c-247e-47ec-a314-63f88727bdab", "lastUsedAt": "2022-11-24T09:22:23", "permissionGrantedMap": { "permissionGranted": { "42afd7a2-571f-4b1c-b796-341aa90a7751": true } }, "outsideSid": "f15d2411-f8c8-4dd4-8132-eea40882893b", "id": "87873442-cdbc-487a-a7b0-7823ca219b2b", "state": "authenticated", "sessionAttributes": { "opbs": "fc5ffd29-09a0-4d68-82c9-e902dbb88463", "response_type": "token", "session_id": "87873442-cdbc-487a-a7b0-7823ca219b2b", "nonce": "c5836c13-581e-4551-babe-97849056a8f3", "client_id": "42afd7a2-571f-4b1c-b796-341aa90a7751", "response_mode": "form_post.jwt", "sid": "f15d2411-f8c8-4dd4-8132-eea40882893b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a204c42b-bcb7-4ec5-94e1-eb301913be01", "old_session_id": "fbde244f-1842-4b02-8360-9f1bc017b342" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:21" }, { "isJwt": false, "opbrowserState": "5a21d626-34e6-4e13-9e7f-67a8fcd952ca", "deletable": true, "dn": "jansId=9668c8ba-ffa4-4ad8-908d-750644ba331f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:20", "creationDate": "2022-11-24T09:22:19", "ttl": 0, "sessionState": "97bb4e5f6f64991fbf658b334d24eb650b173915e0a9f539d20db3cba6794763.6c6c9275-bf20-4612-a655-aefa71d81e73", "lastUsedAt": "2022-11-24T09:22:21", "permissionGrantedMap": { "permissionGranted": { "898cc0ef-6001-4850-b82d-968989ed08ca": true } }, "outsideSid": "fadced5d-2fa9-435a-8a31-ff3eea58fdad", "id": "9668c8ba-ffa4-4ad8-908d-750644ba331f", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIzNGFjNzE5Ni1kYTZkLTQ3MDMtYTljYi01N2E0YzNlZmEwNDciLAogICJub25jZSIgOiAiMTk2YzAzOTMtYTk5Zi00MmIxLWEwYzQtOGJkYTgzNTMyN2FhIiwKICAiY2xpZW50X2lkIiA6ICI4OThjYzBlZi02MDAxLTQ4NTAtYjgyZC05Njg5ODllZDA4Y2EiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.GmVLw0aGxm7v5OVVr9OeelcOeenMpckfIO-bQROQP-9ryWN_twK9uN523XSfOIZQIPEHNHHGpJ-jCM5DKkzYIfBqqdjJcyK3SR84N45uTN52ZCFsdKHgv5L9GNv-RwA73FPfGKQ7LmAHwLQBkcHr4PsGoQpyWiVDOkK3ssoTzQ3lgXvkirEcuZoEBgpSfN8lF_ecUtV1EI6077uHILB_ve0_woDCoJnqMMXPjyFef4qBpOdUU24vHu0uk-ywHi0LPHbhRc9_MiDHcdh-bJYunKuQcsgYfIRhMz8HKUNWuBOZ93T1M__RrHR117yqti1qTWHzZjrOVqQ-LL0i65CKeg", "opbs": "5a21d626-34e6-4e13-9e7f-67a8fcd952ca", "response_type": "code id_token", "session_id": "9668c8ba-ffa4-4ad8-908d-750644ba331f", "nonce": "196c0393-a99f-42b1-a0c4-8bda835327aa", "client_id": "898cc0ef-6001-4850-b82d-968989ed08ca", "response_mode": "fragment.jwt", "sid": "fadced5d-2fa9-435a-8a31-ff3eea58fdad", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "34ac7196-da6d-4703-a9cb-57a4c3efa047", "old_session_id": "592170e9-1fe8-41ef-a1f8-1b118a2bb43b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:19" }, { "isJwt": false, "opbrowserState": "a88495ef-ae7a-4d04-ae49-f304deb85671", "deletable": true, "dn": "jansId=ba803bfd-7b89-4f4c-a58c-19854b364b26,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:20", "creationDate": "2022-11-24T09:22:19", "ttl": 0, "sessionState": "c1bc8a63045f947c3331a5fab06809d2a286a39eb12b9f58960d2f299e09587d.2126b8be-398a-4bca-b20f-5d7750ec2116", "lastUsedAt": "2022-11-24T09:22:21", "permissionGrantedMap": { "permissionGranted": { "cd004c9d-e8b6-49a3-a691-b2ccd4838698": true } }, "outsideSid": "890ca7a5-a778-4704-a007-468aa7096e7f", "id": "ba803bfd-7b89-4f4c-a58c-19854b364b26", "state": "authenticated", "sessionAttributes": { "opbs": "a88495ef-ae7a-4d04-ae49-f304deb85671", "response_type": "token", "session_id": "ba803bfd-7b89-4f4c-a58c-19854b364b26", "nonce": "8fa8db40-8079-4c76-9bab-bb52a7ba87a2", "client_id": "cd004c9d-e8b6-49a3-a691-b2ccd4838698", "response_mode": "form_post.jwt", "sid": "890ca7a5-a778-4704-a007-468aa7096e7f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5e77e9e3-18b3-4dad-9f13-55d74c519456", "old_session_id": "66eef3d6-72e0-4b18-8cac-a45833514e59" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:19" }, { "isJwt": false, "opbrowserState": "882d0ce3-6a4f-4200-8383-b86605031f56", "deletable": true, "dn": "jansId=0f64e23f-1a5c-4e2d-8a19-32cb3e930db6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:20", "creationDate": "2022-11-24T09:22:18", "ttl": 0, "sessionState": "a1830eb4b7b1d000a8c322be43446cdfa0c58655dd7fed6e3c6bba00dbaeab4f.d121ad0a-318c-4e33-8a87-5d78061058a9", "lastUsedAt": "2022-11-24T09:22:20", "permissionGrantedMap": { "permissionGranted": { "2ffc09d4-24ec-497e-96d1-652bc5fc8ed4": true } }, "outsideSid": "f00d4e9d-dd1a-401f-8175-ac44e399d9d5", "id": "0f64e23f-1a5c-4e2d-8a19-32cb3e930db6", "state": "authenticated", "sessionAttributes": { "opbs": "882d0ce3-6a4f-4200-8383-b86605031f56", "response_type": "token id_token", "session_id": "0f64e23f-1a5c-4e2d-8a19-32cb3e930db6", "nonce": "24446688-5ee6-42c9-92f1-7c60a0cc6565", "client_id": "2ffc09d4-24ec-497e-96d1-652bc5fc8ed4", "response_mode": "form_post.jwt", "sid": "f00d4e9d-dd1a-401f-8175-ac44e399d9d5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "80708323-c88c-4568-a40f-d790f8d41bc1", "old_session_id": "0c8ad0cc-80f6-4636-9840-c170140f9caa" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:18" }, { "isJwt": false, "opbrowserState": "39e9c5b7-c174-43ab-b2c7-2478841a945b", "deletable": true, "dn": "jansId=6ccab9a6-33c0-4cd9-bb70-3f8e35b5178e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:20", "creationDate": "2022-11-24T09:22:18", "ttl": 0, "sessionState": "b9dd7d7af996e318d4f97de973661c7e473e2578bf53aa7f434c281535ec21ae.6fb7c7e6-ed87-4e29-8e90-ad54bc294331", "lastUsedAt": "2022-11-24T09:22:20", "permissionGrantedMap": { "permissionGranted": { "8f477e01-eb74-4ac0-837f-ca20837852c1": true } }, "outsideSid": "96a00bde-7fb9-4ca1-bc0e-c1764413c6f7", "id": "6ccab9a6-33c0-4cd9-bb70-3f8e35b5178e", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.HaZioaZhC9bt2-9iuejBZ9h7c_CXOJpRPbDWoJDvVXeUPTahpIdG6x6l2C89bJDa83RTJvMT3DEUC9sJxnCwMI-21cntPZIZ5RdS0rX8ZRLHSA1IFnogO4IzcxgSImB_jb8IZsHYTd6ADkpsPxv6qnnvB_-VSsK6aDkUTuxlMECkqpR2lsvwYaybvvPIpPaSVFq7LTwHp2f_WUHobp3j3gzTt8s-4iP0XPhD6s72T6bbg1o4glB0wDWFIXI0O5FDyUE0pouAlonRW6SMjUbZithqoVFIBu5HkmQRVo63oOiDGtMX-gItefoBdffH4mOWrKTYRcuO7lTlbQK9SAgllQ.aNFzjXmvgpHPz_ZX60fk-g.FuNASHijO_BXHm1UukVAS3X3YmWMcSHL8OfKKaf-spA2FXI95o3CN8HBZpo-D7uUotrKg2tAPJ73KlFPUCNKRgq4cJLlUoBf2I1ujtzmSPQJEkdoDznp6jmfIfQ7WeF0GgIHUmE1idhpqy6LIiO-VbINosXUgvtoUoDX3258ftuwfoT1SIWUB98X1rUIftUos_8dMr1XenpwloXYFbR3_V_ODDe3GgIYR6oxzHLAsW1Y3BemlwF9pX5gEYzJ1zT7HhygPGXhjis4SqFjFt-48L0CI0ksZvb_MfUkrZwScJlO1RoAtYyPUuNIJXdwmpbLJG_Ms51JpBjtjylBZFS0J6bIvLR5qGm_DoL-bIWhMebtl2nkKA1bP9lY6-eXDAIJ9uZnrEbUkk6pptkuz7rIgOs03b7WfY7WayKaB9UER46eqE7xkw1O_3MBiUVB7_VT-iNUhVJRx4kE-pGi8codkiij_7DqXZg3UsVtwZUJ_VaDOo2ukTtx6rg24ATwVQgsi6kv5toBJ_tgeiG0KUjZ49Os9dT6pyj6xZmUOHYozbq2KEoksO8I0D-H0lRB2ZD-_hHbgRjv8tAu_A3M6fgGYyR1l5lGj0bMb8o6Y3XJbKUbkZKVkX-pi0Sl_yhvHOivYzWUbMPBrofZkA3QJIrP3FCQcMjKE-p6UX1IQiWZseTBgGdrPOFKnpkjUN8SH_mAiTKVKIcCFJdpFaHx5o5W3-vCBKuulWmEjANSba-lmHxOgzkWoHEKAPfyNm7VRjIuJubM3mlO1wCIGt9AAa-iF1dzMTcaT4Y4nThu1rvkdSEY6KAwEeYpR1qu1hDwCWYm5IdremSrr6tfVMHoR9tBlfcJ1Au-xebTlE2nTdcdTiEhW9yUDmkO42iqhDCMf08JnxawkeCHt73XaYJO3tsRoLcAkgcN3sQKIyZTlTDCG_g.XfCY5NnzZl9TQzeXvhxVS_QzhaPZ3P9mu_SqdeZqe1U", "opbs": "39e9c5b7-c174-43ab-b2c7-2478841a945b", "response_type": "code id_token token", "session_id": "6ccab9a6-33c0-4cd9-bb70-3f8e35b5178e", "nonce": "07ddb230-691f-4553-8109-dbc055c34545", "client_id": "8f477e01-eb74-4ac0-837f-ca20837852c1", "response_mode": "fragment.jwt", "sid": "96a00bde-7fb9-4ca1-bc0e-c1764413c6f7", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d0f34d44-75f7-415a-8427-e04912a9834c", "old_session_id": "c3b463ac-2825-4105-a7db-46eac9a4f429" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:18" }, { "isJwt": false, "opbrowserState": "3d7497b2-a7e0-47c1-8276-b1e0b1a11a82", "deletable": true, "dn": "jansId=3f4f9c09-a482-47a8-b19d-9ca715561804,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:17", "creationDate": "2022-11-24T09:22:16", "ttl": 0, "sessionState": "bb344d1f8027bd93852fce3909568f7156cf5122dd832dbb326790e639e89e26.ea1c2ad3-de3d-4d0a-b772-2f19db0c4bd4", "lastUsedAt": "2022-11-24T09:22:18", "permissionGrantedMap": { "permissionGranted": { "25384b45-f419-4619-9b96-cb640aa56467": true } }, "outsideSid": "728685e7-4a6f-4524-8b3c-d500c6d35916", "id": "3f4f9c09-a482-47a8-b19d-9ca715561804", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.dCtPIUc3SnTSn7RF1ZZ4lTlPtl33H1cK25kc9Zx9VYoFbFx-zbLCoA.zluD3BdZYoKBoqFI.ZTca6qQ31q5OuB_d0t9veRbFe6jPfHkdgyANRssyAmHoaJh19zQiXJZ8B94PYt4cvnmjX59D-90dopVp7NrVDh8a2FQUgfwl7cIkk89mhp0scfTmdkf11mXdePcgh2gy0SiXEeCg9QkWBIOVI19jCZsUlJRsT2Mah4hy6Uxu74jLw65vaHN0gMK0KgmqpUtRnBAFDL1f600Psg08uMd29Yg2-rP5s1lWmtpFYPHeDGXPdxVwHynVCmAS0N3ZFYh6qiMXzhqtxSZUqBLhilTKx59ZXal1yRbQ-b5Ke_l-SDUeDJdeM8ryQuoipR3Z29o2tfWumq6YRdRhra3EXAf-A3ToTmUwYLFLN3-UNaIAUzA3VkzzzIJI6NkiKLdBmj15Iy_OKuPZL0gFvpccohXC2DXmT6A4HeMIB7dIwgdmagYBJ4TWUR52zYKChj8oNBoZt_xDZhAF5-WjXgdaLe-yoTyf7a2znU8uHuTrhqohAGXkuL8j0QL1nI3Qs0vMibTS0NFp0yMowiWVEAf76uokO9cVtnejhvkjB3Qy0t0j3b77zLK0-0ZXXjMjX6z-s_QdGIw2gOWFP3aZ7WwaBl_XouKEDQoq6p_xrd3atNY0yoc3ssBmCfccAq9CliwhqKnJlIoHg0xSTNHkARdeQGoafQ0nH6a4Im9Y3b3tu-lA1RUrL49ausrc9hHI4mt2-93TrbbEaQSyd2N4t639u3pXPwMzlaWN_EJNEY_CC6bP1f3j0HWMC49laRu_OTf9eBjx0pFHGWV9g-9IQR6B_XIKdlTPSqBU7mcqDu5EBGHDohCwPQmrx8ZLb3yrdzA4TdxRpiEC-jhT--QgABTiBkaarkAOkPRUegfzZQgxaVcx6wkkU1GH0L4wCYA1HsVAvScM5LMgPeD3oUwemH3SsYgcp00OFdODwYNnehgfiQ.uxgmr9L5oHwo0dNPKYH7TQ", "opbs": "3d7497b2-a7e0-47c1-8276-b1e0b1a11a82", "response_type": "code id_token token", "session_id": "3f4f9c09-a482-47a8-b19d-9ca715561804", "nonce": "89a2e63e-3751-4bec-90d2-13be66a0982f", "client_id": "25384b45-f419-4619-9b96-cb640aa56467", "response_mode": "fragment.jwt", "sid": "728685e7-4a6f-4524-8b3c-d500c6d35916", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "28b12b6c-275b-4de6-acb4-a80478ee8fb7", "old_session_id": "997da4ad-a419-4241-9a99-769edf941f9f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:16" }, { "isJwt": false, "opbrowserState": "955cf02d-be86-4b03-b2ec-f0e14db33fc4", "deletable": true, "dn": "jansId=8e80ea9e-5844-4c54-94a1-ac908bf78455,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:15", "creationDate": "2022-11-24T09:22:14", "ttl": 0, "sessionState": "9decb4587a35c795ee2d6445a5d7b80877c5d848cf514561634dbdc48d699776.951f7af0-130c-4f0e-b103-19b457970ea2", "lastUsedAt": "2022-11-24T09:22:15", "permissionGrantedMap": { "permissionGranted": { "f4872c04-c22a-4ab7-bed4-884c5cc20a23": true } }, "outsideSid": "f17d665b-28f1-45d1-8fa9-c940fc85feab", "id": "8e80ea9e-5844-4c54-94a1-ac908bf78455", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.RdtQNfRWkrHhbMDyPtGmodOExgGatj_h.xwDHL1J_wV0qxVsr.-E_kANumpWS3I201O8cjObuGlUb5SIBMhCbwWFveRe6KY8TDcB2fE3keu9a7qjNhLX896YimflLD-BLUGzYumBC8XD7e-4NZ4ivPjvDQLJ6rhtfvYmdd0xyw7S2Tvd8bafYxwsnyiCGdiPdt_ZWVc8W_R0oQ_ZPts8uBvTp2CEuoBGpL1zeY-_2JVUzerwib7d8_yrzfYqKQHhnyRMEljuPkHEPMH14VU1bh5GIMIdkQStYPp58YP6s9RB1qzPV-D5khQN9CvxNxPniF2-UE6ch5ZXtslaQrHpN9wBBnKE1O5uDABSiwgqYfe_N5D0ybEETNWdQHohZkR7nArFhMFSEDSMfYapzlviwpiQIrJMe_5wMRxGQGWuZr8gg4d5GFR33QMuobhD_G644p1iNrlB6nxLGyR-v6YOrXvSAwryeUvU4bKju2RIrxcczUPddTK4BQTl_LwDl8luovYS_wZ2t-sHWzjLvjzT9tFPmJBrjL7BPpazHVouLGzS1DwJjXDzE0zkg0fxXTO3bMrrPVNWgONkH6Kyd59uksZ4QXOk5r-qLwMD-tKjfXVEhL6XLI3_C_bnC2FFZax-ZP6A4O1xEjC-mjILPxXYl-fmdolefVNUslEy9GMF9RVTL277oc-DL9n9PVI7g3FTmAa9Ea1uGvEzTlTl1UlCnMiRJ16dNgBhcRZ3IiUXLNvuyxa78svJVILC570T303xrGeM3b-JBtfBk1XiJ1SM4sAyU4uYGHeywNHOq8O4RxIfmtRji1F9ZeUHPy7kI3M8IyxUZ4H8XTD_AUQ6Sl0ybI5sSVYcs6evVNGSJHGyN2ZULLGOpMeg_dcZwyapbO6W5RDtboPdHH6sR-8JNQJP_iUDSW1UZIxslQBEhiuZ9DLk2Y-OpaIbsGPvI51A3XwhPs9aSI6ThXD4GUJdbxt718gQ.3jtxKDaRJ0A-e7-GYsiETw", "opbs": "955cf02d-be86-4b03-b2ec-f0e14db33fc4", "response_type": "code id_token token", "session_id": "8e80ea9e-5844-4c54-94a1-ac908bf78455", "nonce": "f74f0621-b475-42d3-bd90-8a9d68ea3d58", "client_id": "f4872c04-c22a-4ab7-bed4-884c5cc20a23", "response_mode": "fragment.jwt", "sid": "f17d665b-28f1-45d1-8fa9-c940fc85feab", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9b9e16a3-cc22-4af4-8fcb-ce8c54dd4afa", "old_session_id": "6c26a9a0-39bf-4d40-abda-2a68661d3cf8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:14" }, { "isJwt": false, "opbrowserState": "5f4dc9b1-674f-4005-88f9-e65efb2198dd", "deletable": true, "dn": "jansId=8b922a84-98c1-4c47-9542-d9a38be3d076,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:14", "creationDate": "2022-11-24T09:22:12", "ttl": 0, "sessionState": "448078e34f7e243428d0040a3c6c06f778bf7c74d32a7c94b58765ad04beefe9.f54ed7e4-3b71-4930-bcee-c6be26bff5fb", "lastUsedAt": "2022-11-24T09:22:14", "permissionGrantedMap": { "permissionGranted": { "b4377671-d89e-470a-8714-bae02adb3cbb": true } }, "outsideSid": "c1a5f38f-6e6c-4574-bdb5-a6c17261b53e", "id": "8b922a84-98c1-4c47-9542-d9a38be3d076", "state": "authenticated", "sessionAttributes": { "opbs": "5f4dc9b1-674f-4005-88f9-e65efb2198dd", "response_type": "token", "session_id": "8b922a84-98c1-4c47-9542-d9a38be3d076", "nonce": "70c4352c-a8bc-4e68-8c79-c9b0381a31b8", "client_id": "b4377671-d89e-470a-8714-bae02adb3cbb", "response_mode": "form_post.jwt", "sid": "c1a5f38f-6e6c-4574-bdb5-a6c17261b53e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d8077e70-da65-459a-b694-1c1a1b01a06d", "old_session_id": "fa858331-b18c-4574-9e28-a12647bba018" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:12" }, { "isJwt": false, "opbrowserState": "4e46bba2-2769-4110-975a-5c4c4d56a073", "deletable": true, "dn": "jansId=bc1093aa-70ca-431e-b228-a3a89a342611,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:13", "creationDate": "2022-11-24T09:22:12", "ttl": 0, "sessionState": "19cac894cd2dd8e3c3619d1fc9f4a53d3cc9137767b0512e89aa6f06062a88de.88c22fba-b5ef-4544-afda-0f453300a15b", "lastUsedAt": "2022-11-24T09:22:14", "permissionGrantedMap": { "permissionGranted": { "342bf6ca-d740-4bf5-8e6d-f899bb43cef8": true } }, "outsideSid": "8bfe9931-9dd1-4bc3-9c14-c71d1ab8a522", "id": "bc1093aa-70ca-431e-b228-a3a89a342611", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI0NDFjOWU5NC0yNGQxLTQ1NzEtYTcwOC0xMTNkOWFjZmQ4NmUiLAogICJub25jZSIgOiAiYzM4Y2ZiMzYtN2NjNy00MTIzLWFmYmYtNzIyNDAxZmNiMWM3IiwKICAiY2xpZW50X2lkIiA6ICIzNDJiZjZjYS1kNzQwLTRiZjUtOGU2ZC1mODk5YmI0M2NlZjgiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmcmFnbWVudC5qd3QiCn0.lyzv6su-GMUNp_ViUPahaq4vPhto6jhpCQsr6Z3Gw-3DxCg7zOfLAdTfKAYtBHpGQWgSJItxdW-UqEVXvx264w", "opbs": "4e46bba2-2769-4110-975a-5c4c4d56a073", "response_type": "code id_token", "session_id": "bc1093aa-70ca-431e-b228-a3a89a342611", "nonce": "c38cfb36-7cc7-4123-afbf-722401fcb1c7", "client_id": "342bf6ca-d740-4bf5-8e6d-f899bb43cef8", "response_mode": "fragment.jwt", "sid": "8bfe9931-9dd1-4bc3-9c14-c71d1ab8a522", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "441c9e94-24d1-4571-a708-113d9acfd86e", "old_session_id": "7701fc9f-7187-485a-8dcc-6f9a109d5fa5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:12" }, { "isJwt": false, "opbrowserState": "675fb40c-584d-4dd4-b902-df89b8d7b0c6", "deletable": true, "dn": "jansId=6d243996-2afc-4028-a23f-a8f3eb542a80,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:13", "creationDate": "2022-11-24T09:22:12", "ttl": 0, "sessionState": "cf827c3db46d91eb544919a759151b82d076e84fa8492cfb2c7d8863875fcdfd.346683f1-4e22-436a-b428-ba24a2a38ecd", "lastUsedAt": "2022-11-24T09:22:14", "permissionGrantedMap": { "permissionGranted": { "c2b21b37-eba5-4fab-99b6-23ab6fa4a5de": true } }, "outsideSid": "c3cfefba-80c7-4169-b842-c0e612400395", "id": "6d243996-2afc-4028-a23f-a8f3eb542a80", "state": "authenticated", "sessionAttributes": { "opbs": "675fb40c-584d-4dd4-b902-df89b8d7b0c6", "response_type": "token id_token", "session_id": "6d243996-2afc-4028-a23f-a8f3eb542a80", "nonce": "820d2f02-5aa4-438d-901f-8203dfe36d99", "client_id": "c2b21b37-eba5-4fab-99b6-23ab6fa4a5de", "response_mode": "form_post.jwt", "sid": "c3cfefba-80c7-4169-b842-c0e612400395", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2f218c11-6bfa-4ae9-bf5a-c10d1c87e86f", "old_session_id": "9addcfdf-9987-4fc3-9b58-c94e321c68bd" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:12" }, { "isJwt": false, "opbrowserState": "8567a13b-9265-43e9-b680-34acfc7c28f2", "deletable": true, "dn": "jansId=afbd05a0-7567-44b8-88aa-89c72f85d5bc,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:10", "creationDate": "2022-11-24T09:22:09", "ttl": 0, "sessionState": "aff1273728c3eb05ac3032b538fd74c6e7e5a4513eed600c6251a43d5fea760c.05045d20-bd86-4bf1-9454-98fc370f6ee2", "lastUsedAt": "2022-11-24T09:22:10", "permissionGrantedMap": { "permissionGranted": { "91959a8d-f5ee-4e0a-8fe7-e9588b233e79": true } }, "outsideSid": "02763b19-209b-457f-888d-c54c3be2356b", "id": "afbd05a0-7567-44b8-88aa-89c72f85d5bc", "state": "authenticated", "sessionAttributes": { "opbs": "8567a13b-9265-43e9-b680-34acfc7c28f2", "response_type": "token", "session_id": "afbd05a0-7567-44b8-88aa-89c72f85d5bc", "nonce": "39259603-313d-4e9a-9a6b-f32b8a59a3d2", "client_id": "91959a8d-f5ee-4e0a-8fe7-e9588b233e79", "response_mode": "form_post.jwt", "sid": "02763b19-209b-457f-888d-c54c3be2356b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "02d278b7-9da1-460b-a63c-1f384b592c35", "old_session_id": "18f4a051-6c2f-4d5d-8d7b-347f5a77ccaf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:09" }, { "isJwt": false, "opbrowserState": "020f4650-1bce-48ca-9b11-2c541351fa76", "deletable": true, "dn": "jansId=90b89c1f-b044-4d02-a786-22fd7e1b3ec1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:08", "creationDate": "2022-11-24T09:22:07", "ttl": 0, "sessionState": "4aec3afbb4449e647a735d638921c3e1001dfac5c26b749304982b5b3df54435.444bee54-a65d-4ccd-a80a-9a00cd0aa875", "lastUsedAt": "2022-11-24T09:22:08", "permissionGrantedMap": { "permissionGranted": { "f8d7978c-5249-41b6-975a-82d35120788e": true } }, "outsideSid": "f7aade61-c699-40fe-8da2-cf3b1a9b90bc", "id": "90b89c1f-b044-4d02-a786-22fd7e1b3ec1", "state": "authenticated", "sessionAttributes": { "opbs": "020f4650-1bce-48ca-9b11-2c541351fa76", "response_type": "code", "session_id": "90b89c1f-b044-4d02-a786-22fd7e1b3ec1", "client_id": "f8d7978c-5249-41b6-975a-82d35120788e", "response_mode": "fragment.jwt", "sid": "f7aade61-c699-40fe-8da2-cf3b1a9b90bc", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "adbe27cd-49a5-40f5-b438-6eb85d7461d9", "old_session_id": "dd31ab5c-ce2e-4b98-aac4-d2486dd3e1a5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:07" }, { "isJwt": false, "opbrowserState": "c0b69096-15b6-44dd-a7d0-4cf7c2d2bef4", "deletable": true, "dn": "jansId=a0dbcc85-54ac-4dbd-9c26-e67993e74639,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:08", "creationDate": "2022-11-24T09:22:07", "ttl": 0, "sessionState": "cb00cf0ff8fb798c91d5674231f687dbc9f55266dfddb1642802ce3b9cd7c9e0.1a4b0a85-eac5-4e08-be22-e44314857571", "lastUsedAt": "2022-11-24T09:22:09", "permissionGrantedMap": { "permissionGranted": { "f8bac838-76ce-4f25-911d-b0c7e0c386e9": true } }, "outsideSid": "bd758dd4-5a12-44e7-820c-4e92b8d1ae14", "id": "a0dbcc85-54ac-4dbd-9c26-e67993e74639", "state": "authenticated", "sessionAttributes": { "opbs": "c0b69096-15b6-44dd-a7d0-4cf7c2d2bef4", "response_type": "token id_token", "session_id": "a0dbcc85-54ac-4dbd-9c26-e67993e74639", "nonce": "65087c7c-d57f-4999-9b5d-32ffbda66007", "client_id": "f8bac838-76ce-4f25-911d-b0c7e0c386e9", "response_mode": "form_post.jwt", "sid": "bd758dd4-5a12-44e7-820c-4e92b8d1ae14", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6d988797-ddbd-4017-9f68-d880fa7f8155", "old_session_id": "1228bd19-4a27-4f16-a2ca-9f89dc4c3c25" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:07" }, { "isJwt": false, "opbrowserState": "5ae54377-294d-493c-9757-dc2e59fcf4bc", "deletable": true, "dn": "jansId=0c32a596-0b13-409a-82c8-31fa769d1d0f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:08", "creationDate": "2022-11-24T09:22:07", "ttl": 0, "sessionState": "f179bc0f45817e646736f83764875cf714d6b6c7d7afca6b407addd269176add.b308c623-26be-4440-ae6b-21011e6b6558", "lastUsedAt": "2022-11-24T09:22:08", "permissionGrantedMap": { "permissionGranted": { "acd581f5-a738-492e-8919-9c90639fe72a": true } }, "outsideSid": "94c4f785-a894-4a36-968f-5feee201e634", "id": "0c32a596-0b13-409a-82c8-31fa769d1d0f", "state": "authenticated", "sessionAttributes": { "opbs": "5ae54377-294d-493c-9757-dc2e59fcf4bc", "response_type": "token", "session_id": "0c32a596-0b13-409a-82c8-31fa769d1d0f", "nonce": "1381bb4c-2584-4b2e-812d-ba22345250f9", "client_id": "acd581f5-a738-492e-8919-9c90639fe72a", "response_mode": "form_post.jwt", "sid": "94c4f785-a894-4a36-968f-5feee201e634", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1b308046-588f-4cb9-a716-4b8929aa7d12", "old_session_id": "5010fe6a-9123-47c2-8692-1a5e53c8c86d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:07" }, { "isJwt": false, "opbrowserState": "c8d68a12-3cb9-4ab3-9660-acde66b92230", "deletable": true, "dn": "jansId=65e008b0-a036-476a-826d-3e6fcdae5c56,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:06", "creationDate": "2022-11-24T09:22:05", "ttl": 0, "sessionState": "758ccbce7f08309f9d31b3521e37b0c9ec2be9d08af9669280f627b6abcbbc14.dfc5276e-fda5-4dc3-858e-aa47311715c7", "lastUsedAt": "2022-11-24T09:22:07", "permissionGrantedMap": { "permissionGranted": { "35955fa0-3665-4f8d-908d-6f68e19d98fe": true } }, "outsideSid": "3bd90709-fe8e-4b16-a6e7-09165a2810b5", "id": "65e008b0-a036-476a-826d-3e6fcdae5c56", "state": "authenticated", "sessionAttributes": { "opbs": "c8d68a12-3cb9-4ab3-9660-acde66b92230", "response_type": "code id_token", "session_id": "65e008b0-a036-476a-826d-3e6fcdae5c56", "nonce": "a7802ed3-5d14-4589-a80c-4dfab8efbc99", "client_id": "35955fa0-3665-4f8d-908d-6f68e19d98fe", "response_mode": "fragment.jwt", "sid": "3bd90709-fe8e-4b16-a6e7-09165a2810b5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "53922bf3-0de7-4fd9-98c4-ed636a90b01a", "old_session_id": "58f560d5-bf40-432f-bd78-2913d5b90fc2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:05" }, { "isJwt": false, "opbrowserState": "0b957c58-b383-472c-92aa-0c359aa76488", "deletable": true, "dn": "jansId=129438fb-b922-4ea4-a8f5-7e4641d3fea5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:06", "creationDate": "2022-11-24T09:22:05", "ttl": 0, "sessionState": "464d0bbf79141a23540bfc5cbbb85ec43e3454ac251a2a11ddcd96354d7f7edd.96f422a9-3617-4f34-b958-c3d018c0e02a", "lastUsedAt": "2022-11-24T09:22:06", "permissionGrantedMap": { "permissionGranted": { "ccfbafd4-df8d-471b-a57d-87ff7d50a2eb": true } }, "outsideSid": "ee2bdea1-f18f-4d61-b35b-ce2fa2997224", "id": "129438fb-b922-4ea4-a8f5-7e4641d3fea5", "state": "authenticated", "sessionAttributes": { "opbs": "0b957c58-b383-472c-92aa-0c359aa76488", "response_type": "code", "session_id": "129438fb-b922-4ea4-a8f5-7e4641d3fea5", "client_id": "ccfbafd4-df8d-471b-a57d-87ff7d50a2eb", "response_mode": "fragment.jwt", "sid": "ee2bdea1-f18f-4d61-b35b-ce2fa2997224", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "81d7cac7-0f81-40f6-9b3f-59f88a1f2618", "old_session_id": "0fdafc5d-0b79-49b4-8f61-b005f4682171" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:05" }, { "isJwt": false, "opbrowserState": "9ceba24d-3b09-4663-a98b-8709caccd7c6", "deletable": true, "dn": "jansId=b2d2561f-a2a2-4834-a0c4-d58ebad74cc3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:06", "creationDate": "2022-11-24T09:22:04", "ttl": 0, "sessionState": "26c49df4ddc8a11d90edccf7836925c20c1a01ad70f6eeea1acfbf84bfec1531.393bb29b-8274-40a6-992e-31206a2c8a54", "lastUsedAt": "2022-11-24T09:22:07", "permissionGrantedMap": { "permissionGranted": { "9c4fbf43-f535-4f23-8470-3404f0c2a7ad": true } }, "outsideSid": "7ccb63d8-dc5c-49df-abf2-1a85be23bbf4", "id": "b2d2561f-a2a2-4834-a0c4-d58ebad74cc3", "state": "authenticated", "sessionAttributes": { "opbs": "9ceba24d-3b09-4663-a98b-8709caccd7c6", "response_type": "token id_token", "session_id": "b2d2561f-a2a2-4834-a0c4-d58ebad74cc3", "nonce": "fdbb9e08-6628-4183-9aea-91444883f3c4", "client_id": "9c4fbf43-f535-4f23-8470-3404f0c2a7ad", "response_mode": "form_post.jwt", "sid": "7ccb63d8-dc5c-49df-abf2-1a85be23bbf4", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "491db3f3-e86b-47b0-b1ea-4f956b7e57b5", "old_session_id": "ffc55ce9-a6d9-40f2-b8f2-6640000b8821" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:04" }, { "isJwt": false, "opbrowserState": "1d105f36-f1d2-4a23-9edc-420bfa183931", "deletable": true, "dn": "jansId=4a420f8b-3f5a-424b-bb3e-dc40a1719ee0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:06", "creationDate": "2022-11-24T09:22:04", "ttl": 0, "sessionState": "ecb65d98d8f2843162147961135bb1921d3fc67cc92b650e97325f814ee0976a.f3ceb7d4-f36d-4c4e-840a-3079bd97d2ff", "lastUsedAt": "2022-11-24T09:22:06", "permissionGrantedMap": { "permissionGranted": { "a0ff8572-3b7c-42bd-868b-a3145b487fad": true } }, "outsideSid": "1487ee6e-356f-453b-8948-d75474088d7f", "id": "4a420f8b-3f5a-424b-bb3e-dc40a1719ee0", "state": "authenticated", "sessionAttributes": { "opbs": "1d105f36-f1d2-4a23-9edc-420bfa183931", "response_type": "token", "session_id": "4a420f8b-3f5a-424b-bb3e-dc40a1719ee0", "nonce": "329d1478-f1d1-42c1-9305-51a9f3070285", "client_id": "a0ff8572-3b7c-42bd-868b-a3145b487fad", "response_mode": "form_post.jwt", "sid": "1487ee6e-356f-453b-8948-d75474088d7f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c4bdc8c1-1b58-491d-8040-1a44987d1208", "old_session_id": "726401ce-8114-488b-8851-fff27c93c4de" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:04" }, { "isJwt": false, "opbrowserState": "9c83694f-3f2e-4189-b441-dc404091f8de", "deletable": true, "dn": "jansId=860e065b-c7c2-4de2-b3a1-7a01365de49a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:04", "creationDate": "2022-11-24T09:22:04", "ttl": 0, "sessionState": "14322bc68706c719a2c04eeebf31b282c0d1b57dd660425e932a0638c73660c3.1e9db94b-ea34-457b-9b30-9d6ccf3677e9", "lastUsedAt": "2022-11-24T09:22:05", "permissionGrantedMap": { "permissionGranted": { "0d5a362d-6a26-4644-a806-34ddf32f1de0": true } }, "outsideSid": "4c7773d8-78f8-4cf9-b527-a3b395c82bd7", "id": "860e065b-c7c2-4de2-b3a1-7a01365de49a", "state": "authenticated", "sessionAttributes": { "opbs": "9c83694f-3f2e-4189-b441-dc404091f8de", "response_type": "code id_token", "session_id": "860e065b-c7c2-4de2-b3a1-7a01365de49a", "nonce": "2f870a6b-b6c8-48bd-9c77-27e010480862", "client_id": "0d5a362d-6a26-4644-a806-34ddf32f1de0", "response_mode": "fragment.jwt", "sid": "4c7773d8-78f8-4cf9-b527-a3b395c82bd7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "827ee7d8-4516-4102-90e0-c3331eb7053e", "old_session_id": "f7f3b832-e3c3-4b2d-9873-c182abd0d487" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:04" }, { "isJwt": false, "opbrowserState": "959ced1f-abdb-4042-9703-282c841f50c1", "deletable": true, "dn": "jansId=9e5b7f29-bfcb-4652-8da3-4284cf85e181,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:03", "creationDate": "2022-11-24T09:22:02", "ttl": 0, "sessionState": "42f3fc1268bf17b5183310e4fb22b4394983b6ff7a39db73a4d00d0a46b32046.46d6beb1-38bd-40b0-93bd-de958f53f11c", "lastUsedAt": "2022-11-24T09:22:04", "permissionGrantedMap": { "permissionGranted": { "3ab20a30-975a-4d8e-abc7-895a6d0f222e": true } }, "outsideSid": "94d62a4e-3fe1-42f7-b598-9a87a6bd625a", "id": "9e5b7f29-bfcb-4652-8da3-4284cf85e181", "state": "authenticated", "sessionAttributes": { "opbs": "959ced1f-abdb-4042-9703-282c841f50c1", "response_type": "code", "session_id": "9e5b7f29-bfcb-4652-8da3-4284cf85e181", "client_id": "3ab20a30-975a-4d8e-abc7-895a6d0f222e", "response_mode": "fragment.jwt", "sid": "94d62a4e-3fe1-42f7-b598-9a87a6bd625a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8710064e-b5a1-469e-a43e-acab9cf155fb", "old_session_id": "e556e2d0-9261-44c7-95e5-dfd2a3d3409b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:02" }, { "isJwt": false, "opbrowserState": "3815fdc5-5d00-47c1-bb02-c1d84200a94c", "deletable": true, "dn": "jansId=2aa15072-ac2c-4706-bdac-83e610a1472d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:03", "creationDate": "2022-11-24T09:22:02", "ttl": 0, "sessionState": "5735ba4b66bff1e2d4f15c04fc1663c699a8ae7ba7082d2218931a69e9475eb0.8289aa54-68bc-450a-9863-6586c209fdf5", "lastUsedAt": "2022-11-24T09:22:04", "permissionGrantedMap": { "permissionGranted": { "1d44cba7-f0bd-4b43-a239-fe589d36b5bf": true } }, "outsideSid": "4459bfcc-786e-4d91-b175-4caeeaa4efb6", "id": "2aa15072-ac2c-4706-bdac-83e610a1472d", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiNDkzNDM4NmUtNzgwZi00ZmYyLWIyMDgtNjJhMmY0Mzk5NTA1IiwKICAibm9uY2UiIDogImMyODY3NTRkLTdhNDItNDAwYS1iOGViLTQwYjA0MTJlOTBjMCIsCiAgImNsaWVudF9pZCIgOiAiMWQ0NGNiYTctZjBiZC00YjQzLWEyMzktZmU1ODlkMzZiNWJmIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZm9ybV9wb3N0Lmp3dCIKfQ.JPmOKrr-Rh216MeOerL49_kCGXWGgVJxEFzt_1XSnxsTR1Cbwul0XNfYtmLQw3l1XpnJjJYJ-Ws-nD4fWb3VznBWzACgk1ll2cjKjgOrFWG6_MogqQQS8aLurYyLjZqWD68KrsazayPjilxyqdIevfchdgxBmHbi7-rIz1qg_ieJccMDTZ6D-c2Cy0gsTgeCmDl3ly0uwjkyCCohugNZQab37b4-g3bRbztqU0LoxXa76dwI6M_xUugpAMEkpWGcejpZivag5xavTSB293oVu39SYyqpZa-g3O0y01N8Aqs9UTZOfPag791H2rlcAD4424fQBtU2HSmVoCmm-rwlyQ", "opbs": "3815fdc5-5d00-47c1-bb02-c1d84200a94c", "response_type": "token id_token", "session_id": "2aa15072-ac2c-4706-bdac-83e610a1472d", "nonce": "c286754d-7a42-400a-b8eb-40b0412e90c0", "client_id": "1d44cba7-f0bd-4b43-a239-fe589d36b5bf", "response_mode": "form_post.jwt", "sid": "4459bfcc-786e-4d91-b175-4caeeaa4efb6", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4934386e-780f-4ff2-b208-62a2f4399505", "old_session_id": "b997f45d-73a0-457c-b7f7-bd163f791ec6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:02" }, { "isJwt": false, "opbrowserState": "aef2c6a0-908c-4a5d-9614-c5371d6e64da", "deletable": true, "dn": "jansId=87764127-bea3-4fca-8f90-a5c52fe4c1c4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:03", "creationDate": "2022-11-24T09:22:02", "ttl": 0, "sessionState": "7ac63b388067c4936b4c91e07097eac508ab7a460391e6c51f7209c553bfc0e4.261386f1-8b0b-432a-af88-ea0dbf0b7535", "lastUsedAt": "2022-11-24T09:22:04", "permissionGrantedMap": { "permissionGranted": { "59319861-5c04-4cdc-b6fd-230b8f2f917b": true } }, "outsideSid": "82fd7b96-65d3-424a-a578-9c7d9f07e665", "id": "87764127-bea3-4fca-8f90-a5c52fe4c1c4", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI5NGM1ZWIzOC0yNWE2LTRjZjUtYjM5NS1iMTg1N2Y4MWZmNjEiLAogICJub25jZSIgOiAiYWFhYzEyMGQtYTg5Mi00ZmYzLWEyNWYtYjhjYTVmMjc1NzI3IiwKICAiY2xpZW50X2lkIiA6ICI1OTMxOTg2MS01YzA0LTRjZGMtYjZmZC0yMzBiOGYyZjkxN2IiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.gC9liXVnMChMbMC3PeDTt9ba1D6WY9j26zUtnu4w6ufO74_rpThv7aIh1dv6nWJjo8_mPyv0rTSIWngQCmQ4CMhtb_2KPL8CsiDJMG_sc-Ijx5CHkt-HffqbTqewT65ecYGf-hiyzM5iJjEPLphMxderkNCobot5s3OM_fKL59pL1ybCuhsH4at5MqMHhOKzk0zlGhULNb_SCbnl1gP9U6sGtJxoKU6ru7BtqvAN7Bh2-77LiKAdtA_yx6kKKBBhtEnYmHGJ-N5hrhfVVWMcihpcmjVt0eziroCVDWaC9dif8A2irY30kisB2AVyJnODcW308OjPjQTBC_It2oGyNQ", "opbs": "aef2c6a0-908c-4a5d-9614-c5371d6e64da", "response_type": "token", "session_id": "87764127-bea3-4fca-8f90-a5c52fe4c1c4", "nonce": "aaac120d-a892-4ff3-a25f-b8ca5f275727", "client_id": "59319861-5c04-4cdc-b6fd-230b8f2f917b", "response_mode": "form_post.jwt", "sid": "82fd7b96-65d3-424a-a578-9c7d9f07e665", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "94c5eb38-25a6-4cf5-b395-b1857f81ff61", "old_session_id": "d5b8f8b3-4a7f-4327-9f0d-431f9f48deaf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:02" }, { "isJwt": false, "opbrowserState": "2a9acfab-dc8c-4c85-a95b-f84b54f6af89", "deletable": true, "dn": "jansId=24565e4a-08a3-4016-84e2-bd6fe0e9f3bb,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:02", "creationDate": "2022-11-24T09:22:01", "ttl": 0, "sessionState": "f68e905d383eda86278b27371c0beca4a7a4f4dc0768279b2910e12eafb5dca5.7fa0ecf9-b4b7-4b1b-a32c-c69799adbe7d", "lastUsedAt": "2022-11-24T09:22:03", "permissionGrantedMap": { "permissionGranted": { "123fd66d-dd66-4d9f-a2da-84b5d9c61cb2": true } }, "outsideSid": "d2482e95-cf17-487c-8358-7452d8aea928", "id": "24565e4a-08a3-4016-84e2-bd6fe0e9f3bb", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiI0Y2E3NjMyMi1mY2ZkLTQyNWQtOTc0ZS0zMjBlNTZmM2U2YjFfZW5jX3JzYS1vYWVwIiwidHlwIjoiand0IiwiZW5jIjoiQTI1NkdDTSIsImFsZyI6IlJTQS1PQUVQIn0.mmEGJYVxg71l-gFbb0NgPKYqCYegIVS2BitFEU6fWHgs5sj9i8tEtPSz8kZTARjNDuM9t1KvhyA22QtZzudYOW5xfrQms7090yJrDVHjyMI4SvVyNEOnSvMeLOzZU0JI1VRGSJvUt1Hgs_q11tt8v3F0kAY4D-gB-KkHPNbrPqIyMvNmENL0hV5fDxtTTcHzQRXzgaP0LxW8NGEVEsJP0OOi9BBxKEhSCVivScXskVMphMYanYMJWUNr2PiqRaowzpDWx8bAzcTgEJfkKBUhERthsMolErPqsJ7BtO3SVFdOSwFkDhLleZAtwVNvh773MLklWWDSfBDKZils6eksuA._cZe7S1xkZl2s0l4.U7cgS72Z8jk2EqIf7Gu8YoHU1Jz_G8qMlDJInWEq1G-t1KDiQ-zpCwaiJw-Ys6bjJGz_xYG8JLNUtcLcc2xPlsjr_a00cvhZPtqpy2wL1q4MLEo4TJFKWW9ZapWL7NR4D2HV1tKOgV40o_WVZY5L8Xa2MVxCNWT6vRdNAWzH10vfgEnOGVGT0EgLA-QzPTPWpS3FfaVfCSiNXvf2bsS1aCfNtZEWPuGqNSqpt4Wts-XmzaOo21AhMKv82jWyyU0LoxHLlRUn6athWvNMAL4MM-7-kBlFU-KRowlrW7ErjiEP_mXakL5pWQ1YWFtP6_C5cnVB4MDGVzxmkToPChwsFuIimnC_93pRVzAIHWAavNoH9PBUO_S7AshKX0imiv56AhmKKAJacw-DMnBl5LcFzuhTSIf4GT9cRl_Scd1vpeZMf81Q4ibd4cuRemi43ooaXk26wDQLmXBfiiSwP_uz9otwB6a359MUsBcwNpOzowRqZRRHhGBy7EppeOsBZy3ONUCIObS3wQUvf7Ox0w2VNAKxsJqPo_j8pc6siBC4Q1B8aq7txCvO6uKmq5R8CWiqKxYQiAoEC7yNia1vHKNeMmu86o95-_z_UYz6AxgFuHck6YliETspL7Mr0oTmHEitFGqh7aJilJd6fqkB0RhoUOfLK9okdWlhHje23cQtoQ--949goae_TeAcGgy3374C9dn_mOLiHvmOhuAa8j0eVG3TUUFd8Fy-joKzQd-jXJ65RXvT_xYcrMn2AyXbFBgN3UODldv3lvBmfuqHfIUh660tPLSFHlvNYXYXQuSuacI7JTV_K3XizhOBzSSnVvBBGdPlprSExXntov_CVzMu1wuZwMT1gxqgC0Gh8IAJdqJ6TahFes-G6S7e7QG7_P7yq-Z7l8fxmo1hfIh64wuOQ5dd.vvrRwzE31H39TXXINGGUAw", "opbs": "2a9acfab-dc8c-4c85-a95b-f84b54f6af89", "response_type": "code id_token", "session_id": "24565e4a-08a3-4016-84e2-bd6fe0e9f3bb", "nonce": "5d1a1d40-64cf-40fe-b0a1-d5fa90ac2bf7", "client_id": "123fd66d-dd66-4d9f-a2da-84b5d9c61cb2", "response_mode": "fragment.jwt", "sid": "d2482e95-cf17-487c-8358-7452d8aea928", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "61203517-c68f-46e0-aa95-a5544efc2533", "old_session_id": "e1db541b-99a7-4a87-a15f-47a6ef00c8c0" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:01" }, { "isJwt": false, "opbrowserState": "6b76e352-ea50-4052-b9b4-63d68d5164d2", "deletable": true, "dn": "jansId=4a07e18d-50a0-4035-9119-724cb97a8dbe,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:01", "creationDate": "2022-11-24T09:22:01", "ttl": 0, "sessionState": "6f978d33fd2747cfb34aabc2a28a9df725ab91ce3c203409b8af70893f457b6d.01306a34-672b-4597-a78c-9968373e6fb2", "lastUsedAt": "2022-11-24T09:22:02", "permissionGrantedMap": { "permissionGranted": { "8796dd16-7421-40cc-95c2-c5536f780177": true } }, "outsideSid": "9ab06c19-ae4f-4849-b915-c675a744df9e", "id": "4a07e18d-50a0-4035-9119-724cb97a8dbe", "state": "authenticated", "sessionAttributes": { "opbs": "6b76e352-ea50-4052-b9b4-63d68d5164d2", "response_type": "code", "session_id": "4a07e18d-50a0-4035-9119-724cb97a8dbe", "client_id": "8796dd16-7421-40cc-95c2-c5536f780177", "response_mode": "fragment.jwt", "sid": "9ab06c19-ae4f-4849-b915-c675a744df9e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "896002d6-2233-4ec0-b074-40f3d09a101b", "old_session_id": "e2e81490-e544-412c-9cd0-48b0804481f5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:01" }, { "isJwt": false, "opbrowserState": "4b8afffc-ecd9-447e-94af-5fe52454d8bc", "deletable": true, "dn": "jansId=79acecac-208c-4e8d-9465-48dfeadffeb1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:22:00", "creationDate": "2022-11-24T09:22:00", "ttl": 0, "sessionState": "5eef1150254345212e3b871d8ebf628dd76581d400539d45b6e36c5dd95ca347.600e4736-797a-4a35-b0ee-9c60a2670810", "lastUsedAt": "2022-11-24T09:22:02", "permissionGrantedMap": { "permissionGranted": { "08596fe2-05f6-4d28-95fe-83e23ae8e3e6": true } }, "outsideSid": "09807a03-f194-40f4-af59-d0dde78d1869", "id": "79acecac-208c-4e8d-9465-48dfeadffeb1", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiNGQ5NjA3NDUtYmU5OS00YmQ1LWJlMzUtN2RiZGEyNmRhNDc5IiwKICAibm9uY2UiIDogIjEyNmZhNDc1LTBmN2YtNGUzOC04YWM0LTNlODI3ZDYxZjQyNCIsCiAgImNsaWVudF9pZCIgOiAiMDg1OTZmZTItMDVmNi00ZDI4LTk1ZmUtODNlMjNhZThlM2U2IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZm9ybV9wb3N0Lmp3dCIKfQ.NWT6P5A_YC-090_5qi6c3M0ywYSTM8tQ1vJdmKOqOCRzK0xiVkIfH6ZgiH38UWskBFbLVV4RO_7I9N4cL9gch7nTKMUESuyTrx9RH94Ltq7O54mJPNj2jK1OsdQGUUjEFG3SAwDS-hZAz_U8l__OmImiCgAuS7q4CNmJ8OeZHO6TY3CSAxdNma18avAJjlhxmgv0ZMVNBdbHQTmCXpE_MgveFK8jdVS9QxJJTv5kE4_HyLgJZ_mpMDWxwj-15BvR4tiSBE-OBb0ZuZLxd5zPSm-YJ0kWEeFBCwSQtdEVTuOZ4SZFx-i7EKHWWHgT0mwHarkNO1KIpwd60bmUjsrYJw", "opbs": "4b8afffc-ecd9-447e-94af-5fe52454d8bc", "response_type": "token id_token", "session_id": "79acecac-208c-4e8d-9465-48dfeadffeb1", "nonce": "126fa475-0f7f-4e38-8ac4-3e827d61f424", "client_id": "08596fe2-05f6-4d28-95fe-83e23ae8e3e6", "response_mode": "form_post.jwt", "sid": "09807a03-f194-40f4-af59-d0dde78d1869", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4d960745-be99-4bd5-be35-7dbda26da479", "old_session_id": "ef637927-ab3d-4f41-89e9-e16e98df9013" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:22:00" }, { "isJwt": false, "opbrowserState": "c5e1db07-927f-40e4-a798-e9ce49366c56", "deletable": true, "dn": "jansId=20774ecc-a176-4f5e-8cac-e6908570cac4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:59", "creationDate": "2022-11-24T09:21:59", "ttl": 0, "sessionState": "8b1986dd6e5c163294f9f9b8cbcf0b384b1a79ab7ee6a366397db7e0399e49c8.93b3991d-0d2a-4cf4-b6d3-4305d3f2423c", "lastUsedAt": "2022-11-24T09:22:00", "permissionGrantedMap": { "permissionGranted": { "64c17b36-b962-41d5-9642-76aae68b4c24": true } }, "outsideSid": "d32b1c18-15e4-4fd1-8b43-5531b81e0690", "id": "20774ecc-a176-4f5e-8cac-e6908570cac4", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIxNTM4YjE2MC1lMDQyLTQxNGItYjgyZS1iNzZlZGMxODM5OTEiLAogICJub25jZSIgOiAiNGI1ZmQ5MDMtMjVlNi00ZDgyLTliYmItZTNmZGQzNjA5MzY4IiwKICAiY2xpZW50X2lkIiA6ICI2NGMxN2IzNi1iOTYyLTQxZDUtOTY0Mi03NmFhZTY4YjRjMjQiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.PvbRoci0RF0nkwIzwR6my-Vv-KSNExC3Mh2DG_vjZoYcmycnADQ9yJcFbLB-0IDx4S5LX1OJ2RrcU9Dzki0oxoYHN3U9IiqJgH4Rc0WHBemp4ZTGKkJJ1Zq7k47KkDkku7T-NnyRqSOc3K3shss9QzwAVg-lF-h987116Av3w4vPTBoLyR6Hx_aMBDi8wR_DmhabZB7qyVfD5kOSle1kxhN7PTkevwJO1EJiMGG404EeIcNobVOI17kwffMFuio52v_v-_ony0GSCgkb8E0cpEna8gzFrmVIQfd2k6866YF87_JhtHX_GbBXqJTt4TNU-yao3QW7ZZai0zBUh-ixXg", "opbs": "c5e1db07-927f-40e4-a798-e9ce49366c56", "response_type": "token", "session_id": "20774ecc-a176-4f5e-8cac-e6908570cac4", "nonce": "4b5fd903-25e6-4d82-9bbb-e3fdd3609368", "client_id": "64c17b36-b962-41d5-9642-76aae68b4c24", "response_mode": "form_post.jwt", "sid": "d32b1c18-15e4-4fd1-8b43-5531b81e0690", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1538b160-e042-414b-b82e-b76edc183991", "old_session_id": "458a7e40-6df2-4147-828d-d5b31baca98b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:59" }, { "isJwt": false, "opbrowserState": "817a3fbf-3171-4d59-9fe6-2072edfdef43", "deletable": true, "dn": "jansId=828d9b6f-dc59-4ac7-b9fb-0f826b67f200,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:59", "creationDate": "2022-11-24T09:21:58", "ttl": 0, "sessionState": "b5a1abc0551d5536cdcdfce83f6717dd4bdd3e5d016225ebc2cf66bb584f6ec1.d284466b-6b12-479c-afb2-490ffb4e1a39", "lastUsedAt": "2022-11-24T09:21:59", "permissionGrantedMap": { "permissionGranted": { "74e151a0-080e-4fc3-948e-14e200015846": true } }, "outsideSid": "9edceff8-1d25-40de-8557-1a1f5af8aa80", "id": "828d9b6f-dc59-4ac7-b9fb-0f826b67f200", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiYTFhMTJlNTctMDkyOS00YTAwLTk0YzgtODkxN2MzZGY4NWNlIiwKICAibm9uY2UiIDogIjdjNGQ2NGJlLWE2ZmYtNGFkNi05YjI0LTc1ZGM5ZjU2ODQ1NiIsCiAgImNsaWVudF9pZCIgOiAiNzRlMTUxYTAtMDgwZS00ZmMzLTk0OGUtMTRlMjAwMDE1ODQ2IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZm9ybV9wb3N0Lmp3dCIKfQ.fm_IpXsQ7XjztvEeL5B6G0mpZChQaS6f2xxq1DiDtyTvaemO6BUn8YPicrxERSBNsG7_VC0811VmprcGiuIv9pP0V_WzLtWBKTKoFPzwh2LaJFFMoIBvXFHgq1BmoNYHYorHaMT4-qXVoQwca4PW1e8FjANlt71HhFxijm8AbE-CVDwjZNusvxZCfsEXbOaftDN5FUylB3Frk1m7rQFxIInwZ6lgU8EkJW1_BO2gmRC_iSQb2cS_U-dK_KGQDjhEWrv0FWBw9LsdY_puTBkYQ43E7OW1atPxVkRALR18zMDEteirwqVLSJHXkU19AfThrMs1IQPNjVHbaZklDWX7nQ", "opbs": "817a3fbf-3171-4d59-9fe6-2072edfdef43", "response_type": "token id_token", "session_id": "828d9b6f-dc59-4ac7-b9fb-0f826b67f200", "nonce": "7c4d64be-a6ff-4ad6-9b24-75dc9f568456", "client_id": "74e151a0-080e-4fc3-948e-14e200015846", "response_mode": "form_post.jwt", "sid": "9edceff8-1d25-40de-8557-1a1f5af8aa80", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a1a12e57-0929-4a00-94c8-8917c3df85ce", "old_session_id": "0d55aeea-6561-478d-b803-f60ae1246e30" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:58" }, { "isJwt": false, "opbrowserState": "158bfd6a-7de5-45a2-8753-dc121aa4afc2", "deletable": true, "dn": "jansId=70e8e034-d01d-472d-9d7c-210d3d432b50,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:58", "creationDate": "2022-11-24T09:21:57", "ttl": 0, "sessionState": "a69a7a28c0e846b9e6dd64ddd7c50fed7ddb9ac582abef2068c315edbe997583.eb8b5a06-2f34-4ac0-b00e-bdf425e25bfa", "lastUsedAt": "2022-11-24T09:21:58", "permissionGrantedMap": { "permissionGranted": { "71e84255-e277-46df-9396-3e402c8f05ed": true } }, "outsideSid": "5080abec-3785-47ff-96ae-184da5d59ac6", "id": "70e8e034-d01d-472d-9d7c-210d3d432b50", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIxNzU3ODdlYS0xODdjLTRmMDMtYjQ3YS0wOGEyODY1MDkyM2EiLAogICJub25jZSIgOiAiNTBhMTJlMTYtNzQ4OS00ZWI5LTkyZmUtYTM3ODc1YWY2NmU5IiwKICAiY2xpZW50X2lkIiA6ICI3MWU4NDI1NS1lMjc3LTQ2ZGYtOTM5Ni0zZTQwMmM4ZjA1ZWQiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.I82T3oochfcXYY2jf7AON3JFeNYeB_ziok6m6nlJi8CRFeH254dub-sH4Yh3MW33zpPc2X2VlENY29y3nvNNEMhc_NSUs2yo95nv1ZyKKSAT1ed0dGj5TNmE3c00dA8BcwPKsIHo4vQS8mkFlICij3F8ZruOXl4BqoWH4y-k3zkJe21pF4rNYVVb85DC4CrApw2SH73PsgOWrQutc0vhViLOsNLYz__vO0rssHoi8G3Z1f6klf4_hX1lPEtkSMNcxEhX2bAZ5N7R68XyVmpjqvfHZWOpH-mRtiliHuR1eMgCmbYFLTjFmuX39RV1BgQoSPCmP2iPGDRO9qABY34qaA", "opbs": "158bfd6a-7de5-45a2-8753-dc121aa4afc2", "response_type": "token", "session_id": "70e8e034-d01d-472d-9d7c-210d3d432b50", "nonce": "50a12e16-7489-4eb9-92fe-a37875af66e9", "client_id": "71e84255-e277-46df-9396-3e402c8f05ed", "response_mode": "form_post.jwt", "sid": "5080abec-3785-47ff-96ae-184da5d59ac6", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "175787ea-187c-4f03-b47a-08a28650923a", "old_session_id": "e4ebd9b1-8daa-483c-8b42-28e5c7252720" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:57" }, { "isJwt": false, "opbrowserState": "dc82e5c4-19b1-44ed-b952-439d1ec29183", "deletable": true, "dn": "jansId=6a10d994-fdfb-43d4-9705-a55ac41c2387,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:58", "creationDate": "2022-11-24T09:21:57", "ttl": 0, "sessionState": "10fa6c4e67f9b9bf2135301ef945ca5a4c1dd0512c9bb3ff39f676dab208ed60.708818d5-b452-46db-8ec6-46c32e570617", "lastUsedAt": "2022-11-24T09:21:59", "permissionGrantedMap": { "permissionGranted": { "0ff79965-65e7-47fa-b5bc-0c0903de5f7c": true } }, "outsideSid": "d999b92b-5bc7-43e5-9b09-27f688f624e2", "id": "6a10d994-fdfb-43d4-9705-a55ac41c2387", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkEyNTZDQkMrSFM1MTIiLCJhbGciOiJSU0ExXzUifQ.LYqM0xBa8lc4MA4XKCTQKZkeU_5HTFNVS9xgVf3bDCs0Zv7RU_romK_Z7SieIW5w9BRJ9Q9dkgjISLuYRPA321ojgqxVxiiq0Z3J6gr8KFlfxvLeJhoUtCYoEuuEgaeaqTwD-fIm-5rkrJNQDqXKqAfu2XselTAWf49--HZyh-OAGaAv16aTl_9XOZuWYRjyZ7abC1GzwKZsEmmcn1OuiMVHxmzI6ECnxc7fe2SXh_4s_4qtXeDK33zPwP4hYZeyGgpnBxVNX8MgwEYRnGDyKu_4AhlEkow1CdUEh_UzRmzhuJGKsB0FcUGh13MUGRSBuv1k9Mb4MH7LjElNr60NDw.YO1dV4DcXVIe2bXQtDUt2Q.4pikYfkR4YoLHBFAjkM-C54kQEzHecmJQuuhxrB_vTg2WXkjy-8hgZgV-m58PlF7jpFeqE0YQIqcT-_XRuVuBaH5HeL4XGJNTi32xFxpB9pE1HI_D81Jff3-VlHZdpZ3f_b8RDIOS0AKG_TxhgcocIfpCr8HUpnW3VIW73SNIohyGIYdYOz5XBLehNrUUY68MSnwJB5qWidbKjvo7R6rIi_n55FVlTRsUcrtwrriY8vAvtsY65Ct7btBfYld-_sQYiqfMCJRSYKUMNFD8bFKhLfKrlzAE5XeZulUcReEyPhI7YfD5AmaF6SwQkXNXASsp4pWVDn0m5qlJ4SJTbDW7pQ1ThDuEqsfzPV0AO8TqpIw_ITt4nYFM0w7tMnYOFSftotyMUxbK8aZ2IW8ezHZpyRty8vBhOtRJzJZh6GC5dWuMvJIStqzN7tdOEh84Hq01eRYMtYOy1N_4fxcIxZJ9bgMBtO_x1lL0k_y77RYqMMMuj-_Jw8buhotRlLCaGlbEIvaV8FN1ZID2WSv8T0SHa84sOnNBGXJjO5xMsMEMRUjrx4z-LVPT9Day8u1o4PyJcCsAXXeQZ_matV93BPotjdLeGcjZsEMJyq0Dt4yL1ASZW4xi1B9V7_HvC8zofcPdnubFt1_qQFcP2cUCAPATPig78XJJ0T2edd_rLUN7pp3e9awvKTERuDvZ-8TibIC0pRUB10pRu8NxHOjGLUahaaEf9ca5Alx7r-3kQRxUU3JIDUAOtn-17sMpgmb0LOU14BEhJt0_YzbTE6TRE7vh4xyPTyV96ZD-cRK9LXq6xiyTfSb_AbPA9WU8LXpvvAP.r2HaBziP3xnHVyHsL8mBJHGrdGpe8sBhK3D-QjXw6n6uI3OyCqRq0roKfmbHagNc7CdHxYDTfkVRw1IP30oIIA", "opbs": "dc82e5c4-19b1-44ed-b952-439d1ec29183", "response_type": "code", "session_id": "6a10d994-fdfb-43d4-9705-a55ac41c2387", "client_id": "0ff79965-65e7-47fa-b5bc-0c0903de5f7c", "response_mode": "fragment.jwt", "sid": "d999b92b-5bc7-43e5-9b09-27f688f624e2", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "97028086-844d-4ffe-b35d-f4390ee4cf1c", "old_session_id": "640b3d1b-5249-4084-8774-ab009fbbc7a7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:57" }, { "isJwt": false, "opbrowserState": "1005f3bf-4e1a-4d12-b747-ab30c5ea5985", "deletable": true, "dn": "jansId=95ce5910-10ae-45bc-9384-3e8ce6e77ece,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:57", "creationDate": "2022-11-24T09:21:57", "ttl": 0, "sessionState": "82df610399871d37de6c520506d2d96f73cedfe7dfaa290f310a5463ed2a3034.8b3a79bd-4533-4eea-ad70-a34937fad443", "lastUsedAt": "2022-11-24T09:21:58", "permissionGrantedMap": { "permissionGranted": { "d2db36d8-62ca-4f39-9ea7-ae8cab75de7d": true } }, "outsideSid": "ca2045be-c8ec-45c8-8854-c67956515022", "id": "95ce5910-10ae-45bc-9384-3e8ce6e77ece", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiZDQ2OTZjZWItMDAxMy00NDU1LWEwOGMtNjdkZGNhZGNjODNlIiwKICAibm9uY2UiIDogIjQyMzQ1Yzg2LTNkZjYtNDNiOC04ZTUyLTc4MjRmZWExYWNlNyIsCiAgImNsaWVudF9pZCIgOiAiZDJkYjM2ZDgtNjJjYS00ZjM5LTllYTctYWU4Y2FiNzVkZTdkIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZm9ybV9wb3N0Lmp3dCIKfQ.AjUdSegnB_2pGNmrBZ_1Y8EJ1IBRTTTXe3t9YqZhIu8-vjxg4V28cPOax8XDipgzmPb5LUMLwYL12uCd-TZgJtP7HKUEM78ZL1KrwDGakHLI0i-dmLQOpfN_liAg-bk_aDHudEmXktP98n7MvoZS8fZrqEdPGrIc2w7hb-7uOd1oGpV662QFT10GQJ5u_OZzBIMuatm3GS0LvsBxcOoRPsTjtg-YjoPeT4WbhM4ubW2YIpjX1zK82YmN1AYamiNVyUrJMteIlh6bIm3nK2AZuRDBwINEYFTA6E6xkty1RQYpokmeqsOeq7B5kKu0I9BNwFKl6Zqi4Ux7GweAlL6QDQ", "opbs": "1005f3bf-4e1a-4d12-b747-ab30c5ea5985", "response_type": "token id_token", "session_id": "95ce5910-10ae-45bc-9384-3e8ce6e77ece", "nonce": "42345c86-3df6-43b8-8e52-7824fea1ace7", "client_id": "d2db36d8-62ca-4f39-9ea7-ae8cab75de7d", "response_mode": "form_post.jwt", "sid": "ca2045be-c8ec-45c8-8854-c67956515022", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d4696ceb-0013-4455-a08c-67ddcadcc83e", "old_session_id": "c1fa4e03-2dad-412c-87b1-c3fd8129aa43" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:57" }, { "isJwt": false, "opbrowserState": "1a222af6-bd3d-470a-8a25-5280a1658926", "deletable": true, "dn": "jansId=b1137c8a-d79d-483c-906a-cac6ed0cdb16,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:56", "creationDate": "2022-11-24T09:21:56", "ttl": 0, "sessionState": "20deb40c0e94010cd2a2d9f24f43d86892beca186ede4ae9572ad60794fe0436.c305b71b-5208-46c8-bfa3-dfeef1af222a", "lastUsedAt": "2022-11-24T09:21:57", "permissionGrantedMap": { "permissionGranted": { "7c7c5f3b-6599-47ec-b867-f9c2371c098a": true } }, "outsideSid": "7f3391a4-104e-41c7-8a32-637f6ae3079b", "id": "b1137c8a-d79d-483c-906a-cac6ed0cdb16", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI1OWFkOTY2Yy02YWM4LTRlMDctOGNjYy0xNjA3ODkwOWVmMDgiLAogICJub25jZSIgOiAiNDc5OGY5ZDQtODUwNy00YzQ0LTg5MmQtYTgzNmZmM2FkM2E2IiwKICAiY2xpZW50X2lkIiA6ICI3YzdjNWYzYi02NTk5LTQ3ZWMtYjg2Ny1mOWMyMzcxYzA5OGEiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.KL4W2t8ssWFuy_jCcZLDQQuCTeUc9QBzVIjibJtA4jKk6cFnh-CVdw28rgWT3I9aDloYPlqDZqreP2wyhUAmyU7ga2B_N0OUQh2xyBlt2d3rwENps8MA29nQi5hjlH41DSFlht9UQtEd9QBi9AbeQuXwi8yJ3rEppIZ-etywQPLOSdhA0FzKOwyBRaHvdCEy4rBiQByYVwIJqZLwRsIn98hhR5fEWzFSfh3A5njol6hTQK6Zz7d0wvbDxhfxfMB5mknM_Jlm8IeAF0gRw3_5kl4FvDN-YkZqubkC97X748TAcdSAkea6HxMSm59aqIK60z2dNfO61aMVg33mIKioNA", "opbs": "1a222af6-bd3d-470a-8a25-5280a1658926", "response_type": "token", "session_id": "b1137c8a-d79d-483c-906a-cac6ed0cdb16", "nonce": "4798f9d4-8507-4c44-892d-a836ff3ad3a6", "client_id": "7c7c5f3b-6599-47ec-b867-f9c2371c098a", "response_mode": "form_post.jwt", "sid": "7f3391a4-104e-41c7-8a32-637f6ae3079b", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "59ad966c-6ac8-4e07-8ccc-16078909ef08", "old_session_id": "e08dab0b-5439-4d9b-b1f7-925ceaf2cc52" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:56" }, { "isJwt": false, "opbrowserState": "84ed65d3-4a88-42a0-acad-23cc106a6450", "deletable": true, "dn": "jansId=61ccf624-8ae6-49e3-827f-d0959940d1c3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:56", "creationDate": "2022-11-24T09:21:55", "ttl": 0, "sessionState": "b80e5d333afe27f576e22780f0eb4a1f007ec24afc75b4ab88cb2136d9957505.d184972f-3851-4472-902e-5087b37fc9bf", "lastUsedAt": "2022-11-24T09:21:57", "permissionGrantedMap": { "permissionGranted": { "191c4ef7-fa42-4365-8644-a23f08fa1710": true } }, "outsideSid": "ca8838b0-c3e1-4f5d-a409-b4512d3816f2", "id": "61ccf624-8ae6-49e3-827f-d0959940d1c3", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.ZPPhHTjkKCYxnp3zMPwckkd2by-wLGm90XdwuTvt89bb8lTQcT3F6ibgilKB3kG8NeVhu308MoE1aMGFtuQ9wBmcPAwNjgB-tsSCjIGbSm13zQFeNAMS65jYe9fI-VdEpS6e0fhliPqEz8ydoR4vnHE7ABZlwudeFKtAqirug9VfLIFalYVfolCSPUfZuu5rwLGc8X8dceIJVamPHjbeo89JfZJpfguSVSgkXbDN5AHbMFdu6YemymN1x2yg1gUoY9Kp2IJGNP3keK_WbZOCGC6Q7vejqWrrRYeFBKGL6710UTR_QIO-yfNfebnTCv-Zcg5uLrYLTDBUjcz3LCajzw.S0eb_599wW9chC-Z_E7w6g.mozlYdjyN8V7FBNyahQiR6-t3stdaxxs_fJeD4AKfRY0FuxfT4Y-4H6bYlLhlt2iZnQbVw3kMI0-9nHp1Qsz9MrOfup6-3QpF0sTDi47Zq-x9fU-Rrq5fZw7HPjbDo5iX5fOOg0egTVtNEvzHnuTJsVvHzxeWOKnzLnVkUb1BpxjmsXX0LVTvJwVqXDuLDg1UkpfkRoydoNuHshM8diuncoDFOvQMEaUDQIn9snc5NV314xdzihi3BAtrmCmiZ8NQHa5uBeZibBUUxNCty2LbOyXqQSLCh_XmSLF_G-KdiAMnK6AWTinqNm6edlgqjNGhZWximNa7XB_8IR_K6L3J2W3elml5JnQ3qEYibUAa5c8MAT_A4U2Avaq4iVsHEyVqpTEexDleqetg0HgIUeFxgIJ8FZ_ZDcxbFCYYxJRodasv1vMsPv_NomOqy_-kgnyHDYFJwsNYldDJ1V1Rf2U6F68pnDpYNVzxS7OM2GSnHW2aTwgxqt1Tq5CUCR_lWRwTN575j-UU_XYFL7KkSF8DiIyggpPfPQPvd1WTNC88sx7nuvJgel4RBqZivvc2HbPhrseALeoKrcBjiAQB6ZAhwHTnDUTegE9PBzNUtp8uhtXbgafnTCZsBfAve1mEPKqBYNekoxA5w4TXeyzDx6HXYqjgkMT8aSErIPDT5iQpyyeLbP9XYv1VVCKJdnsOOgnu5bJsm8W9dL6QW5xPfulOWOS45wFJ3dTA8s6QQtQIB9zzMqeFolXxanRTwppSWhR5e-M0ahfnqYTzHN4gz-bDr65Ncher7BMFMWu0Jl8tlx73aOeG40fMWj2JGEYTpoz.8PuXvLyAkJcsmjPQ4GptkDWuHUHsRysK748QxOmTd8A", "opbs": "84ed65d3-4a88-42a0-acad-23cc106a6450", "response_type": "code", "session_id": "61ccf624-8ae6-49e3-827f-d0959940d1c3", "client_id": "191c4ef7-fa42-4365-8644-a23f08fa1710", "response_mode": "fragment.jwt", "sid": "ca8838b0-c3e1-4f5d-a409-b4512d3816f2", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0eefea21-4a6f-4f43-8e3d-831ed2dd81a0", "old_session_id": "6cbc6f11-7d9d-4084-b95b-d1476c08ef3d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:55" }, { "isJwt": false, "opbrowserState": "f6b1af82-36eb-441e-bcd4-cff5de5de11e", "deletable": true, "dn": "jansId=b1a4d1b2-2393-4cde-bb95-d6f26efc6005,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:55", "creationDate": "2022-11-24T09:21:55", "ttl": 0, "sessionState": "7047d4d97a599330bcd940fb7480a1026b060bccca4bd543e8f281f2c64c7266.60809db9-2470-4be4-a3f0-1585735ba2a0", "lastUsedAt": "2022-11-24T09:21:56", "permissionGrantedMap": { "permissionGranted": { "14d8efe0-8a2a-4e80-9ac7-5fc02e2c46c7": true } }, "outsideSid": "1a6a18be-3496-44b0-9031-cbad2d4754d3", "id": "b1a4d1b2-2393-4cde-bb95-d6f26efc6005", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.IGzwM7zU0gDdB0vosBrd8DuWOWkEvhLA.tdY869H8kPhUKaPv.XpCHdB8Lr46hidJdWeK3nLIfakSEf__nJQCS6-rTeINUs7V77jfNUL_OfzrGLyhYq2BMAg5sc2T8AW6M4k_VsdmCW4gj2B6adH2sy1ZCmqwVRIgKiRiIVHDQjjcTU1tLN8JYgzhmy2K_TfTOjpBDEmxpcXtS60nKIrT7TzEf6_lmhmO2BBpk6cIxKkL-HOVHxwbUnrj5uzWABpSJnhEYgDGCnJa-GFa_gvsDeP-fvoAIDIr39ajwAszn-WFMJy_6Zoz9t9QmkGI8Er6_gpQLssSsJwAadls3lp0fSf3z6f19_jBu6hUediz-F2vlY28doz7Z3MLeIvHKi0htK1pHlE5Nj03Mf5fxng3thmsW6DTyG37XtrHu9p5S3nF2ZveX-NQJy0drsWGwXXGDJsTqOkj-jE4LynENZwZYS3iUfQ6hb3DrrlYxPXnpaTRpFrfOuhvT5kmTUDxlGZqn16p1uoEKfBBQegj-dV_1bx-zeQIDXsiP_FX8ARexOoC-uv2RNVtJaQ6olzOg7iiCHtkN5TUolHisKEklqO68CbtZ7AaMEIMZD_uwYokMHJgeXCVL6thqdmbyVb3YYS6su8qYR82YayEW9KW-jClFoka0fqQRMWy0CWlws-UNh3IhP0Jm3l6PfaKWCs29kZwnU5EKCVXHjAB9MhfjASy2YRCoNVJco9DQOyML7r3OS-NpbaZDFpDkEYHAFr0pgqNYjwGtuTwLmBhXdfTMRQzOkpQ6QLBJJRGvGNaHyRdrM9kYSIX0oSoGOmKnz9Mt5vsHFFKCjeITCn8b2JgX-fOCSrapSlhK6eLbPrj27OS-s0a3Sz3WY58l7oOhLhUw9tlBwWWtlfQxYs-hoT1eIrbGIJMtDr4mq79Wy-03l3EM5TNRH9V9uA1sAliQ4PHaE6phdwJjavQK.wz9jcacanqyPn7t_b8dg_w", "opbs": "f6b1af82-36eb-441e-bcd4-cff5de5de11e", "response_type": "code id_token", "session_id": "b1a4d1b2-2393-4cde-bb95-d6f26efc6005", "nonce": "f5b20ee4-8ab0-44ef-a7ec-8683e9c41483", "client_id": "14d8efe0-8a2a-4e80-9ac7-5fc02e2c46c7", "response_mode": "fragment.jwt", "sid": "1a6a18be-3496-44b0-9031-cbad2d4754d3", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "660d4182-23c1-4b86-a460-fc694b14d3bc", "old_session_id": "76b92083-bf14-42fb-916d-2601f00b406c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:55" }, { "isJwt": false, "opbrowserState": "cc13c335-8ad9-4261-9af0-bec196c932d4", "deletable": true, "dn": "jansId=5bbfb5d9-99e7-45df-b7b3-0f8ec9cdd915,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:55", "creationDate": "2022-11-24T09:21:54", "ttl": 0, "sessionState": "8a2d2007d95d87150eefae17b4e886e831286f9de58309ce341a053c30833f4e.5c3c2ae1-7a51-450b-ae42-5f078eb4ba3b", "lastUsedAt": "2022-11-24T09:21:55", "permissionGrantedMap": { "permissionGranted": { "edced961-dabe-42de-aec6-af5e60178f77": true } }, "outsideSid": "2824aa24-bae6-473d-aed5-df19d1623210", "id": "5bbfb5d9-99e7-45df-b7b3-0f8ec9cdd915", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJiMGI0YThlZC1lMmMwLTRhOWEtYTY1YS02MmY5YWZmN2QyYjgiLAogICJub25jZSIgOiAiYjExNjIxMGYtODU3Ny00NWViLTkwN2ItYTllZjlhM2Y3MjBhIiwKICAiY2xpZW50X2lkIiA6ICJlZGNlZDk2MS1kYWJlLTQyZGUtYWVjNi1hZjVlNjAxNzhmNzciLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.dwxxdHl_6hJUF0AT4SJZyNfypUKiP2NxYtNgbTrmGNoOPwpP_jUwWDXpFuPcJHSoUJWiWEn6vIr28FsPumkNQ8uwrp6YnajJniPp-WuJ26K3SvY-eO3aXkdn4rBgQztTd6q8AuKkJHNcv-e8RbIH1JOPBHFR26vNG53dMfXCCBsxctvE33pa0Z6SI3uWmu23BgW10cOKENwZeNVYfAN9uK5PolJ7twpcyFH4oVhE4OjaaIigg18ZKTzJ4zuYlU7qBbvu7CvwLXN-sekRkX0FcC_wlmzODJ_oHSpvnfkNx9zL2UjNNfPveKuj7Np94KbHXZ9_B45wkvpB3umTkknTZg", "opbs": "cc13c335-8ad9-4261-9af0-bec196c932d4", "response_type": "token", "session_id": "5bbfb5d9-99e7-45df-b7b3-0f8ec9cdd915", "nonce": "b116210f-8577-45eb-907b-a9ef9a3f720a", "client_id": "edced961-dabe-42de-aec6-af5e60178f77", "response_mode": "form_post.jwt", "sid": "2824aa24-bae6-473d-aed5-df19d1623210", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b0b4a8ed-e2c0-4a9a-a65a-62f9aff7d2b8", "old_session_id": "b28e7a9f-5bf1-4a09-92d6-62eb938ffaed" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:54" }, { "isJwt": false, "opbrowserState": "07590114-1a54-4fe3-bb87-f0236d83f256", "deletable": true, "dn": "jansId=a421bc65-a6a1-4e12-b4e7-c3f0f5a1c758,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:54", "creationDate": "2022-11-24T09:21:53", "ttl": 0, "sessionState": "1481ba087d84f80537ba883a1b07df7e4a3e013a796bd405cc69f0cd82301961.4ec3225a-06f3-4963-b01e-a075ee1586a1", "lastUsedAt": "2022-11-24T09:21:54", "permissionGrantedMap": { "permissionGranted": { "15556d26-1c76-4b75-b929-07fec68c6f79": true } }, "outsideSid": "c50c7659-2071-4ddf-a2a9-df7f307ba804", "id": "a421bc65-a6a1-4e12-b4e7-c3f0f5a1c758", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.Gr7nGHW16vn_ia__EQCWDwhK5_WkB3n5IAY8LKys_VypqN7tzAJxYw.qQJPke6yrjr1KMvS.dmy1XDz54TYz-pE5FG6xvn3PrCh8feC7HEBg6vm4gcWXlsnNTfXLeKambjE0rc_iK2hh0CXPkoVCqwlrWZzR3PK3-A-x-EmfN6LY8qTbmed0g9i8h8O6ikHwy5exQyze4JHOlvH02yXKrET6M_YdJJHxUtM5sT0tELjvekTnhaz6KE1DVfNkIRZBygQRlNkP7kBkpS80013eyBDYNu6nfOhgxGnTqiuT4SHXSI_5iasjdRvomK_bmF6GrU7gCTE4PBT7Sc7glHV9xEmxYzquMOkSOXwEvwFDw6Ca2w1VwHtC59sOjwjPgIbsW_nB-N7zn-Z3gv7vT1PYNlytGoVN7uSESOUAH9AouNkhez72dbF9EwcfnuC7Uwawfr9y99c49F6nl0OmgxTcxSQKgHiMtL_r1SvhZm8QAJBeIjUz1v01jjFgKhM1LpVXvTJoWVQD4x-pSfS5q3lZ-_yJXrl-hzYMsN9Cb9CUMlq6fc679Pil2Uy6zXpEpLyHxwxRsw6c_fdJTnJkg12CIaCWdneqYffMGfhYT3yL-V_S0_y5dJ13xx5tBj24AJeXhK740WkMItwyL-PEC3Q_psym4jNWkGzileuslOAAiD30w2PIuSDuOgf_bHkub4y96YteIL3tqPiq1uNzrJMb0M_gdan7yQhIXFbH_RRSsaflTs7QcVo-hIJdue_3VFAZq8egXYScYc63IloPlgoGVNQXK9Ud3CKJk4TajgVwtOZMuwhI4YnI30-qy8ghb_22imcc-y8SJwRlvt_r-UCRa8_VOXDRXjnM9JV5R90B2Th31GGj1-5K6w.pJOLwKAHU0rEZdIdaZ0YQw", "opbs": "07590114-1a54-4fe3-bb87-f0236d83f256", "response_type": "code", "session_id": "a421bc65-a6a1-4e12-b4e7-c3f0f5a1c758", "client_id": "15556d26-1c76-4b75-b929-07fec68c6f79", "response_mode": "fragment.jwt", "sid": "c50c7659-2071-4ddf-a2a9-df7f307ba804", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "dfdb98a3-04f1-4d7e-bf3e-7fd52d65dde8", "old_session_id": "dcd3f8ba-a674-4347-a845-865fd0ed61fa" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:53" }, { "isJwt": false, "opbrowserState": "377d7c48-49bf-4082-b9ac-565167d32dbc", "deletable": true, "dn": "jansId=a1726da9-bbfc-4c9b-9c6f-cee184066ba8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:54", "creationDate": "2022-11-24T09:21:53", "ttl": 0, "sessionState": "a8f4057c329074cd9ddc4e14f82089e62a8c6085cb24988a7418548c889453fc.1d891dcd-a469-4afc-8ef2-43c376e7e2c0", "lastUsedAt": "2022-11-24T09:21:54", "permissionGrantedMap": { "permissionGranted": { "f2262ffc-d681-4d8e-9b65-c9d7cce14c5f": true } }, "outsideSid": "cef45ed8-b9df-4fa0-944e-0d8646dd05a5", "id": "a1726da9-bbfc-4c9b-9c6f-cee184066ba8", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiZmE3ZDBjOWQtMzk0ZC00ZDhlLWE2MmYtYWQxNGQ3MTYxOGY5IiwKICAibm9uY2UiIDogIjk2NjgwN2JlLWRlN2QtNDIyOS04MGNlLWQyYzVjNzU1NTIzYSIsCiAgImNsaWVudF9pZCIgOiAiZjIyNjJmZmMtZDY4MS00ZDhlLTliNjUtYzlkN2NjZTE0YzVmIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZm9ybV9wb3N0Lmp3dCIKfQ.ka9q2D_rXWvfNgPV7CzaSGCLhSPjRY0XHAwrPmoh9TrTFxObr6aR6FsoeZojEDolz_DV_X7vUX888RCA-6Nt4dEuRTpAXw6YSWqpO8l4Hi_MktXpfC_GV7vsJSSbdpd2jijngfFy4ydqcJ_69FkWW4rbB3upV2YYcjTDR5BxSsWHgpPI0YrvRpnOmjy7FtQPGGn6V6VP2aBQduPjivaP1aXEjYT9vlivb3fkiK7nP5sGRueGtgWBIZTGjXly0JulZikPvgHpip00FIEcDA0KL3GJLupCk4rKfhDqVYusWfNcd9A-GVLJMgYuqp2YgvZYJrcU-xhul-Q75hOl6qgzHQ", "opbs": "377d7c48-49bf-4082-b9ac-565167d32dbc", "response_type": "token id_token", "session_id": "a1726da9-bbfc-4c9b-9c6f-cee184066ba8", "nonce": "966807be-de7d-4229-80ce-d2c5c755523a", "client_id": "f2262ffc-d681-4d8e-9b65-c9d7cce14c5f", "response_mode": "form_post.jwt", "sid": "cef45ed8-b9df-4fa0-944e-0d8646dd05a5", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "fa7d0c9d-394d-4d8e-a62f-ad14d71618f9", "old_session_id": "3e8b67e4-3dfc-4b22-981e-1db9f2ba2e8d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:53" }, { "isJwt": false, "opbrowserState": "df4d87b2-1262-4062-9896-acba6a491de8", "deletable": true, "dn": "jansId=b89194ed-2e80-4ab6-8e15-a15dfcce62f6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:54", "creationDate": "2022-11-24T09:21:53", "ttl": 0, "sessionState": "ea0b63635d8b392734c0d0939f2de4b08da1f2f9f0a78c2304e7de21e153a308.3faeeab9-f91c-454f-acda-dc6300cd7821", "lastUsedAt": "2022-11-24T09:21:54", "permissionGrantedMap": { "permissionGranted": { "c94c1a85-5c26-4eaf-8b7f-5ba41e49c2bb": true } }, "outsideSid": "0b088281-da44-4832-a80d-79e40dfc5aba", "id": "b89194ed-2e80-4ab6-8e15-a15dfcce62f6", "state": "authenticated", "sessionAttributes": { "opbs": "df4d87b2-1262-4062-9896-acba6a491de8", "response_type": "code token", "session_id": "b89194ed-2e80-4ab6-8e15-a15dfcce62f6", "client_id": "c94c1a85-5c26-4eaf-8b7f-5ba41e49c2bb", "response_mode": "fragment.jwt", "sid": "0b088281-da44-4832-a80d-79e40dfc5aba", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "df593b79-839a-451b-9b98-6684497ed86b", "old_session_id": "27d95e6c-46d0-4497-8228-865c69a6e694" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:53" }, { "isJwt": false, "opbrowserState": "6470e70f-72a5-4942-b566-d389e9e647ab", "deletable": true, "dn": "jansId=8229ddc5-f494-45c0-a513-a424be417962,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:53", "creationDate": "2022-11-24T09:21:53", "ttl": 0, "sessionState": "a6f4638e8cf4ce0d63c315914a683030a1b4c145ef4a15def01dfb4fb53ff1c9.8119e0a8-794f-4af2-a770-d42008ec4caf", "lastUsedAt": "2022-11-24T09:21:54", "permissionGrantedMap": { "permissionGranted": { "9170ee88-1382-4017-8d73-7c5c06f329c9": true } }, "outsideSid": "e498b432-20dc-4cdc-b774-119155703dce", "id": "8229ddc5-f494-45c0-a513-a424be417962", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJiOWM1YTFiOC01M2I3LTRhYTUtODUyMy1hNDI0Njc1NGRjZWYiLAogICJub25jZSIgOiAiNjUzM2M0NDEtOTVjOS00ZTM5LWI4N2ItODAzZWRjNDhkNzQzIiwKICAiY2xpZW50X2lkIiA6ICI5MTcwZWU4OC0xMzgyLTQwMTctOGQ3My03YzVjMDZmMzI5YzkiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.AV1lSd0rbJKrHLn_tDGhF8fQ39O_vrlq1ZIOG9FK6rU6785iPmmsL0Vde6LUlYeQux33B8ynn_jAOgma_fGWy7olAK0h0ZK9s5aVU7QG2FGuAwUS9y8Zs7DO0lB8s06yQBuFJEQjgZeNixKrB7c3pYMgF6Tmew_1kLNQbeCq6FK0a5H8", "opbs": "6470e70f-72a5-4942-b566-d389e9e647ab", "response_type": "token", "session_id": "8229ddc5-f494-45c0-a513-a424be417962", "nonce": "6533c441-95c9-4e39-b87b-803edc48d743", "client_id": "9170ee88-1382-4017-8d73-7c5c06f329c9", "response_mode": "form_post.jwt", "sid": "e498b432-20dc-4cdc-b774-119155703dce", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b9c5a1b8-53b7-4aa5-8523-a4246754dcef", "old_session_id": "1ead9680-f9a5-4530-92d4-e10f4c42fb6b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:53" }, { "isJwt": false, "opbrowserState": "705f1491-5ed0-4dbd-b39a-365bf184186b", "deletable": true, "dn": "jansId=4c7352da-ae6d-4a25-8993-76f1cf5db7d9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:53", "creationDate": "2022-11-24T09:21:52", "ttl": 0, "sessionState": "014c51cc754ad90625767bfb77453e2c8c6dd9fa0990bdaca3060832b7ae7e98.5dbdeaa4-ceae-48e2-bb3e-f56cca3379ef", "lastUsedAt": "2022-11-24T09:21:53", "permissionGrantedMap": { "permissionGranted": { "179d5af3-0fac-49d3-a3e6-3d9c4a7f5324": true } }, "outsideSid": "0fd5bf0d-54cd-4455-b025-0d18d2639b2f", "id": "4c7352da-ae6d-4a25-8993-76f1cf5db7d9", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.BmDPWpsG-k7VbODfBdS-wixv2XkTHcEC.t9okGCQCg4m7N61l.hHdq1SO_2KabW41XvoJtRc9uJvoCsrjoYsDDLgpwbyWBQPSb0PawlUbh76iHgipUYQxdES0YI3pLqLXaMgBZwaWsRuxJaYzui29sKMLmlWkUYlcy0ZQDnVHkz0IYxJqql6vWe6KcrpZKEZIRcqun8p_YbfPn5iZBIy45PjTsAufujQVkPZXa-85E3nq7kHcaTfZL-rsjX0rzNhqojl9xQtONeDsUSb9c5kH5fm5RhoYFS4CDzvF8ADtRLawH5gd6ywT6MZP-cAVHo-w9h9CShUvIa616-qy9htUMoWnUJOeyW8SzYqwb9eWWPzaLDpQicz-XKNLT_UDkFaoUSBv-RNgi9T6AJc36zyOr3Rn9_HvAkZbFT64AzY3OxpjgxlClmGx1AazrHojnx1d1-lCT_oBSlTjZYtebL25RQiV808L2njmDJbYCcHisWGCLcopE9JGQU9aCoCk18-eEOyo6skSm7iu-YPUSC09eZ06Q3reTRbyD7rgAIdWHHenlhztZJMBUow9SiXejs7P-bRSkdK6tf2HZB08TzoDRY9YikVSiOuZPrJyS0El6LGe9H77CEa3HSsKmDvXZsYEY5qLIpFrCKBqxF6G7dc0Cc7u8Hn3cK_3u1CLii9f9o1LbYi2YCduFsbbFMCH3MSlgsJIC1zPa-4EEVuxEOq5rmkWpmAQTP3QkpkU0TZylHgJLfr1hiauX78GgcWoI2P9d5MT14YgETjU5fuSqCDYnbkqagUpY2KMgv0LNCkuhOxP6nPvXNZw8AfrCRQ2HXh0PTvSBQzW-mkZ4gjyAh0fWgEi2FnwTuA.kgBVDZgG8WQiOGPtdEE9NA", "opbs": "705f1491-5ed0-4dbd-b39a-365bf184186b", "response_type": "code", "session_id": "4c7352da-ae6d-4a25-8993-76f1cf5db7d9", "client_id": "179d5af3-0fac-49d3-a3e6-3d9c4a7f5324", "response_mode": "fragment.jwt", "sid": "0fd5bf0d-54cd-4455-b025-0d18d2639b2f", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d031f88f-a6d8-4fe5-af4c-76521fb0076c", "old_session_id": "63c88eaa-15c1-434e-9ca4-1a94ac40f4ab" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:52" }, { "isJwt": false, "opbrowserState": "af18b666-ceb9-4fa8-9687-ea9f9197f242", "deletable": true, "dn": "jansId=a4e14ced-45e4-47eb-8a18-88a521f7096d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:52", "creationDate": "2022-11-24T09:21:52", "ttl": 0, "sessionState": "6587452502859625e4d1bb799b0050ca1b51f7e2db3c58218b282b558c568ca7.259dc6be-17a7-4cad-a7a9-759b257bd3e7", "lastUsedAt": "2022-11-24T09:21:52", "permissionGrantedMap": { "permissionGranted": { "f348779a-7722-44ba-8317-cf620ab3e65d": true } }, "outsideSid": "ebdae168-2e58-4b9b-83d8-1f75662b6642", "id": "a4e14ced-45e4-47eb-8a18-88a521f7096d", "state": "authenticated", "sessionAttributes": { "opbs": "af18b666-ceb9-4fa8-9687-ea9f9197f242", "response_type": "code token", "session_id": "a4e14ced-45e4-47eb-8a18-88a521f7096d", "client_id": "f348779a-7722-44ba-8317-cf620ab3e65d", "response_mode": "fragment.jwt", "sid": "ebdae168-2e58-4b9b-83d8-1f75662b6642", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b6253f73-28e5-4c47-af69-a45154f23c83", "old_session_id": "2ab6b9be-7eb3-4bfa-9737-ade31a3f1375" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:52" }, { "isJwt": false, "opbrowserState": "01af4a65-d317-45d9-9489-c009ded90d89", "deletable": true, "dn": "jansId=ae679cd8-5db8-4bcd-a69d-53035807028f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:52", "creationDate": "2022-11-24T09:21:51", "ttl": 0, "sessionState": "40aaebd4ebafa185c89aca81c8839f63070f360ef1b43075c2d6947d80eb6015.69ac2c72-b9f4-48d8-969e-63236697732c", "lastUsedAt": "2022-11-24T09:21:52", "permissionGrantedMap": { "permissionGranted": { "541f83a3-f3db-4c52-9ede-67f01600de14": true } }, "outsideSid": "7aef2309-b3c2-4edd-9e9a-10ce84c3c9cb", "id": "ae679cd8-5db8-4bcd-a69d-53035807028f", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI5ZDQ0ODQ4OC00MDE1LTRlMGUtYWYxMS1hYmE0YzMwZjY0OGUiLAogICJub25jZSIgOiAiOWVmMmI3ODAtMWNhOC00MzVjLTgzMWItNjBlMzhiZTViOTU0IiwKICAiY2xpZW50X2lkIiA6ICI1NDFmODNhMy1mM2RiLTRjNTItOWVkZS02N2YwMTYwMGRlMTQiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.migNTv4tHtkxqF6VWR5KLGBsU31tOyFctOELDPKcdsZq8aCzumsc3WRTv1ZAbUWlcDMIz2o2pdSoYC4myRpt88zYt8mbeT-H4oG2zQp5yt7_DfWNlRzH26OrpzMJO7g3", "opbs": "01af4a65-d317-45d9-9489-c009ded90d89", "response_type": "token", "session_id": "ae679cd8-5db8-4bcd-a69d-53035807028f", "nonce": "9ef2b780-1ca8-435c-831b-60e38be5b954", "client_id": "541f83a3-f3db-4c52-9ede-67f01600de14", "response_mode": "form_post.jwt", "sid": "7aef2309-b3c2-4edd-9e9a-10ce84c3c9cb", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9d448488-4015-4e0e-af11-aba4c30f648e", "old_session_id": "80c8284c-f5f4-45c5-963c-69389b0b7ed2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:51" }, { "isJwt": false, "opbrowserState": "1cb9d648-e460-417d-87e7-987b08d19f51", "deletable": true, "dn": "jansId=bd9c26fc-059c-4006-865f-9ae8cc506553,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:51", "creationDate": "2022-11-24T09:21:51", "ttl": 0, "sessionState": "6e37e42ceaf9ff301e4a7b8963e4e8d1f050e236c7a21124c2f5526a7f92a061.77b6d3a7-0978-4c5a-8837-3eda53cc363b", "lastUsedAt": "2022-11-24T09:21:52", "permissionGrantedMap": { "permissionGranted": { "4b2657a1-a0b0-47dd-8816-2d3498452ba4": true } }, "outsideSid": "60a060ff-fdcc-4ea8-a431-4b8bafb1f33c", "id": "bd9c26fc-059c-4006-865f-9ae8cc506553", "state": "authenticated", "sessionAttributes": { "opbs": "1cb9d648-e460-417d-87e7-987b08d19f51", "response_type": "token id_token", "session_id": "bd9c26fc-059c-4006-865f-9ae8cc506553", "nonce": "3a5290f1-fa35-43e3-b3ea-92d384b70c37", "client_id": "4b2657a1-a0b0-47dd-8816-2d3498452ba4", "response_mode": "form_post.jwt", "sid": "60a060ff-fdcc-4ea8-a431-4b8bafb1f33c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9e1b66d1-3c20-42de-b278-97b23948845f", "old_session_id": "9fe24dae-6793-4a56-8bd4-9b5df7944b29" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:51" }, { "isJwt": false, "opbrowserState": "ba0833a0-6dfd-476d-9604-62f3ec45ff0c", "deletable": true, "dn": "jansId=b5471901-860f-4d84-8298-c6cf3cc5432c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:51", "creationDate": "2022-11-24T09:21:51", "ttl": 0, "sessionState": "f41f720ade38f1bd87f7e851b660d3f91f4866d8a7d33b13b6aca3aef9001d55.e7bf632d-8fe4-4229-bbdd-511796467195", "lastUsedAt": "2022-11-24T09:21:51", "permissionGrantedMap": { "permissionGranted": { "c6ea9370-913b-4db3-8ca9-7e3b92b80b64": true } }, "outsideSid": "bdd817a8-8411-4424-9bfb-70c8226bb585", "id": "b5471901-860f-4d84-8298-c6cf3cc5432c", "state": "authenticated", "sessionAttributes": { "opbs": "ba0833a0-6dfd-476d-9604-62f3ec45ff0c", "response_type": "code token", "session_id": "b5471901-860f-4d84-8298-c6cf3cc5432c", "client_id": "c6ea9370-913b-4db3-8ca9-7e3b92b80b64", "response_mode": "fragment.jwt", "sid": "bdd817a8-8411-4424-9bfb-70c8226bb585", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "406c09de-9813-4c26-b52c-6ece2009a63c", "old_session_id": "7b315430-b6fb-4d4c-9c74-6ba6a043a733" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:51" }, { "isJwt": false, "opbrowserState": "bd20761f-af35-494b-bc02-96b1c85d6bac", "deletable": true, "dn": "jansId=366c67d8-4d7d-48c0-b57d-c60ae161068a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:50", "creationDate": "2022-11-24T09:21:50", "ttl": 0, "sessionState": "20f890f09939b7fe83dd5f77f6bf6f5f5d1283747be14b01ed6a1626f19cca67.46c63143-9c47-4625-af09-ffff4261e58c", "lastUsedAt": "2022-11-24T09:21:51", "permissionGrantedMap": { "permissionGranted": { "00de819f-f2a0-451c-a6d5-7f6e4c5225ca": true } }, "outsideSid": "a7992d4c-2585-4ab2-9fea-376212776a29", "id": "366c67d8-4d7d-48c0-b57d-c60ae161068a", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJ0b2tlbiIsCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIwZWU3MDQ4Yi05YTY5LTQ1NDAtYTE1ZC03OTZkNzA5MGM2MGYiLAogICJub25jZSIgOiAiYzFjN2U1YTQtZWEzNi00MTcyLTk3ODAtOTk1ZjdhYjczOGYwIiwKICAiY2xpZW50X2lkIiA6ICIwMGRlODE5Zi1mMmEwLTQ1MWMtYTZkNS03ZjZlNGM1MjI1Y2EiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.2L7AoyMp5L5V9CW2-5ktXfDIhi9tHuFQFncOzORZm1NCLxJbvR9ZCX2ByX31jipq_KfDPO1MeDp-TPITdK14Ew", "opbs": "bd20761f-af35-494b-bc02-96b1c85d6bac", "response_type": "token", "session_id": "366c67d8-4d7d-48c0-b57d-c60ae161068a", "nonce": "c1c7e5a4-ea36-4172-9780-995f7ab738f0", "client_id": "00de819f-f2a0-451c-a6d5-7f6e4c5225ca", "response_mode": "form_post.jwt", "sid": "a7992d4c-2585-4ab2-9fea-376212776a29", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0ee7048b-9a69-4540-a15d-796d7090c60f", "old_session_id": "a514b585-0101-4eb1-8861-a9d614ed3f20" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:50" }, { "isJwt": false, "opbrowserState": "5e9863a2-37e6-42ec-83d1-caf48a724317", "deletable": true, "dn": "jansId=a9e642ec-e5dd-4e14-bbbd-1628a4470a32,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:50", "creationDate": "2022-11-24T09:21:49", "ttl": 0, "sessionState": "c332eb48e552a49a57de45d92b532d93e9a2f20ced14c12c549ff29001582613.ac68a429-87ae-439c-8235-672246fb1ba7", "lastUsedAt": "2022-11-24T09:21:50", "permissionGrantedMap": { "permissionGranted": { "3c76c2eb-832d-4008-bc61-35502c757a2c": true } }, "outsideSid": "c7bc8701-1e0d-4c64-bd7b-5df3b4676f96", "id": "a9e642ec-e5dd-4e14-bbbd-1628a4470a32", "state": "authenticated", "sessionAttributes": { "opbs": "5e9863a2-37e6-42ec-83d1-caf48a724317", "response_type": "code token", "session_id": "a9e642ec-e5dd-4e14-bbbd-1628a4470a32", "client_id": "3c76c2eb-832d-4008-bc61-35502c757a2c", "response_mode": "form_post.jwt", "sid": "c7bc8701-1e0d-4c64-bd7b-5df3b4676f96", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "bfe62c68-18f6-4274-aa97-039a882c4678", "old_session_id": "d41d322d-3a60-4728-84fc-84de82c27d8f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:49" }, { "isJwt": false, "opbrowserState": "eafa6665-7e44-42e1-b759-eaadffea96bf", "deletable": true, "dn": "jansId=0f73fd11-5356-4155-9ec4-122283deed16,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:50", "creationDate": "2022-11-24T09:21:49", "ttl": 0, "sessionState": "8354e1075f18fa31824e5a0359f030b9668117031594964b521e5c6c20a032a7.faea1fa5-1167-4dba-8316-dd546e548521", "lastUsedAt": "2022-11-24T09:21:50", "permissionGrantedMap": { "permissionGranted": { "07255aff-3cd8-4c10-ad37-30ef1df511d8": true } }, "outsideSid": "c0889185-0446-47b4-bc19-18f58293ad29", "id": "0f73fd11-5356-4155-9ec4-122283deed16", "state": "authenticated", "sessionAttributes": { "opbs": "eafa6665-7e44-42e1-b759-eaadffea96bf", "response_type": "token id_token", "session_id": "0f73fd11-5356-4155-9ec4-122283deed16", "nonce": "0efb8b91-5c67-4e7d-b38d-199a2698adc7", "client_id": "07255aff-3cd8-4c10-ad37-30ef1df511d8", "response_mode": "form_post.jwt", "sid": "c0889185-0446-47b4-bc19-18f58293ad29", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4212d67a-75d9-43ad-b822-4913de9a89dd", "old_session_id": "35ae6087-adf6-4cc5-97e6-272f3d8c9cc3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:49" }, { "isJwt": false, "opbrowserState": "883e16a6-fbb8-4621-8dad-6083c488ac5d", "deletable": true, "dn": "jansId=175d9669-0166-41c4-8073-2e781aceec6c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:49", "creationDate": "2022-11-24T09:21:48", "ttl": 0, "sessionState": "54679eedcc3a86d07697cfe2dc6d814cced3a5e2dfe84c856f11535419129679.8e074213-81bb-45c6-a87d-ffc40f4c206e", "lastUsedAt": "2022-11-24T09:21:49", "permissionGrantedMap": { "permissionGranted": { "f66ccba5-3777-448a-ac8b-d2dd4679f3f5": true } }, "outsideSid": "2011cad3-6511-4903-8830-e4e3e6255950", "id": "175d9669-0166-41c4-8073-2e781aceec6c", "state": "authenticated", "sessionAttributes": { "opbs": "883e16a6-fbb8-4621-8dad-6083c488ac5d", "response_type": "token", "session_id": "175d9669-0166-41c4-8073-2e781aceec6c", "nonce": "b0c7498c-69f2-41a0-8d78-2eee23e2abff", "client_id": "f66ccba5-3777-448a-ac8b-d2dd4679f3f5", "response_mode": "form_post.jwt", "sid": "2011cad3-6511-4903-8830-e4e3e6255950", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "aa194bf6-32d4-4e37-a024-00f43156ca64", "old_session_id": "cf87994e-f59b-49c2-96d4-cd7905f53ac3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:48" }, { "isJwt": false, "opbrowserState": "1a6dc67c-f803-4033-af18-6166c339e61d", "deletable": true, "dn": "jansId=18f512e7-d78a-4ed7-a35e-755e4ec61ce1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:48", "creationDate": "2022-11-24T09:21:48", "ttl": 0, "sessionState": "2a50a21e00d5a570985ca7195cf6df251c8c002bce7209689193985d80439442.ea9007c8-b89a-4371-89be-1bf2285811c1", "lastUsedAt": "2022-11-24T09:21:49", "permissionGrantedMap": { "permissionGranted": { "48480d8e-f703-4004-b770-2b7589aa9014": true } }, "outsideSid": "1f4f2dfe-3170-4fa3-a3a8-cd2c932d9d07", "id": "18f512e7-d78a-4ed7-a35e-755e4ec61ce1", "state": "authenticated", "sessionAttributes": { "opbs": "1a6dc67c-f803-4033-af18-6166c339e61d", "response_type": "code token", "session_id": "18f512e7-d78a-4ed7-a35e-755e4ec61ce1", "client_id": "48480d8e-f703-4004-b770-2b7589aa9014", "response_mode": "form_post.jwt", "sid": "1f4f2dfe-3170-4fa3-a3a8-cd2c932d9d07", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "512f6a29-56fc-4cde-b84b-01517a7a3d51", "old_session_id": "7b048a89-2581-4e61-beed-d3715aef0f52" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:48" }, { "isJwt": false, "opbrowserState": "e26f248e-f07d-4e88-b096-f7d3303f9dd7", "deletable": true, "dn": "jansId=847023b2-2612-4405-880a-29967c73f0f5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:48", "creationDate": "2022-11-24T09:21:48", "ttl": 0, "sessionState": "d205b70c9bcec12ec6428f65b55ae51a36b82394856a6ea1f9c2a21303f1e180.6d87039e-9743-4ac7-904b-6a81253c34c1", "lastUsedAt": "2022-11-24T09:21:49", "permissionGrantedMap": { "permissionGranted": { "d15920d9-1395-44ea-8df8-f8ae55e95121": true } }, "outsideSid": "deb6500a-403d-4e1e-886e-1f671c797145", "id": "847023b2-2612-4405-880a-29967c73f0f5", "state": "authenticated", "sessionAttributes": { "opbs": "e26f248e-f07d-4e88-b096-f7d3303f9dd7", "response_type": "token id_token", "session_id": "847023b2-2612-4405-880a-29967c73f0f5", "nonce": "63aae2bb-f2a5-4b6c-a8eb-180a5b580af2", "client_id": "d15920d9-1395-44ea-8df8-f8ae55e95121", "response_mode": "form_post.jwt", "sid": "deb6500a-403d-4e1e-886e-1f671c797145", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d85ed0e4-f2c6-41af-b954-4e9382413d77", "old_session_id": "4f69230c-9430-4048-9801-05708e594201" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:48" }, { "isJwt": false, "opbrowserState": "f8190230-7c7c-4efe-88f7-9b784dff6880", "deletable": true, "dn": "jansId=6b32e1e2-8570-4fc9-85b6-cda114362fd5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:47", "creationDate": "2022-11-24T09:21:47", "ttl": 0, "sessionState": "9282c7d0c676a3b87b92144abc26175259377372c9dd5a5041ad2b4a898e20c5.1df3d726-243c-438e-beab-29780d683c7c", "lastUsedAt": "2022-11-24T09:21:47", "permissionGrantedMap": { "permissionGranted": { "d877e3a0-39c8-42b5-aa2a-905bd4f28383": true } }, "outsideSid": "a7a68126-da76-4d6a-8b08-1e55e78731d0", "id": "6b32e1e2-8570-4fc9-85b6-cda114362fd5", "state": "authenticated", "sessionAttributes": { "opbs": "f8190230-7c7c-4efe-88f7-9b784dff6880", "response_type": "token", "session_id": "6b32e1e2-8570-4fc9-85b6-cda114362fd5", "nonce": "6bfcebbe-84e2-4114-9831-ddf3ce843708", "client_id": "d877e3a0-39c8-42b5-aa2a-905bd4f28383", "response_mode": "form_post.jwt", "sid": "a7a68126-da76-4d6a-8b08-1e55e78731d0", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9fba6b15-ed2e-4d3f-8422-787a255aab7e", "old_session_id": "954e2151-4d1e-46a5-b5ae-0caaac9468d5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:47" }, { "isJwt": false, "opbrowserState": "031cf137-df88-4f82-a887-2961531e3e67", "deletable": true, "dn": "jansId=1af96a91-76eb-4c4f-9f88-25ca92b3f1e0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:47", "creationDate": "2022-11-24T09:21:47", "ttl": 0, "sessionState": "8fc4fcab9a459f0628940bc60af132d7133bfacc1d75d993d143d22597edbf79.86a72380-f553-4f79-ab0c-b9d9b357f7db", "lastUsedAt": "2022-11-24T09:21:47", "permissionGrantedMap": { "permissionGranted": { "cad511a9-0867-457c-8ab4-3569962ae09e": true } }, "outsideSid": "0d506745-40f0-4525-a3fd-22ab3c67aef4", "id": "1af96a91-76eb-4c4f-9f88-25ca92b3f1e0", "state": "authenticated", "sessionAttributes": { "opbs": "031cf137-df88-4f82-a887-2961531e3e67", "response_type": "code token", "session_id": "1af96a91-76eb-4c4f-9f88-25ca92b3f1e0", "client_id": "cad511a9-0867-457c-8ab4-3569962ae09e", "response_mode": "form_post.jwt", "sid": "0d506745-40f0-4525-a3fd-22ab3c67aef4", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c76fe3d7-e749-4394-abf8-9d9ace6d7d18", "old_session_id": "f820bbdf-1217-4c0b-b420-496ab0a53032" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:47" }, { "isJwt": false, "opbrowserState": "07ff4862-3d59-4777-a3d8-10884328b5c8", "deletable": true, "dn": "jansId=8194ab52-1d21-47e2-a8a0-caf96916dbbb,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:47", "creationDate": "2022-11-24T09:21:46", "ttl": 0, "sessionState": "c5475fda28e2dfd00d893a5ce9798eb50f6a7ef294eb9db431760427439f445b.43ff646b-d8d7-4dc6-9238-0bce43daae35", "lastUsedAt": "2022-11-24T09:21:47", "permissionGrantedMap": { "permissionGranted": { "cfd6dc0e-150a-4bb6-97ac-2c631c642a43": true } }, "outsideSid": "71ae1ee8-5eff-4323-b2f9-8aa06400ade9", "id": "8194ab52-1d21-47e2-a8a0-caf96916dbbb", "state": "authenticated", "sessionAttributes": { "opbs": "07ff4862-3d59-4777-a3d8-10884328b5c8", "response_type": "token id_token", "session_id": "8194ab52-1d21-47e2-a8a0-caf96916dbbb", "nonce": "e9a8ca7b-6465-4fab-9909-96411e1088a6", "client_id": "cfd6dc0e-150a-4bb6-97ac-2c631c642a43", "response_mode": "form_post.jwt", "sid": "71ae1ee8-5eff-4323-b2f9-8aa06400ade9", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6d310514-de0a-4b5c-b3c5-8c2f18f22b95", "old_session_id": "78219e2b-ebc7-4569-a5a1-930bacc96181" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:46" }, { "isJwt": false, "opbrowserState": "f3e5c0c8-829f-4010-9175-d56eb27f23c8", "deletable": true, "dn": "jansId=80fc6a89-4e2d-49ce-bd5a-ff558200f8a2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:47", "creationDate": "2022-11-24T09:21:46", "ttl": 0, "sessionState": "d453a5b9007e00e8cc2c4eade19f941450f51ce55426fc76d525548ea03b35cd.d6338ce0-4923-4c5f-aea7-f03b9e70076c", "lastUsedAt": "2022-11-24T09:21:47", "permissionGrantedMap": { "permissionGranted": { "8a4ba8b1-4110-4060-8cc7-c9cb820acd31": true } }, "outsideSid": "85236b35-1ead-411a-8b94-3349ee83d177", "id": "80fc6a89-4e2d-49ce-bd5a-ff558200f8a2", "state": "authenticated", "sessionAttributes": { "opbs": "f3e5c0c8-829f-4010-9175-d56eb27f23c8", "response_type": "code", "session_id": "80fc6a89-4e2d-49ce-bd5a-ff558200f8a2", "client_id": "8a4ba8b1-4110-4060-8cc7-c9cb820acd31", "response_mode": "form_post.jwt", "sid": "85236b35-1ead-411a-8b94-3349ee83d177", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "49b95e62-7639-4d43-990e-e677aba6fa16", "old_session_id": "4a1c9bf3-7c60-42f8-93d8-795d86bd2c89" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:46" }, { "isJwt": false, "opbrowserState": "50e380f4-c609-4b7b-895e-7836409b83ea", "deletable": true, "dn": "jansId=7dafae88-d3b7-4225-b61c-ba1644f765e8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:46", "creationDate": "2022-11-24T09:21:45", "ttl": 0, "sessionState": "2636c02b533d546bcf4dddb48891839f9ffd28b855aa54db25c1becc46cef036.53ec33d1-dc19-454d-affd-c3dc6bed416a", "lastUsedAt": "2022-11-24T09:21:46", "permissionGrantedMap": { "permissionGranted": { "fa3bd655-424b-4360-8ddc-fa6a88284aac": true } }, "outsideSid": "021466c7-18b7-4e85-acef-3bf42883526b", "id": "7dafae88-d3b7-4225-b61c-ba1644f765e8", "state": "authenticated", "sessionAttributes": { "opbs": "50e380f4-c609-4b7b-895e-7836409b83ea", "response_type": "token", "session_id": "7dafae88-d3b7-4225-b61c-ba1644f765e8", "nonce": "00bc54b9-40be-4695-b37b-cdf342d722db", "client_id": "fa3bd655-424b-4360-8ddc-fa6a88284aac", "response_mode": "form_post.jwt", "sid": "021466c7-18b7-4e85-acef-3bf42883526b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1fd9bdcb-b58e-47da-8d24-21674b473cb3", "old_session_id": "3ba385b5-a5a7-43db-8bb8-3b8c95b1454f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:45" }, { "isJwt": false, "opbrowserState": "e73bf7b8-5b36-4860-bf0c-1c78217ff39e", "deletable": true, "dn": "jansId=32912cbe-da36-47fa-8308-cca05ca354b3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:46", "creationDate": "2022-11-24T09:21:45", "ttl": 0, "sessionState": "5770802d3e63776f3a2b8efa746b4b4716e2bbd01795398d3cbe252216ef5b1b.9d287e80-cc84-471d-945d-51266ec846db", "lastUsedAt": "2022-11-24T09:21:46", "permissionGrantedMap": { "permissionGranted": { "3c67014b-a0f8-4ad6-a20a-50e531f5558a": true } }, "outsideSid": "c8355033-31b7-4ce0-a3d8-3d0246913392", "id": "32912cbe-da36-47fa-8308-cca05ca354b3", "state": "authenticated", "sessionAttributes": { "opbs": "e73bf7b8-5b36-4860-bf0c-1c78217ff39e", "response_type": "code token", "session_id": "32912cbe-da36-47fa-8308-cca05ca354b3", "client_id": "3c67014b-a0f8-4ad6-a20a-50e531f5558a", "response_mode": "form_post.jwt", "sid": "c8355033-31b7-4ce0-a3d8-3d0246913392", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "43ead01d-20ae-4c1c-aa31-e8bd89266091", "old_session_id": "a0db3916-b0a5-4ae9-a9ae-89d64d4bb91f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:45" }, { "isJwt": false, "opbrowserState": "5ecb9ea5-ca06-49c1-a6a6-37b660ea4610", "deletable": true, "dn": "jansId=2c1abb20-bac0-4108-9921-12a067f1bfe6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:45", "creationDate": "2022-11-24T09:21:44", "ttl": 0, "sessionState": "0e2df9217b8062ac36d2c28a7b995521cbf0b97e275a144a5452841588e1625e.9d0f88e8-6925-4ebf-adc4-d1d2c66b825d", "lastUsedAt": "2022-11-24T09:21:45", "permissionGrantedMap": { "permissionGranted": { "de76342f-8a29-4922-8b21-6c044be2ebeb": true } }, "outsideSid": "a51cac7d-dce2-478b-8cc4-cdf5d5831a48", "id": "2c1abb20-bac0-4108-9921-12a067f1bfe6", "state": "authenticated", "sessionAttributes": { "opbs": "5ecb9ea5-ca06-49c1-a6a6-37b660ea4610", "response_type": "code", "session_id": "2c1abb20-bac0-4108-9921-12a067f1bfe6", "client_id": "de76342f-8a29-4922-8b21-6c044be2ebeb", "response_mode": "form_post.jwt", "sid": "a51cac7d-dce2-478b-8cc4-cdf5d5831a48", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "bed6d87d-b9c2-47fb-8908-488731786d67", "old_session_id": "22dd3cb5-4615-4186-b17d-404e6162c6a4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:44" }, { "isJwt": false, "opbrowserState": "6be84711-a1b6-40cb-ad12-67b4387b57f2", "deletable": true, "dn": "jansId=0a69c522-55fa-46c9-a5cc-ee4d0ba7a048,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:44", "creationDate": "2022-11-24T09:21:44", "ttl": 0, "sessionState": "1f3031975f3454735f21dfd626c86fe3d76ab040b08781bf406b0798943f964a.e6b02de5-e311-4c54-9526-7cc1ab3d554f", "lastUsedAt": "2022-11-24T09:21:45", "permissionGrantedMap": { "permissionGranted": { "ff2ada7c-cf65-4256-9c80-ddfd7ddafc5d": true } }, "outsideSid": "4ec895a9-8c2a-4ef8-af50-f56277978786", "id": "0a69c522-55fa-46c9-a5cc-ee4d0ba7a048", "state": "authenticated", "sessionAttributes": { "opbs": "6be84711-a1b6-40cb-ad12-67b4387b57f2", "response_type": "token", "session_id": "0a69c522-55fa-46c9-a5cc-ee4d0ba7a048", "nonce": "6c5ab611-e164-48a3-9d01-14098f13dba4", "client_id": "ff2ada7c-cf65-4256-9c80-ddfd7ddafc5d", "response_mode": "form_post.jwt", "sid": "4ec895a9-8c2a-4ef8-af50-f56277978786", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "59d4089c-a088-4084-8529-86cc676d4cce", "old_session_id": "0dfbd284-3249-42d6-ba7f-674cad121702" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:44" }, { "isJwt": false, "opbrowserState": "a462e47c-3fcb-47f3-8f31-f897e8a8db35", "deletable": true, "dn": "jansId=b4279065-e3f1-49a7-9bb3-90ed2be3c3c3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:44", "creationDate": "2022-11-24T09:21:44", "ttl": 0, "sessionState": "fc579559aa9843e54d261347ddb6888cd3f21769d994bd139842e0e3782ca753.c8e67f55-10ec-4eb6-b403-01ad821cc122", "lastUsedAt": "2022-11-24T09:21:45", "permissionGrantedMap": { "permissionGranted": { "91010a95-15fd-464c-9e77-8f50aff30e56": true } }, "outsideSid": "91d0014b-8d47-46c5-9c7b-be87c8d090bf", "id": "b4279065-e3f1-49a7-9bb3-90ed2be3c3c3", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiI0Y2E3NjMyMi1mY2ZkLTQyNWQtOTc0ZS0zMjBlNTZmM2U2YjFfZW5jX3JzYS1vYWVwIiwidHlwIjoiand0IiwiZW5jIjoiQTI1NkdDTSIsImFsZyI6IlJTQS1PQUVQIn0.W_iUv1YIGx0nz3wDrTBlxbDX2j6Wxzd5P7Ktgr0CUVumMTd_PNuCCDC4GxhZlSBjbeg8OyrDZOtDqbWJjAwkBztF2KEMcAZLvY1l-EkNyF8sRIe8fAYp7T_9VLafaq-ZoxeE2CVxOI6tjHROFcEs0s9N-gUN69NMadY1gN97JvkrGjNEPL-Hjpo-l0BC75iv8X9xUUG-VapebuXs2NT_3BJAR1lsrRNANgvOatn-YLhRqHo3N5eTY1-pTsqUUuqHuQTeK9yjRmIi-dOZBkH1pjpD5rDd8qFLCNmrg9o-SgsHN5QPDTrqErxOTUA2jUTjhNNSv6JzHBVT5UIxsgsNMg.CcEGwoPfPdDeZ-Ra.j-uA8Nim5yv_jjPigVZjCFULDPV15Xlv2h3xSIzZmV2OPEUBkO_6ZO299GKu1nq0fNvB3Jejo23amG29ef-sJX0qUWLO6ppt2Ex8HOSw3QpsEX2Frz8vy4Dh4-s2xeL-bh0OqMhPd2tZxot5-DAsQF0nG_KirnOGICjr8zJ9mlx3YUOnjVPQG6K9dWPq2SGEXLj6f1EiSz9FwMtd3lNH07kEuxIhFqOeL1vuNrVIZa9FHAI4lZXUK9rdvoS0pZIxJE5C-QzvZvFKXkRB7pYm-XRRmdttWntmpd-QMwO_zCJZE-yTkbIWZ5M9MYkidQuZ4voWUJT0K41HnLRQTCjre1EkFM240dI0RjBPeoSqEsu6pKnFcbnPlqavw_jZC0vqYmJZZ5wYjvdYlyfIJ-kfjyQGBEnfw4PnPkDPI0yQiGhHiS4xIcO6zPQl4U_CCxb3cQttVJnu64CJ0VwuaiBsXnq__WhRO6juSxvXVB7tQGOmmmOS1W182sTI3g0_V16hskKLGwDxjbgOeal2erSHvnCHdpb1aBHSrnJumHCzd8CaAL3nR7LieA9Ma_m2jD-RGXKOA5MHZEHkkASBLhEwFcmaIXY7lmAOUNMRT3Zhpl0SEtQ2Eg4zn3Tc3k0oxabPWeW5YIJGedLqaNj2uEjcTjgOfbBDclmk5aAs82oepa63zCI-LC3KgvWTpRfzqxctlVIiOaVOmcz895HSfpmwOQDZnwX9pZbMO-TtVplSYiaWhmGCw94XzzdgtZt6ilr-jH_9N-DzJDBTlPn5_YUQChqqyCFN43TWBXDEWRKJPSDD3fPCJuwIUhYB-KvqjHBEYr-8v175z5KZq4kgiJX6kbNCfa5TlZiAbj7X5gjoVzBbEljlYK31n5wwBqS3GWqdnNxLJnbShbDUQc0D7wM_spzwGKw.NIDXk_zCp2GFAJXlmUNvRg", "opbs": "a462e47c-3fcb-47f3-8f31-f897e8a8db35", "response_type": "token id_token", "session_id": "b4279065-e3f1-49a7-9bb3-90ed2be3c3c3", "nonce": "454cf505-33fd-444f-b8f6-8ff4f4ad2465", "client_id": "91010a95-15fd-464c-9e77-8f50aff30e56", "response_mode": "form_post.jwt", "sid": "91d0014b-8d47-46c5-9c7b-be87c8d090bf", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d557cfd5-d887-46ed-899d-469ae6dc9dc5", "old_session_id": "10b86fe9-4083-4a7d-a0e7-acefcb4fc53b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:44" }, { "isJwt": false, "opbrowserState": "40c4dec3-c080-4287-b158-6ad42d880002", "deletable": true, "dn": "jansId=1262c164-bdce-48e2-bc4b-a8e56671a45e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:44", "creationDate": "2022-11-24T09:21:43", "ttl": 0, "sessionState": "35b7b4fb1a04aed7abdd3d66d337de74c194a8d2cb7d56428d4bc922a8268cb0.e66a1eda-1c3f-400c-bc02-3af975162c65", "lastUsedAt": "2022-11-24T09:21:44", "permissionGrantedMap": { "permissionGranted": { "a97005f4-3f0f-4505-bb64-03be9fcdd503": true } }, "outsideSid": "28649dfb-3731-4274-9e6e-a180e49eb1e9", "id": "1262c164-bdce-48e2-bc4b-a8e56671a45e", "state": "authenticated", "sessionAttributes": { "opbs": "40c4dec3-c080-4287-b158-6ad42d880002", "response_type": "code", "session_id": "1262c164-bdce-48e2-bc4b-a8e56671a45e", "client_id": "a97005f4-3f0f-4505-bb64-03be9fcdd503", "response_mode": "form_post.jwt", "sid": "28649dfb-3731-4274-9e6e-a180e49eb1e9", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "219606b2-dc12-4435-9526-13048e962e84", "old_session_id": "45eb5267-746e-4706-8aed-00129f5fcb34" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:43" }, { "isJwt": false, "opbrowserState": "9bf10891-7c1c-4832-b03c-76367abc8d12", "deletable": true, "dn": "jansId=7519e815-0f75-4b13-9967-64dbf183a3be,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:43", "creationDate": "2022-11-24T09:21:43", "ttl": 0, "sessionState": "9b67d99b33e33eafb5f172820e3eb5b840182dc4161cc53e464f237739a74a00.5f1cf818-1411-4f60-b779-dd496ddbf67a", "lastUsedAt": "2022-11-24T09:21:43", "permissionGrantedMap": { "permissionGranted": { "4d6e619b-e114-4310-b456-a3347a19e59c": true } }, "outsideSid": "18b47b9e-0d98-4dfc-a30e-649e6b5d64e3", "id": "7519e815-0f75-4b13-9967-64dbf183a3be", "state": "authenticated", "sessionAttributes": { "opbs": "9bf10891-7c1c-4832-b03c-76367abc8d12", "response_type": "token", "session_id": "7519e815-0f75-4b13-9967-64dbf183a3be", "nonce": "9eb991fc-6b2e-47a0-b677-f6880cbafe61", "client_id": "4d6e619b-e114-4310-b456-a3347a19e59c", "response_mode": "form_post.jwt", "sid": "18b47b9e-0d98-4dfc-a30e-649e6b5d64e3", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1d6b34db-a9fa-4e06-a327-1ff4d36938f4", "old_session_id": "1763da92-d141-4443-b81f-c48fb1488e0f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:43" }, { "isJwt": false, "opbrowserState": "93528e73-d751-4b70-8386-27c9f7c73070", "deletable": true, "dn": "jansId=53b8c3a0-b494-4093-b2ca-2915f8330a19,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:42", "creationDate": "2022-11-24T09:21:42", "ttl": 0, "sessionState": "297b0ab8fa350800d4124866746ad0d2525b5b4adbf7ea12ff7e3e5a5e901d5f.e00c7990-1577-4179-8562-92dfd6cabdb1", "lastUsedAt": "2022-11-24T09:21:42", "permissionGrantedMap": { "permissionGranted": { "a9208332-04e9-4577-831e-1c805289abe4": true } }, "outsideSid": "2c320a2c-d78a-4f4c-85c3-f80cc5325640", "id": "53b8c3a0-b494-4093-b2ca-2915f8330a19", "state": "authenticated", "sessionAttributes": { "opbs": "93528e73-d751-4b70-8386-27c9f7c73070", "response_type": "code", "session_id": "53b8c3a0-b494-4093-b2ca-2915f8330a19", "client_id": "a9208332-04e9-4577-831e-1c805289abe4", "response_mode": "form_post.jwt", "sid": "2c320a2c-d78a-4f4c-85c3-f80cc5325640", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "431e7bec-a73d-40a5-ab92-ae3891ec836f", "old_session_id": "180e490f-2f35-44ca-a62d-524805ee0742" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:42" }, { "isJwt": false, "opbrowserState": "f72761bc-7031-4db3-9c19-26ee3f00e856", "deletable": true, "dn": "jansId=61af08fb-0221-432d-b659-b229164df910,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:41", "creationDate": "2022-11-24T09:21:41", "ttl": 0, "sessionState": "26a0e3145944e31890f734973aebe7b832927170aedfbf8eeab1d4f07b20c6ab.b4bbf688-e85b-45b0-9f18-d6f0e95cac71", "lastUsedAt": "2022-11-24T09:21:41", "permissionGrantedMap": { "permissionGranted": { "4d41aa6f-d2a5-45d6-97a8-728c9c52f41d": true } }, "outsideSid": "eab38b1b-cc4e-4903-965b-ada1afc92550", "id": "61af08fb-0221-432d-b659-b229164df910", "state": "authenticated", "sessionAttributes": { "opbs": "f72761bc-7031-4db3-9c19-26ee3f00e856", "response_type": "code", "session_id": "61af08fb-0221-432d-b659-b229164df910", "client_id": "4d41aa6f-d2a5-45d6-97a8-728c9c52f41d", "response_mode": "form_post.jwt", "sid": "eab38b1b-cc4e-4903-965b-ada1afc92550", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b7779a27-9e7a-4929-aaca-0cb220be3c1a", "old_session_id": "bf74c347-335b-4ac2-9dd3-c7631a899cdf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:41" }, { "isJwt": false, "opbrowserState": "4d850523-7aaf-4db9-ad68-d0f713d3c1f3", "deletable": true, "dn": "jansId=85158968-fe61-46d6-beaa-dc38b8579521,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:40", "creationDate": "2022-11-24T09:21:40", "ttl": 0, "sessionState": "64d9c79715deafea6a638f0316e78e6ba30ac0dd08af39a8a3fc1cfe4ca85024.ae39c815-aa28-415d-b077-919545370d3a", "lastUsedAt": "2022-11-24T09:21:41", "permissionGrantedMap": { "permissionGranted": { "dc17d995-302a-46fb-9f43-8103e09fa5a5": true } }, "outsideSid": "eed78623-ba52-4e4c-ac75-abab2de7dbfb", "id": "85158968-fe61-46d6-beaa-dc38b8579521", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.dtdKRNmxnSKbsJ-K-5SEEmm3vPUugkbLi82BpWE5YLs-APBDmXau5KGhws6T-fpLvl3vEV7lgP9hSiFxTUVY_VNc9OYlmHqU1fXS6Hi5GKi_7pynGJyzpn1UxCiFhfSULqDIfgcvA0ek2VorEzyFjN_oRdKfvtP7So0GkbhAWb7RRh932AMzvmgTQasPSN9Za6ZVEpXWLTDhCs1KY8GMAluVw_5LTRo2JdMYxTyKsCPtkj1-RyYkyjUID3w-QfDI7wTbrjbslDJ72iePCQ3N1nDvDVlcQdzHfNHR5CBzUR-xKY2EGTtY930joLrDfIto80G4k1x4aNtn73LczUtJdQ.1bDkdE6CDHUeMTRtwfpn9w.s-MpLRO_IOrDkOJM51SCgIg-_12zpYsHTcJqW4Ow62oddbBVxwPDQNhuM6mzuUvQTIMUkpz0F6S_koTrElAZLOPSr0qWair4YjuV-e0AVw6MkKemfeuVDFTvscq-Q38f6fpTmW3WFjH7TVIgUG2GefK6-6GpXphw3T9Twmd_Cuyuul_vMzZNx2m79igoW7hK_Dreo-QCXEoYhCsOSCJvEshf355-t7ai-mdkhkFNVh2dBWPxZJrnppZ4pYCR5X3IGMa1jo1TYUoolg0H9_9gGaju4RPcfTMIl7WHZISd4wtYUbWW9bAJGFu5iBeJAQcMsrymd_5mPDZuxAH3nCseQfqUVCVi85ljGzMGHI_AN1zZ-BBnFddK6D2keYb2TvNUpUeqRvSQJgffBxwEQqgGygetGfLt1XL6cJ-5MpSm70Tu0wquZqsHc1Cb1ege3HIR0pfim2AE9CKWeaKQ3dQqyYdAIhjxrpbd9WeWr4zPfWwsEgcDQNkGdtiCOeXoT47ajKJiQN1AJP9e5EFAEthy6aIlwm9Yfz5OfNk4nV_sJHfRDufTTxCEhm1JH4oBCM7JcJ8s1fThSREF7jQMzoLdR3GuAVXkZTeYnPy-ojxax0qmaAhJtpyKzI5PZcRi-9o5kIlFfb_2MtLYeSlfrDig446lA3tyJ-5BRhtYvRY3TFS51jDhCsPIRzqsS9hldE9DgjYT0-2XkO3LHd3uXwVaWSRzqpbynlQEkcd34LipZQ_U8bhqSD1upMnfsmMuJASgHTPhyMg6LMPGuM3EhIOEcoi7LBhb2TZLEOBqsfU_nb-p3yHEuHi0rlSoDpUUsUCUvEKnBI_Sqmr-GWeyO9txuslvW2ZzaMMDtO_of79MZvSyQwS864cxE2rfN874l9GUvvIY8klOzDlOEgFAtKgnPR3L-TfPIAHVdFVQ9sjugjk.JSEnNTRTQ-896oVHwK7Zw6W5s8SrQJ1l3NhI67hUfp0", "opbs": "4d850523-7aaf-4db9-ad68-d0f713d3c1f3", "response_type": "token id_token", "session_id": "85158968-fe61-46d6-beaa-dc38b8579521", "nonce": "d01eadd5-9296-4333-8cd5-f16cb523b162", "client_id": "dc17d995-302a-46fb-9f43-8103e09fa5a5", "response_mode": "form_post.jwt", "sid": "eed78623-ba52-4e4c-ac75-abab2de7dbfb", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2c47e5d8-44af-49fe-9930-83b3b09ac1d5", "old_session_id": "863fac1b-b26f-4d9c-971f-c30b063ff1c6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:40" }, { "isJwt": false, "opbrowserState": "72c50453-db06-497f-a355-12f65c331582", "deletable": true, "dn": "jansId=7d18d2c0-dcbe-42f1-a514-eec92a1ebba9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:40", "creationDate": "2022-11-24T09:21:40", "ttl": 0, "sessionState": "47189b732057ebbbf643c611e9259c5e12dcd8eb47a71d5f0a2e4e6b5a2d3660.7d89f9c6-a9ea-40e8-9ee0-6c0f635d8107", "lastUsedAt": "2022-11-24T09:21:41", "permissionGrantedMap": { "permissionGranted": { "333f093d-cc38-487c-b44f-1fed939146e2": true } }, "outsideSid": "5fffaee8-7cff-4349-958d-b0536d98748f", "id": "7d18d2c0-dcbe-42f1-a514-eec92a1ebba9", "state": "authenticated", "sessionAttributes": { "opbs": "72c50453-db06-497f-a355-12f65c331582", "response_type": "code token", "session_id": "7d18d2c0-dcbe-42f1-a514-eec92a1ebba9", "client_id": "333f093d-cc38-487c-b44f-1fed939146e2", "response_mode": "form_post.jwt", "sid": "5fffaee8-7cff-4349-958d-b0536d98748f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3d7bce90-ffb0-4703-83f8-5d097b15b1cd", "old_session_id": "389d527d-49b8-4d46-a4b3-27d3a20cc378" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:40" }, { "isJwt": false, "opbrowserState": "929b400c-a05d-490f-800d-7eb3ac1be4ad", "deletable": true, "dn": "jansId=571ec525-eb38-4508-8e47-d209b3026cd9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:40", "creationDate": "2022-11-24T09:21:39", "ttl": 0, "sessionState": "24ae4410ba306e005e1758760ca762f90ab0ce270cb7b5fe03b7afd73da80357.1c772afa-1f4c-455a-a2a0-c776a2367448", "lastUsedAt": "2022-11-24T09:21:41", "permissionGrantedMap": { "permissionGranted": { "c742985f-26ba-4962-a570-87a35d891cab": true } }, "outsideSid": "d0e8092b-92b4-4b2f-9541-c04978c731a1", "id": "571ec525-eb38-4508-8e47-d209b3026cd9", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkEyNTZDQkMrSFM1MTIiLCJhbGciOiJSU0ExXzUifQ.m7ua0LdVE57NcuIsuZF28GQn5DJlvJMImpqVdaBpyNGdSbuoMHNrgJx6BBEKrZDpCMikG5KNJrfc56lwvjpye-zn7fGyTjBgUG-r0NIhERfVr2EzVld-O7BYCcthY6Z5AM4stP9yuYrVv0NkwPmKi6oGMTbLhecciDQIuruTgDitz3vXcHTcpBvqgT1YtzlSq8ieqz6VaMaoCnoL4ervJHhqW9BcBlvs2KlIsQPr-xtDLq8Avw6BE75QCyqJ0tPRwU3lR8QeqvHAYyAqreN4i9Y90XMHn4qOuvNd_JzziMXcuPnkWhIrsNA_rtuRGEqJOcKu5kYVcFHKn6JTHDv0tA.rZpjvWsPiT6Z6ntzhyj2Ng.g4n1cLjeSn3dyn5n6d2p4i_kNj99CtmrDa9UDixDgKn-FCGiWuqpTlxFG0vvCUDcOLAV9vD76ms4-9jQT9mfqRbgFe4MMgrLfk467gLv9XLZKSh6q98F6pZZQHPCGnnXZBgazZ1WGE3RW33uSfzHc65lXN_V9o1gQ06jI0k0lhL5ZXvzAxNbgWbZNg5csc2K6L75tGFLxdtZGTLY0Ir6KgJcvvIIOTUEd0oTDj4Ltrlwf95Htep-htoajSZCAoCv-FjXQxY6SodlBCFhQ3a38rfqeoScLdkxJsKW-HtybuDhGEgCJu12KrB8nckPjMDKo9pNGTLKw3IETDvcqTJAt4ulOv0-BEx6WD6KiJmU7_N7bJvMzqpC4DKbZKF6hIG6FkOdchI7kf9d9xpl21GmQG4mvZgFnRF7CCc5BVK1iF6pz65ezAE7qj70Mtqqq3ZX6Nif4zuIPtbrGdkZW70Zh8DS4xim3Cc0VPceU9dI5spdgXyutO2MWP-xkRTewSMFPBPZk7cXdEprR4wQXX2VLbx6u1_24NovXBw9jYON-zvLL4Db2q2vXEzmXalkKCTvlvSHKKAhO5WHyuhwJXUlNz47V_ev3MpoQ9MTs9Bq4xwjgo9fhVXUmrVVBAauHUXxBGxF1HHPila0p1xCd6N6RTjsTOnAempSmqqNtiPIrQoL54Dz2csFPfRO6YYoRGzuumiSOLe347dUFci9srciPIQVQMVAiEGP_Jc65F-cp5F6ybI_1P2YINeXO_gmpakTwA0YJNnheK9q5C7LGk7CEkK_evkThlpN27QRwY9MbRaLMX4IBzaTp4P16EyrLAta5I2KK_ZVdMBvUdVNAZ6rR-pU-LoZtbtEmr33k7pSrAp3Ow8g8bSQg0gOvtvalU_5IKWrr6SKBfXZjRs93iTPRw.ZLPqFqFaaE2ZcL-Eu2stOaLg5N1iL_8iRVVGZ16og_Qxz3eRKW5mNDDMSPBDG9MI8wWYtjg6XHql4bPdZlnhFg", "opbs": "929b400c-a05d-490f-800d-7eb3ac1be4ad", "response_type": "token", "session_id": "571ec525-eb38-4508-8e47-d209b3026cd9", "nonce": "7458ef6b-06b8-42ef-b348-e4f9ec80d9ae", "client_id": "c742985f-26ba-4962-a570-87a35d891cab", "response_mode": "form_post.jwt", "sid": "d0e8092b-92b4-4b2f-9541-c04978c731a1", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ae9153d8-c255-4c0f-8571-9bdeecdf06bc", "old_session_id": "275f9476-e9e7-44b0-baa2-38502c73bf5e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:39" }, { "isJwt": false, "opbrowserState": "18729b77-132a-48f2-b442-e709ea1784f3", "deletable": true, "dn": "jansId=2a0ed6cb-e4c1-4d8a-b1da-e28301a9ccf5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:40", "creationDate": "2022-11-24T09:21:39", "ttl": 0, "sessionState": "193f40d79dcc75b244e05f99e1569b7f8a5b1c6a0a0ecb29365d587ffac44691.5308f3e5-1e12-42f7-8845-4d5c5e2af9f2", "lastUsedAt": "2022-11-24T09:21:40", "permissionGrantedMap": { "permissionGranted": { "3a614c3b-6aa5-4fe6-b980-2209a2a1893a": true } }, "outsideSid": "1ee1e50b-a227-4b53-a9c1-cf60c9b4aa63", "id": "2a0ed6cb-e4c1-4d8a-b1da-e28301a9ccf5", "state": "authenticated", "sessionAttributes": { "opbs": "18729b77-132a-48f2-b442-e709ea1784f3", "response_type": "code", "session_id": "2a0ed6cb-e4c1-4d8a-b1da-e28301a9ccf5", "client_id": "3a614c3b-6aa5-4fe6-b980-2209a2a1893a", "response_mode": "form_post.jwt", "sid": "1ee1e50b-a227-4b53-a9c1-cf60c9b4aa63", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "45c03b9f-026f-428f-acb4-87a0272237e7", "old_session_id": "8fe116b3-40c7-4929-9c97-70ccb1cfc71e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:39" }, { "isJwt": false, "opbrowserState": "1d985cce-374a-4468-aa79-3c28b59b0126", "deletable": true, "dn": "jansId=b90d043d-766e-42f2-a3f9-f8e3fe7283a5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:39", "creationDate": "2022-11-24T09:21:39", "ttl": 0, "sessionState": "30c1e584f0cb0860a80f74986d3d0681c4b0816d398e1c213a75548c967060f3.d675a225-8cff-4cac-b4c5-8f9d4631ea4c", "lastUsedAt": "2022-11-24T09:21:39", "permissionGrantedMap": { "permissionGranted": { "b8044c42-a789-4fe8-bf86-8ce81f94c05c": true } }, "outsideSid": "775bf368-f442-414d-a0ae-513cdf1c2261", "id": "b90d043d-766e-42f2-a3f9-f8e3fe7283a5", "state": "authenticated", "sessionAttributes": { "opbs": "1d985cce-374a-4468-aa79-3c28b59b0126", "response_type": "code token", "session_id": "b90d043d-766e-42f2-a3f9-f8e3fe7283a5", "client_id": "b8044c42-a789-4fe8-bf86-8ce81f94c05c", "response_mode": "form_post.jwt", "sid": "775bf368-f442-414d-a0ae-513cdf1c2261", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a524fa75-b568-4192-a05f-cb614e471486", "old_session_id": "2f8e1ac4-d11c-41ff-981a-c3443f2d6a5d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:39" }, { "isJwt": false, "opbrowserState": "eb829d35-2209-4bb8-8b57-33d1f849adb0", "deletable": true, "dn": "jansId=176fe7a9-8f0d-4959-ba8a-66de6301107a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:38", "creationDate": "2022-11-24T09:21:38", "ttl": 0, "sessionState": "05c9a8eb5f0b8ec5a6b6d0788d689d913823c5412392b1e07f75607f0e75c8f3.d3b78e86-cc2e-4020-a65c-efdb18e0598e", "lastUsedAt": "2022-11-24T09:21:38", "permissionGrantedMap": { "permissionGranted": { "b4d98b0d-6fc2-4748-8ec7-b8593e046feb": true } }, "outsideSid": "64f2fea5-8263-4085-b5ef-a123da05aa9b", "id": "176fe7a9-8f0d-4959-ba8a-66de6301107a", "state": "authenticated", "sessionAttributes": { "opbs": "eb829d35-2209-4bb8-8b57-33d1f849adb0", "response_type": "code", "session_id": "176fe7a9-8f0d-4959-ba8a-66de6301107a", "client_id": "b4d98b0d-6fc2-4748-8ec7-b8593e046feb", "response_mode": "form_post.jwt", "sid": "64f2fea5-8263-4085-b5ef-a123da05aa9b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "88933014-9b31-4103-9619-adb77e529258", "old_session_id": "3cfdcc7f-a09a-421e-bdc9-13957ad28032" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:38" }, { "isJwt": false, "opbrowserState": "72661865-cea2-4b4c-9f76-0252e5c9a5c0", "deletable": true, "dn": "jansId=40a81ae5-7501-4376-9da3-e686bac7e3c6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:39", "creationDate": "2022-11-24T09:21:38", "ttl": 0, "sessionState": "26108d7751b769c0e76c93694dce74217280b724f837bfc6b145ed1fd81434f0.e21d88f1-63ae-47fb-a714-2113f8f4128b", "lastUsedAt": "2022-11-24T09:21:39", "permissionGrantedMap": { "permissionGranted": { "e52e1a2a-e88e-40fd-ae9b-421e5f35e294": true } }, "outsideSid": "ff59738d-dd92-49a7-9342-1532d6657ed9", "id": "40a81ae5-7501-4376-9da3-e686bac7e3c6", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.lBYXGToV34BgHgx5QQhHSNy3qHrkV73QGENTbkZJZkC9MM0s_dWiUA.kXk2_rUIoCxnxqWw.4n9shRxoH73Xv6IL01T2xvwH4RcwTUyeTgFB7I4vvocKVWXcW0eMm95_1S0e2pDgpeCsDKUVy6NJ0gW5TaAkShO3jS611RFkVddPjzoLbWJ3XKemiBI9EAYTcg7lHJpuaE3VTgYOl7k-Ais05UMKqxUOkmIjqUNZ9Jt2gRF_Ma-QBebGNfOSauKqZr2nDsCJuGEKJyedKMZbkstYWvSgzRc1QIQt6gS5_qkOHcNfBxThjHJUeAs8lF14ov_XqPJKzF_kB0CMRignDHrET_WIQ-0ERMU9UQFmwT3sP329dm--o_IWMOpUJLBNt-DdsU0JfXNGjHP3K6kA39aOj38EuzBs_Y3yH5FadUApt5UhnBXq-dD3WJSmJntzIHYhmRVBYZZzCB74f9hWG5Y2AlbcRXUSft9M6ns00C7OhANclrdXOPH_t8TlIsy-aS5H2eNJ1ov52CFLtNtuAsBbxwR5xJnaPq-qPajZNAlNHVGp13QpTTQ14xXpnRoPar6-ACdGST6EsEoX408PqUDHP0vAtwK1SrOQVEbv6tLYD7B9lwzv5vn4GXNc31BVYZBATz-PffUfnGavHkUg2NEpwqlmaMsUuGL8xXddNwk3ko51tuOlrGUkSIw8OY4BYAYmQbQm8yP_NGUabANGD4ImbPgt1l2swJTxJh7DThdqXabXtHIGtsfY68-9kunXwV1majdHOacCVxm9w1rjx-FdwJQ-LoXIPox58hw4j7Y-4eHX8cwMhH-mN3BWXNWMcbh-EfoDEPMare9JxX_NOrHTlfAPOwVM7RZwn1_7zJiOZc34L0z42-OmpFGHocX53h7d4AfGChx1iBqD4RRkh0Rtuj4hYmiyry9UhHbPbhkI9Hqn1prHoeq8QRt4EFZBoVou_zLvgFYPGS3ClEevAHvm7jThpVAcJNk.tuWTLf8s8zJjbK7T-bEiWg", "opbs": "72661865-cea2-4b4c-9f76-0252e5c9a5c0", "response_type": "token id_token", "session_id": "40a81ae5-7501-4376-9da3-e686bac7e3c6", "nonce": "8bc91707-9266-4cb1-97e6-a0bd47f4c47a", "client_id": "e52e1a2a-e88e-40fd-ae9b-421e5f35e294", "response_mode": "form_post.jwt", "sid": "ff59738d-dd92-49a7-9342-1532d6657ed9", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "91a53739-c091-4420-bcf8-eadeceb4bce0", "old_session_id": "05178927-c8f7-43af-865f-c46f08e9cffc" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:38" }, { "isJwt": false, "opbrowserState": "1f7614ea-701b-4521-922c-eba109c0fc25", "deletable": true, "dn": "jansId=be595820-793d-433e-9a1f-ac43cf47c3fc,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:38", "creationDate": "2022-11-24T09:21:38", "ttl": 0, "sessionState": "51a97d75e7f5c625573e47e3a7bd54ea982a8afe64f52cd0f744b0d8ce0cb789.21f8bff7-88bd-49c9-85ef-2441515da313", "lastUsedAt": "2022-11-24T09:21:39", "permissionGrantedMap": { "permissionGranted": { "e4b874f9-d6a6-4fb9-9cde-4a8aad644585": true } }, "outsideSid": "c8878708-8a7b-41b8-a60e-6b3cdb97059c", "id": "be595820-793d-433e-9a1f-ac43cf47c3fc", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.FCHuC_P-jm6SV3A-MobIybcVK2Y19ATkyEwYCGE9RQsSeOAQgeO78Osj_o7oVz_kR1bHzsxMywFPA7lqCojp8CcxvEt1ZthMO5VFF5nhN4JUIdE--Noou7QZGWgrIvlVH0lTcMcBGMyiwGQLXISpbPA0IjCVUmgn0yBjG1rl3ZpYhsMwluEWu3B0zh5-9GsEuI55sjMLLN0QV7qWRjCh447g5JrIEq9RiFD5C4bdEk5qppxktENRd47e9khmztLEiG8bGqcJfRoEi_kzMD2g-JKEEMjVxSTE13y6wSUhEIC7fW0S4d-ZyGCcnxPMp4u0YqMuV-QmZRkxznEa2ZftAQ.6bjCrurEZ6cx_lHfxRe--A.qrvU8g9-sGQDg8wn6ySOfEUnezYRL6AejlHEQshoMpTMqXzRearScKBWqXFQniIsgtZW2pHAKZ5C12n2W8GAGgiNP25aMgDE_OZr_cYvPmQ2iYRuC5myLJfLsxSlyNUnQRzX9qUjmDIWCYtIVn-vyd59yDoQCnOUm2RM4D6_cbFhfybrSdZQPFXLcigATv3rqZxQTc6U04pHPyJZ9rotzCMXIBiJ0mrUDYUltr5JfdvhwiZNOK_VDSIPQToM-q1eIQZLKfgHsZTkmwA2L4rxUmzykPEVOyoh1vjwk0mNX9Q6gxLBg3_-1kg1ukawQpfYZnJB3Qj-8KYe6TLfCt6sQJyRdH10lNOy87D50ZsULH-94ieR_ofVHPGFXf9fsx7jC97KaYyIejPwoQy51F-rQ9X7Sfc8Pc0Qc3fr69bjClSQj6AKXY7AWxvusZlGmIX6aQKJXjFko8mbFmrJO2PQrCa1x5aI5IKzBbPKFpFUXyPgG4s4ndOjgxQzCiKsT1TBtYBfUNJQGXBwEZCdKQFcWOsZS-_DoAlBquD9igAhH0BtJj67W8KpD9yeAtgXeEpP0Gc6AkBj7Kb2DLR5d1lFh2TfYqnsh-W0WZpn--zC7XGWxkfAM9YfiMr7_2Qk-N427P86lrfIW8eL4SZGcEic67_uuvlrhVDe-C20ilfqnUvi3cm4_lD6ZwGXacALEHcdZ9Sv6N4aQWcNNhD0QWbIis4UBRc6vJdjJ8s81ybhgS7a4BMq2-8TWbnsmTtG7pX137qJ8gmhbWggqMjHe6EXkYV40xvRVTlObiPwjnb-ceOhKILWrOrsSAyz-BSXTjPR0uIYN1rl2xJmLTmtu0ajokpMsNy-foMMXfas5LzSQSik7bdgwPkimhpUaRtZT0alOYWuVaoGau4rHoZaYvB0NQ.1lzjXRXPReBd6NmQ-S8qFQDPCME_2BKIQVM-KPEbd4E", "opbs": "1f7614ea-701b-4521-922c-eba109c0fc25", "response_type": "token", "session_id": "be595820-793d-433e-9a1f-ac43cf47c3fc", "nonce": "c51c9028-06ac-4689-95c4-8d3547090bc8", "client_id": "e4b874f9-d6a6-4fb9-9cde-4a8aad644585", "response_mode": "form_post.jwt", "sid": "c8878708-8a7b-41b8-a60e-6b3cdb97059c", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "306c6539-be46-4dca-971c-415041cf7305", "old_session_id": "43e40462-4a93-4882-84ed-b791a287f129" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:38" }, { "isJwt": false, "opbrowserState": "3a50698e-8112-4270-acdc-8fec49008f7e", "deletable": true, "dn": "jansId=38353e6d-cefe-4602-afce-04192cee1e2b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:38", "creationDate": "2022-11-24T09:21:37", "ttl": 0, "sessionState": "dd4b4d90d0252c6fe510c24415bed1e749649146e2e7834bf39c809b6ff7ca84.685b6639-3b98-4885-b63a-ca035e1fb8a3", "lastUsedAt": "2022-11-24T09:21:38", "permissionGrantedMap": { "permissionGranted": { "ad75e593-6001-4474-8f2c-1a28eb7b065e": true } }, "outsideSid": "11e07975-f9b5-4a40-9d80-296203b36040", "id": "38353e6d-cefe-4602-afce-04192cee1e2b", "state": "authenticated", "sessionAttributes": { "opbs": "3a50698e-8112-4270-acdc-8fec49008f7e", "response_type": "code token", "session_id": "38353e6d-cefe-4602-afce-04192cee1e2b", "client_id": "ad75e593-6001-4474-8f2c-1a28eb7b065e", "response_mode": "form_post.jwt", "sid": "11e07975-f9b5-4a40-9d80-296203b36040", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0f526047-a443-44e5-ab8e-b6b56f186cd2", "old_session_id": "55dc1101-a248-45ad-aef2-7c7ec33ab674" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:37" }, { "isJwt": false, "opbrowserState": "81d16fcd-9c7b-42eb-9d19-1e60bd980f9c", "deletable": true, "dn": "jansId=ba4336d4-7065-447d-a4c5-5de9d9eae4df,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:37", "creationDate": "2022-11-24T09:21:37", "ttl": 0, "sessionState": "9ea402aa664665c3aa2dd86878e9561da022f8cb5cde24928f8ec93edde9bad9.6cf43605-b523-4eca-832b-be7fd1667dc1", "lastUsedAt": "2022-11-24T09:21:37", "permissionGrantedMap": { "permissionGranted": { "f32fa1ba-764a-4490-8e9c-197dbea61f9f": true } }, "outsideSid": "209a713c-f890-435a-8482-140e336dfda4", "id": "ba4336d4-7065-447d-a4c5-5de9d9eae4df", "state": "authenticated", "sessionAttributes": { "opbs": "81d16fcd-9c7b-42eb-9d19-1e60bd980f9c", "response_type": "code", "session_id": "ba4336d4-7065-447d-a4c5-5de9d9eae4df", "client_id": "f32fa1ba-764a-4490-8e9c-197dbea61f9f", "response_mode": "form_post.jwt", "sid": "209a713c-f890-435a-8482-140e336dfda4", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "26725e38-9a1b-4bdb-9ecc-80dc97f56f6d", "old_session_id": "e1abef9e-d06f-4ff8-89ef-267d9f0311b7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:37" }, { "isJwt": false, "opbrowserState": "4402e134-b1b8-4007-8abb-926814bf57d9", "deletable": true, "dn": "jansId=2a9b5743-7e42-4213-93d2-f60a75af982b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:37", "creationDate": "2022-11-24T09:21:36", "ttl": 0, "sessionState": "554d05b73bd7ac3cbe60c762d03b01bf4725ce0ac6fdb7287a270fa5ecbb0e20.e79e61c8-7d57-4856-a6eb-526e58a830bb", "lastUsedAt": "2022-11-24T09:21:37", "permissionGrantedMap": { "permissionGranted": { "7a2fa78b-5c6a-42c2-a232-fe72d51536fa": true } }, "outsideSid": "ae89c18b-9953-41a6-b952-4a97d64cef93", "id": "2a9b5743-7e42-4213-93d2-f60a75af982b", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.WB9lijwLRzMRyEXEvhA25plBAbQrtWeV.VMaZdjQRwYl6h6li.-EwMVKLFkks6Zt6G-gqi6wlxLUKHpyU9xSb4hFVrizii5yohvJIRAY5JlZC9RxC_cuWyV2KKg7DdKhJpaHRHggVJixMAcynX1HbZw14-kyRIID_IhgDrWJmah1wLnOSkWhRS92gCJwPOQN7SaGgsfost0iM60gFcBG5MqQeK_MA2QoSvOZn8JJyilsXDmS2MVsJl2imHx5BOqLSeT58lgPXDEyU3Yzo1OA5bAC2DcXNSCXasvOsGZ4ifAjmcdkmTiVPK6FBk6AKRtiJON5AQHfUT273Wjkf7-lz9w515oSSZDq54hFfQykrFJVoTwh0QmTuVdmYGlr-mlxQSCnNyBeYEZgfu7aN1sEpBPL10vGS5z_tQAHcjLaHX7cJ8uYMC-Phqf_0fZxJpJDmQrxu-JC81FNsrnSkwzrVfrS_7htGSfZgf1Mfe3asOlS2zSKVvvVc4QgOcfCzVQy-D0IPS4n0rfkjVX82Hfbcjcevwt78hnp7TIbnrvHPXXBusyDVkmD6sOA6a5w4W-ixEMdsysEIMx170Ka2feXaqAqhEQqDvzlc86BgY_c03A8BAZcryHsxqyU8IdfEpkDhy9ISj-cQopfhfGk_ScV5UWpYjoqgH4FyW5fzFk-WuEhbzjb4hA1w8XP3Ja0N-nNU69JCz7Yvwg5DKhKzZBqAtkvqbXFkoJ6NRTKJIhNnLAhx_dAse8JrzpI5YXvTDxeNmjFowtY8XeqBP8pLi5W4zZ3iuwHuLZJCDPdi0w20Yo0ZalP3v7EQ4gy3KBNTw5RPPsy1NPWwL0ZM9XKWYm5s4K06H4qyUn3oUYm0kt_381U7-W8HSIYKRcZMVLJwWF3J0AqZj1ik9RtbAR2GHSBZ3ooZ1xNShi1qboBRg6ncZTyjrwxYOvhO8R_wM7yDjhx09vsjeMRNV5xU.pqkec8cdw_SUQ6v85DMwlA", "opbs": "4402e134-b1b8-4007-8abb-926814bf57d9", "response_type": "token id_token", "session_id": "2a9b5743-7e42-4213-93d2-f60a75af982b", "nonce": "2c643cb8-64c2-4c61-8337-a3915e7d4638", "client_id": "7a2fa78b-5c6a-42c2-a232-fe72d51536fa", "response_mode": "form_post.jwt", "sid": "ae89c18b-9953-41a6-b952-4a97d64cef93", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "edc0aa29-1475-4e1d-928c-9e23b5c9ec4b", "old_session_id": "03b51dbf-56eb-4a0c-afb8-1bd466caa678" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:36" }, { "isJwt": false, "opbrowserState": "7ad9b9b8-27e2-41bf-ad19-7a51cb25d717", "deletable": true, "dn": "jansId=7289830b-140c-492e-b7cb-e2ed01eb78e0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:37", "creationDate": "2022-11-24T09:21:36", "ttl": 0, "sessionState": "270bbc23d933ced7d67b6c93fac6ab36b0438132f550218b7b24226f78b28db4.0388a684-d507-41ff-af6d-545c63070124", "lastUsedAt": "2022-11-24T09:21:37", "permissionGrantedMap": { "permissionGranted": { "32de814f-64e8-40ec-bf79-8efa2c05d188": true } }, "outsideSid": "17036188-d098-4cfe-8e62-c6380a0defe9", "id": "7289830b-140c-492e-b7cb-e2ed01eb78e0", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.qSr_sWbyO9yhKMc8NxE82XP_Dc9Vl5SdLmGk6ASQnFNOCjc9et2MDQ.y2AoRDClNQIz3hJu.YAfMUwXuwOfmOqeCY81OYubWSdOg0ewmaxum1a-NKKi8USgkdVGcBlLlJbKOy6mDiJBZUXAoc9GdT2P0MuaKnb1rO5_e1E_GKzgxfxwae-J2WENtwDAA65rNKiGegZT7H6k4kqa4FiOdJWjFrTrMUm7m2R_aEMCOSGvR_HlQSi5mOFj0A4IKDK_dRARgD7_GbGGnDtPvKb7MZlKgp4mN31gLfUVTRkhtUPqLX-G9y7_RGZ1Kk3Wi6YMUCVss_kLaX1lKWduOcBWfnE_JSQpPmauNlkKF9ClgRL-rfHdKSzPkEslRyis2DOHSslOYnd7Uf7hZPek_iEKtxI7bQ6gNWtvUOjUjp5yxQBXkkSoOtMf9j5BU44AZbXL4bqfW_H2OENHl02FCNYdLz2B2Q1gphGa197CBtH3azuI2xwzVMCnpIQ_iGJirhPwU4LUox8M_IFG50j7Fa-KGA1k20DqBYsCYbn0mijD710SwLbWMQXhYlgwSfiBsJaszzcsOFMFvx1XXRNB0oL7l_tJya1KPjSzEiRu06i6ExY8p4tqCOTjSISl11vTjD8avP3mjgBT8Bd13Ziib_gsAeZUPWnvmxbG-GefbbnKoUQQxiCUD8ROOaruXLcDb-cMN3XYM44W2SFUiV64z6kwgZ-uAc0OmMliNbOy03qFtxj0KiI5xFDaaW-oVnR4CpZ_OaN8vVYukH1gqUoVLEJuyuHGe97sZWAwB0yFF3oRr3B6ewsNMy5U2wzPpjkCSR-fHmxJR4NELD_ubQliThJK527nqtLePIfM-1F6IE5UOqtoy4pTxNgg8bj5bNNlp8_eAVjlJXVhvDV2DJgUJj1TiJmmoIvsUEK0lL8cSPMLlE1o4YEhTX5mp2bU8Q_vEyxUH9l570Huwk0y1.Eykmxq5dHfdFdBKHX8Sqnw", "opbs": "7ad9b9b8-27e2-41bf-ad19-7a51cb25d717", "response_type": "token", "session_id": "7289830b-140c-492e-b7cb-e2ed01eb78e0", "nonce": "819e7692-1237-4f73-8777-755bcfffd7d6", "client_id": "32de814f-64e8-40ec-bf79-8efa2c05d188", "response_mode": "form_post.jwt", "sid": "17036188-d098-4cfe-8e62-c6380a0defe9", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3a888707-04c3-4b07-9314-5eb0c37536a4", "old_session_id": "c018a27b-daff-42a3-a34c-0e38799aeadb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:36" }, { "isJwt": false, "opbrowserState": "3a21dd50-1ef1-4171-9895-632bfba30504", "deletable": true, "dn": "jansId=025a708f-107d-4f55-9b96-cda5f5fd32e6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:36", "creationDate": "2022-11-24T09:21:35", "ttl": 0, "sessionState": "3865bff6fcb68a9d39269e036ebfdf11e6ead099ba86c7848fff396f835b7d6b.da5587f4-6333-4c35-995d-4c78bec1db21", "lastUsedAt": "2022-11-24T09:21:36", "permissionGrantedMap": { "permissionGranted": { "6b296e21-cf0e-4328-827d-9110cb5e2754": true } }, "outsideSid": "a21825dc-d1fd-4027-a4ec-8a307d6fa6e0", "id": "025a708f-107d-4f55-9b96-cda5f5fd32e6", "state": "authenticated", "sessionAttributes": { "opbs": "3a21dd50-1ef1-4171-9895-632bfba30504", "response_type": "code", "session_id": "025a708f-107d-4f55-9b96-cda5f5fd32e6", "client_id": "6b296e21-cf0e-4328-827d-9110cb5e2754", "response_mode": "form_post.jwt", "sid": "a21825dc-d1fd-4027-a4ec-8a307d6fa6e0", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "25ef0fea-e340-4ae7-b8ee-7f0a8f53ea7e", "old_session_id": "3869e4d0-b1fc-42fc-ab84-0489d0758fb1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:35" }, { "isJwt": false, "opbrowserState": "dee528ac-f89a-42c4-b3fb-33a1a6f48a52", "deletable": true, "dn": "jansId=b7d37034-53dd-43a2-a0ef-10c132f15ba2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:36", "creationDate": "2022-11-24T09:21:35", "ttl": 0, "sessionState": "cfed6e3d1e017b4a4ef24f9beb565336429818d99b71525e740025c3a3ae43ab.e0962b4b-eb12-4fa6-acbb-1ae134e48936", "lastUsedAt": "2022-11-24T09:21:36", "permissionGrantedMap": { "permissionGranted": { "a9511f5d-7326-47d3-a874-2a12c0f872a4": true } }, "outsideSid": "2692feb8-2dac-4054-adec-fe3f73f1c33f", "id": "b7d37034-53dd-43a2-a0ef-10c132f15ba2", "state": "authenticated", "sessionAttributes": { "opbs": "dee528ac-f89a-42c4-b3fb-33a1a6f48a52", "response_type": "code token", "session_id": "b7d37034-53dd-43a2-a0ef-10c132f15ba2", "client_id": "a9511f5d-7326-47d3-a874-2a12c0f872a4", "response_mode": "form_post.jwt", "sid": "2692feb8-2dac-4054-adec-fe3f73f1c33f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "160cf992-86b3-41d5-b233-b9258d0b1f9c", "old_session_id": "b9470eec-2bb2-4497-a898-d577f67f97da" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:35" }, { "isJwt": false, "opbrowserState": "8e074573-e75c-4f4e-b341-8b9e4ad4936f", "deletable": true, "dn": "jansId=65d12e8c-25cb-4f2c-822e-a998ab747ac9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:35", "creationDate": "2022-11-24T09:21:35", "ttl": 0, "sessionState": "157923563da0a9f5f2ef67443c9f13bcbf665d45c9d895fc48201b81b742b2ab.79ab87a3-d4b5-4f6a-a3a2-f72be9d45e35", "lastUsedAt": "2022-11-24T09:21:36", "permissionGrantedMap": { "permissionGranted": { "67c8e18e-3a57-435a-ba5d-9a225f82a618": true } }, "outsideSid": "222fdbbc-0b32-4c6b-b241-006f791140ee", "id": "65d12e8c-25cb-4f2c-822e-a998ab747ac9", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.8l8-H9Tk5j06TI0CaSYkdqL5465vsTMs.ZZfv-i5veDmTQle-.W6SolDk4li7idHjfLpCm8Ifv7iPBubQwTiJP5JeMNSYyaTXKgZ2ttYH6WYCe9rLKBWdTha0Rz2vs2iZltrNDDxWXneRIsEgdaNkxWZhg1AwuqO8u5wujoetVd9hcowCIdSDZAT9nqTJ7IS4hLDvhxeqk54gDgfZpcTQH2N0oF-sHnuK55y7iyfJn3Qw7ldsBTOCwNFund02F6B-Sux9brma_LpQBqeNLuzxBzVRk_33CJqb-KVmZPKBffcUoYxFDe5KDhyCT10YBYaC77waKcmwuNrnTitRjLjxJ2MFPIQfJ-pcGVtYpSgW6m_Sz3P31vEjOAn35Gh28xC2ZfktMFgWesO905MGjjkAfCgXamLDqRKuZUmddMt0Fh5KgrbxZu4-zV3h7StwuTKb8ETl7grV_eKgRch0VknL49kdEqEd1NwO1qTVV1gmuyMmeYjySRM7_QJi6x2tCB1nTiehlfc4LGjSfIsN9Fr0zezmMsA94ccizDtaQSRVDsOCWTxGej8FUwWSsFeFDUGMLWDkgPNIc113pNDD5Vj4EBlJsCZFrP_HhpEnPmozB3bFid4aRxuip9H6aWx8_aapGE9MfN4l6TLEwIql8OxiiWRnNkUWrvi4UcYVk47JlSBIj65hhvIvjQOjOTDtyhoJGTEmk46-3JlzLEbrRfoUEyDXKm8q96KoAjk-c5bMlG__1JBo_cPOlLplHcT3d4AIYIpFunX-Kka0BhwxqIscr4igMHrKaock4TxYcpLXSwx668-4C8Ju1HP_Oh44bFe0_UsMj9SOyJiR8iIeL3IgBkqwdIYrTaOMws7U5_vvvxHqcI5kPaNXvuEOOmvWxegpF1AkPQis-Yp6sXev5X4rLqP63J5y1ec10atLinlraY82BfOwW2FIm.nt9hy2aFLCvugKyvYWU5hA", "opbs": "8e074573-e75c-4f4e-b341-8b9e4ad4936f", "response_type": "token", "session_id": "65d12e8c-25cb-4f2c-822e-a998ab747ac9", "nonce": "bc3bcd17-3a2e-47eb-93aa-d4c1f0b7d1b9", "client_id": "67c8e18e-3a57-435a-ba5d-9a225f82a618", "response_mode": "form_post.jwt", "sid": "222fdbbc-0b32-4c6b-b241-006f791140ee", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e917b7ca-f89d-4abe-b42c-0aa8f6213ab7", "old_session_id": "aa90d9e2-06b0-4721-84a0-5256d5d1842b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:35" }, { "isJwt": false, "opbrowserState": "76c5e0ee-f997-468e-a7d6-a4c569bb303e", "deletable": true, "dn": "jansId=83c5d9ac-096b-4f99-807e-e0b3fe566e58,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:35", "creationDate": "2022-11-24T09:21:34", "ttl": 0, "sessionState": "eeb65f20b7ce0b47890f450a82bea4b51bd5710162ef1bd52fc99a85fa562f27.902b5580-2b92-49c6-94ea-12cd07d0bff2", "lastUsedAt": "2022-11-24T09:21:35", "permissionGrantedMap": { "permissionGranted": { "b7ad80d4-3982-45a7-ac86-b2d9a8bf482b": true } }, "outsideSid": "22acb1aa-ab29-4144-9478-658f5acd3f91", "id": "83c5d9ac-096b-4f99-807e-e0b3fe566e58", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIxMTlmZWI0Ni1lMGNmLTQ2NjEtOTJkYS05NjVhMzE1MmE5NjQiLAogICJub25jZSIgOiAiMmQ0M2JlOTMtZTUzZi00Y2NiLWEzMmQtMWE0NDMyOTA4ZmE5IiwKICAiY2xpZW50X2lkIiA6ICJiN2FkODBkNC0zOTgyLTQ1YTctYWM4Ni1iMmQ5YThiZjQ4MmIiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.GiR-BTnFPBbOmDV-nqFFgrJaInhSyotoNRfedjv84miaiiFiHt_8xmWo7tRX-jsIJ-HUL8tdy-XZYZp79F8bAQ0lRrzw7EXJ3W6dGNEY38h-eBBZVbi0Dghj3ZOrkCl5Blcn172r0Mw5PgmwzadlnGO7ALgnlo6zI4AuWlVne4oRJU3nvLA7dknSz4_IqCEmmYTwommF3PVytIyoaMxHQG5CByFjSCApd4IaEtqshS_qx39G3dfXAwXTLVldO_1QNNm1MeYOB1VnntgQGk65P22Xfj3ZUTjhOiutW8kJqR-Lh8j3EQP2s0AL3BLMbru0WjWzoYV_cozdJdGM6EYgew", "opbs": "76c5e0ee-f997-468e-a7d6-a4c569bb303e", "response_type": "code token", "session_id": "83c5d9ac-096b-4f99-807e-e0b3fe566e58", "nonce": "2d43be93-e53f-4ccb-a32d-1a4432908fa9", "client_id": "b7ad80d4-3982-45a7-ac86-b2d9a8bf482b", "response_mode": "form_post.jwt", "sid": "22acb1aa-ab29-4144-9478-658f5acd3f91", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "119feb46-e0cf-4661-92da-965a3152a964", "old_session_id": "b3cee279-7c75-425d-a65d-4be5ae538050" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:34" }, { "isJwt": false, "opbrowserState": "c68203e8-8104-4fe0-aadf-952c05c94416", "deletable": true, "dn": "jansId=ade5781d-9c16-40c9-b817-48e8b8d70a65,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:34", "creationDate": "2022-11-24T09:21:34", "ttl": 0, "sessionState": "352fbb6ce250c34a49c197233131f50d0cda0caad2848bbe341da017ce1ffe83.1fbd3c0f-4aa1-4486-9842-aefb62311d27", "lastUsedAt": "2022-11-24T09:21:35", "permissionGrantedMap": { "permissionGranted": { "841b24e0-4117-4c9a-97ca-dccf88445550": true } }, "outsideSid": "8ade0fcc-3e07-4174-bdb5-19687d0c1fb8", "id": "ade5781d-9c16-40c9-b817-48e8b8d70a65", "state": "authenticated", "sessionAttributes": { "opbs": "c68203e8-8104-4fe0-aadf-952c05c94416", "response_type": "code", "session_id": "ade5781d-9c16-40c9-b817-48e8b8d70a65", "client_id": "841b24e0-4117-4c9a-97ca-dccf88445550", "response_mode": "form_post.jwt", "sid": "8ade0fcc-3e07-4174-bdb5-19687d0c1fb8", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "169505cd-ac50-4711-bb89-afc7ca151849", "old_session_id": "2bbcb6cc-f6a9-4869-b215-6f33457b0ff0" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:34" }, { "isJwt": false, "opbrowserState": "0c513ec8-8197-4b94-9735-086e59729837", "deletable": true, "dn": "jansId=74821da9-0fb5-45e8-ba8c-586a4767c4e2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:34", "creationDate": "2022-11-24T09:21:34", "ttl": 0, "sessionState": "9f9b555c23215ec24c43910636e7b3a0a25e18f5f05a09e0321af7879e7e005a.8a277aea-c5dc-4b29-ad94-edacf35ec17e", "lastUsedAt": "2022-11-24T09:21:34", "permissionGrantedMap": { "permissionGranted": { "6f750144-2b87-4d22-9ee0-d8b77351221d": true } }, "outsideSid": "ce304504-a44b-473c-a8b4-634bcea0db4c", "id": "74821da9-0fb5-45e8-ba8c-586a4767c4e2", "state": "authenticated", "sessionAttributes": { "opbs": "0c513ec8-8197-4b94-9735-086e59729837", "response_type": "code token", "session_id": "74821da9-0fb5-45e8-ba8c-586a4767c4e2", "client_id": "6f750144-2b87-4d22-9ee0-d8b77351221d", "response_mode": "form_post.jwt", "sid": "ce304504-a44b-473c-a8b4-634bcea0db4c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "385aa7d7-17c1-4383-963f-c7b8d865d28d", "old_session_id": "8e15b702-2022-40da-85d8-bdcd9d8a2fac" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:34" }, { "isJwt": false, "opbrowserState": "e5f75bc9-8df9-4cc2-a39e-cb9004b739ce", "deletable": true, "dn": "jansId=b29f84e4-68bd-4fb1-8177-fb574c00fbee,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:34", "creationDate": "2022-11-24T09:21:33", "ttl": 0, "sessionState": "7925cee37f0469109f426c1f1d83498486d8ac3d18ee2fccb9bed2c98489b5a5.203f75cc-db4e-4040-8218-e93212ab95b6", "lastUsedAt": "2022-11-24T09:21:34", "permissionGrantedMap": { "permissionGranted": { "99036682-09b8-45e3-b058-3abb6e092d5e": true } }, "outsideSid": "b9c53b73-c28a-4754-9496-c4d42da204cb", "id": "b29f84e4-68bd-4fb1-8177-fb574c00fbee", "state": "authenticated", "sessionAttributes": { "opbs": "e5f75bc9-8df9-4cc2-a39e-cb9004b739ce", "response_type": "code id_token token", "session_id": "b29f84e4-68bd-4fb1-8177-fb574c00fbee", "nonce": "991ecc0e-c4f9-446c-b801-bab4ea6ccc75", "client_id": "99036682-09b8-45e3-b058-3abb6e092d5e", "response_mode": "form_post.jwt", "sid": "b9c53b73-c28a-4754-9496-c4d42da204cb", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5125e913-98f0-4a89-933a-b71aaf3fd42f", "old_session_id": "03980622-14eb-437a-8552-98ef599fea97" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:33" }, { "isJwt": false, "opbrowserState": "b45fc7bb-5880-4e48-8965-7fa5004de136", "deletable": true, "dn": "jansId=2e488028-bd74-475a-b26f-e7fcc4a62f0e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:33", "creationDate": "2022-11-24T09:21:33", "ttl": 0, "sessionState": "7950c96b7db28be63ec0aa4176fa7096d2d5ae8de8b5282813b838a2c232ffa5.c76c002e-16df-4ee1-9898-e1709b125785", "lastUsedAt": "2022-11-24T09:21:33", "permissionGrantedMap": { "permissionGranted": { "8ae5adaa-9547-4fd8-b889-322209bb5434": true } }, "outsideSid": "7994e129-1e5c-4221-8bd7-086e0f0b0e02", "id": "2e488028-bd74-475a-b26f-e7fcc4a62f0e", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI2ZTBjNmQ4MC1mNmU4LTQyZjMtYTEyNi0yZjI2NGY4MGE0NDMiLAogICJub25jZSIgOiAiOGI4OTIzNWItY2E3Mi00Y2Y4LWFkYTItZGE2MzJlMmE0Mjk2IiwKICAiY2xpZW50X2lkIiA6ICI4YWU1YWRhYS05NTQ3LTRmZDgtYjg4OS0zMjIyMDliYjU0MzQiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.XqV6DdsiyrUwQOS3JicrYlyplLceGLaadKJ-4XR7bg6C3wt1WZeWfpdNySvL6Wyg92hCLV0UxIFlQ1YHY8BUP5ovzEkkqu00hdJdSFohkxvbkT28j4Oi64VSWVKMdXYTKEPeT6GH9HAVFRPJl9eOo7VGIaChv8qrb6BVfPay6hZ3VpzJIKzOcPeK2exKo4qmnwlKC421RSUkRh1XI_s_IszobaP-JhEjZDJQz0k__YSHqRL61cIU99HOcjwbNwkKxkddB3T0FsbzmnKQsXsJU7m317T6wGQ9pKa5MrMnmk2lnKQ5RI2mVAAHOG2GBGDoeZl9Q048WWPbGBPbHDLazw", "opbs": "b45fc7bb-5880-4e48-8965-7fa5004de136", "response_type": "code token", "session_id": "2e488028-bd74-475a-b26f-e7fcc4a62f0e", "nonce": "8b89235b-ca72-4cf8-ada2-da632e2a4296", "client_id": "8ae5adaa-9547-4fd8-b889-322209bb5434", "response_mode": "form_post.jwt", "sid": "7994e129-1e5c-4221-8bd7-086e0f0b0e02", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6e0c6d80-f6e8-42f3-a126-2f264f80a443", "old_session_id": "2f03edb6-8db9-4533-a0ba-6eb9985b89bb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:33" }, { "isJwt": false, "opbrowserState": "c444913e-1c58-4e4b-b8e3-cbe729de7b33", "deletable": true, "dn": "jansId=38a8c383-284b-4d6d-be07-da367265a6e7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:33", "creationDate": "2022-11-24T09:21:33", "ttl": 0, "sessionState": "4483048e4ea6e1332513c4b29c9467c1cb6dca3ffdb65950dc1ad0c32382e468.66d92437-fd01-472e-a8a5-c96c61cc148b", "lastUsedAt": "2022-11-24T09:21:33", "permissionGrantedMap": { "permissionGranted": { "56d3fbcb-7254-4437-b84c-d964319e3929": true } }, "outsideSid": "56822e84-c0ac-4da4-a4ca-47b278f8d5d6", "id": "38a8c383-284b-4d6d-be07-da367265a6e7", "state": "authenticated", "sessionAttributes": { "opbs": "c444913e-1c58-4e4b-b8e3-cbe729de7b33", "response_type": "code", "session_id": "38a8c383-284b-4d6d-be07-da367265a6e7", "client_id": "56d3fbcb-7254-4437-b84c-d964319e3929", "response_mode": "form_post.jwt", "sid": "56822e84-c0ac-4da4-a4ca-47b278f8d5d6", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "82385b3e-d3a7-4bc6-ab49-0c404559c82a", "old_session_id": "a755eb56-467c-471c-a463-b8866faeb472" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:33" }, { "isJwt": false, "opbrowserState": "c15a8c94-e161-4db0-b15e-5fdc1f5d637b", "deletable": true, "dn": "jansId=b93b8b55-57d4-448a-9149-64c4353c7fc8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:33", "creationDate": "2022-11-24T09:21:32", "ttl": 0, "sessionState": "554347e9a2f13bbf0518a190aa1688ff6a5c0f7222dbbc20cf8623f729267abf.6d5a545f-22d8-4c6b-a9bc-f4fc314991ef", "lastUsedAt": "2022-11-24T09:21:33", "permissionGrantedMap": { "permissionGranted": { "ef1a43b1-8fc4-47bd-9d69-3b40c84ae74b": true } }, "outsideSid": "1d283d5e-69c6-4422-85c6-911bdc9fb963", "id": "b93b8b55-57d4-448a-9149-64c4353c7fc8", "state": "authenticated", "sessionAttributes": { "opbs": "c15a8c94-e161-4db0-b15e-5fdc1f5d637b", "response_type": "code token", "session_id": "b93b8b55-57d4-448a-9149-64c4353c7fc8", "client_id": "ef1a43b1-8fc4-47bd-9d69-3b40c84ae74b", "response_mode": "form_post.jwt", "sid": "1d283d5e-69c6-4422-85c6-911bdc9fb963", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a4be725e-92c3-4d89-84b4-836a074ef2ed", "old_session_id": "8306a5c7-eca6-4b02-99c1-01cf2771b6ea" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:32" }, { "isJwt": false, "opbrowserState": "06ae1454-f102-4b7d-a6aa-3c4cf90c80b4", "deletable": true, "dn": "jansId=bb3f1083-5d05-4c51-aec5-2b1b618e2b73,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:32", "creationDate": "2022-11-24T09:21:32", "ttl": 0, "sessionState": "f858e6357b796665ea98eb3da1a045d95f5209b5e51ef8bdc4c14457b52030d5.a5073879-34db-41b7-b303-ed09e73ce560", "lastUsedAt": "2022-11-24T09:21:32", "permissionGrantedMap": { "permissionGranted": { "1b6627c4-81db-4feb-ade3-28c8a7583ef6": true } }, "outsideSid": "6c8e762d-92c3-4778-8999-618b285e7534", "id": "bb3f1083-5d05-4c51-aec5-2b1b618e2b73", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJiZjY4MjkzMC0wOTRhLTQ3ZGEtYjM3Mi1lZTA5Yjc0ZTFkOTEiLAogICJub25jZSIgOiAiMzliY2VmNWUtMmUwYy00NDkyLWEzMGYtZGFlZjk5Y2QxZTBmIiwKICAiY2xpZW50X2lkIiA6ICIxYjY2MjdjNC04MWRiLTRmZWItYWRlMy0yOGM4YTc1ODNlZjYiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.NJkVbWA2aaSLevSEErjsEXjyeNlHjpJPlaBHvJq_thXbAQ6bGX5ab4Ha3cmxB7-PrSwnON7Vx-04Iu5iFGg9Hs0-kppGceYyVgndPZsq2hPxXIFopkllsLE93_uEfu9DVRX5smtkx4k8YQs6PU6dhBx1jWjwyGmqTCggvYvWlfa6FRG6QZBSZmu3NPPUqd1GMoCZtjSJ8KODtaU-xPaog5JbSqYaDfETlvQPojwnxwhU1SXWgC6CUILvQJ157TyOyG2HyWKdPwAoBkEB26o4Z-XxEgaUB-D8znWqgcq3ctDPz6jcTCGNd3IfehrKWpp5EaL1XMw7B0bPSkJUZIbt-g", "opbs": "06ae1454-f102-4b7d-a6aa-3c4cf90c80b4", "response_type": "code token", "session_id": "bb3f1083-5d05-4c51-aec5-2b1b618e2b73", "nonce": "39bcef5e-2e0c-4492-a30f-daef99cd1e0f", "client_id": "1b6627c4-81db-4feb-ade3-28c8a7583ef6", "response_mode": "form_post.jwt", "sid": "6c8e762d-92c3-4778-8999-618b285e7534", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "bf682930-094a-47da-b372-ee09b74e1d91", "old_session_id": "714672eb-a7c3-47ac-8407-97d42f80930d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:32" }, { "isJwt": false, "opbrowserState": "83b81802-c3b3-482f-a6b5-b5c79cfbbfe6", "deletable": true, "dn": "jansId=17fa70dc-0022-41f9-87aa-9d773b7e54ab,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:32", "creationDate": "2022-11-24T09:21:31", "ttl": 0, "sessionState": "0c3bb87dbd9fcb6573b98f677a0a42eb9fc855d233ea7c7df939b20557bc9ed8.27672565-2c7f-4a1d-8b9d-a644b46efbb4", "lastUsedAt": "2022-11-24T09:21:32", "permissionGrantedMap": { "permissionGranted": { "f9f80ad4-b1b7-4cc1-a633-2dae42ede569": true } }, "outsideSid": "efef07ad-dbfe-4194-8518-577b94b9e24a", "id": "17fa70dc-0022-41f9-87aa-9d773b7e54ab", "state": "authenticated", "sessionAttributes": { "opbs": "83b81802-c3b3-482f-a6b5-b5c79cfbbfe6", "response_type": "code", "session_id": "17fa70dc-0022-41f9-87aa-9d773b7e54ab", "client_id": "f9f80ad4-b1b7-4cc1-a633-2dae42ede569", "response_mode": "form_post.jwt", "sid": "efef07ad-dbfe-4194-8518-577b94b9e24a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4aff882f-39b6-4c05-88ca-4d37596f31bb", "old_session_id": "d75296cc-b1f7-4b8c-8e5a-dd32fab2f8fe" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:31" }, { "isJwt": false, "opbrowserState": "c1f705b4-e3bb-4519-995a-389d203f3e87", "deletable": true, "dn": "jansId=28ddd423-fb46-4978-8f39-d86a6c7d74b4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:31", "creationDate": "2022-11-24T09:21:31", "ttl": 0, "sessionState": "fa55869b297727d75da3ba963995202d91047764790187ddb6a3b315d4b21f3e.b05916a2-37d7-4f93-953f-4a4642344a56", "lastUsedAt": "2022-11-24T09:21:31", "permissionGrantedMap": { "permissionGranted": { "0ee1886a-799c-4704-894d-ef2202af726e": true } }, "outsideSid": "334e0b43-84b3-46b4-83a0-b071ded81377", "id": "28ddd423-fb46-4978-8f39-d86a6c7d74b4", "state": "authenticated", "sessionAttributes": { "opbs": "c1f705b4-e3bb-4519-995a-389d203f3e87", "response_type": "code token", "session_id": "28ddd423-fb46-4978-8f39-d86a6c7d74b4", "client_id": "0ee1886a-799c-4704-894d-ef2202af726e", "response_mode": "form_post.jwt", "sid": "334e0b43-84b3-46b4-83a0-b071ded81377", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a82ca053-f9be-41c7-bac1-d7c60c93d339", "old_session_id": "1e11d47b-b545-4b5f-9bbb-db61e143d7bc" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:31" }, { "isJwt": false, "opbrowserState": "bd58ffb4-050d-42c1-8aac-df6f53ea9ef4", "deletable": true, "dn": "jansId=698dc7d9-3fbe-40af-bf2f-f467f39cfa77,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:31", "creationDate": "2022-11-24T09:21:30", "ttl": 0, "sessionState": "5649cd229ac51f4f17f64b57d288a1ea23ee235a38668ea5d6426497af91ef09.ff33ab00-298e-49bf-b728-8b4e20e3e601", "lastUsedAt": "2022-11-24T09:21:31", "permissionGrantedMap": { "permissionGranted": { "588025c1-eb74-4e2a-8012-d848fd0f60cf": true } }, "outsideSid": "c8d843e9-c987-4322-b7ef-77450385e402", "id": "698dc7d9-3fbe-40af-bf2f-f467f39cfa77", "state": "authenticated", "sessionAttributes": { "opbs": "bd58ffb4-050d-42c1-8aac-df6f53ea9ef4", "response_type": "code id_token token", "session_id": "698dc7d9-3fbe-40af-bf2f-f467f39cfa77", "nonce": "81bbb219-fd29-44f3-ba27-0b4a960a42ef", "client_id": "588025c1-eb74-4e2a-8012-d848fd0f60cf", "response_mode": "form_post.jwt", "sid": "c8d843e9-c987-4322-b7ef-77450385e402", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3e7a77f9-f5f8-4110-af1d-5d9cd9a82612", "old_session_id": "8985b5cb-d503-4332-a8a0-e614cc73d393" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:30" }, { "isJwt": false, "opbrowserState": "ce040e35-ca9b-41d5-b8a5-6ab14c37d278", "deletable": true, "dn": "jansId=59aafda9-1d9c-41d5-aa9b-de47ed8a669c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:31", "creationDate": "2022-11-24T09:21:30", "ttl": 0, "sessionState": "b8a32763bf73f95b21c9117771b5bcd112f9bda441141f64d354206052557123.226a1766-f55e-4ce2-aee6-6b38aad3638c", "lastUsedAt": "2022-11-24T09:21:31", "permissionGrantedMap": { "permissionGranted": { "ef9282f8-d5d9-46c6-9169-fede40a7c086": true } }, "outsideSid": "ae54efc5-f343-434d-bd7f-38ad41fea41e", "id": "59aafda9-1d9c-41d5-aa9b-de47ed8a669c", "state": "authenticated", "sessionAttributes": { "opbs": "ce040e35-ca9b-41d5-b8a5-6ab14c37d278", "response_type": "code", "session_id": "59aafda9-1d9c-41d5-aa9b-de47ed8a669c", "client_id": "ef9282f8-d5d9-46c6-9169-fede40a7c086", "response_mode": "form_post.jwt", "sid": "ae54efc5-f343-434d-bd7f-38ad41fea41e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0ae3ebee-013a-429d-95c9-3de83fb27be5", "old_session_id": "18e5cc4d-85a4-418f-9500-f7ccd808a742" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:30" }, { "isJwt": false, "opbrowserState": "ad371c0a-163a-48f3-9f63-878816f9045f", "deletable": true, "dn": "jansId=39d03e50-486b-480e-b0c9-d6bcd3846668,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:30", "creationDate": "2022-11-24T09:21:30", "ttl": 0, "sessionState": "8b58ee130eb4cb167fdc2e1d5f627dd052faadd396a61836717a8d640c2e5add.de8e200e-7e09-40b6-aa3f-4387768b45a1", "lastUsedAt": "2022-11-24T09:21:30", "permissionGrantedMap": { "permissionGranted": { "e623862c-f55d-4ef6-99cc-1b0679b8f60f": true } }, "outsideSid": "f3b1abca-c4fd-43a6-85d6-02e636660bac", "id": "39d03e50-486b-480e-b0c9-d6bcd3846668", "state": "authenticated", "sessionAttributes": { "opbs": "ad371c0a-163a-48f3-9f63-878816f9045f", "response_type": "code token", "session_id": "39d03e50-486b-480e-b0c9-d6bcd3846668", "client_id": "e623862c-f55d-4ef6-99cc-1b0679b8f60f", "response_mode": "form_post.jwt", "sid": "f3b1abca-c4fd-43a6-85d6-02e636660bac", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1a178461-78ac-4739-8ae2-cb72d8e2a480", "old_session_id": "c4a8a71e-002c-4b9f-a357-8ce004846b8d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:30" }, { "isJwt": false, "opbrowserState": "eb95a34f-4287-4486-a191-8feb69b5fc11", "deletable": true, "dn": "jansId=06e184ac-ea6c-4b2b-902a-f976d17090c4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:30", "creationDate": "2022-11-24T09:21:29", "ttl": 0, "sessionState": "54c72f063428394cf612ecc112044334b07991ba4fcd5e627ee75a974f007c59.cf382b9e-c7a7-44d1-8ff1-e5f8bdd5061f", "lastUsedAt": "2022-11-24T09:21:30", "permissionGrantedMap": { "permissionGranted": { "1563fc57-4924-4eea-bd6a-076a9f0d8847": true } }, "outsideSid": "e11a29c7-efe9-48c9-8a02-2cfda453a255", "id": "06e184ac-ea6c-4b2b-902a-f976d17090c4", "state": "authenticated", "sessionAttributes": { "opbs": "eb95a34f-4287-4486-a191-8feb69b5fc11", "response_type": "code id_token token", "session_id": "06e184ac-ea6c-4b2b-902a-f976d17090c4", "nonce": "a437e17d-063f-4d17-8526-0854e005528b", "client_id": "1563fc57-4924-4eea-bd6a-076a9f0d8847", "response_mode": "form_post.jwt", "sid": "e11a29c7-efe9-48c9-8a02-2cfda453a255", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a3c73fcb-5afd-416b-9ecf-d8c964cfc4a7", "old_session_id": "8cb4657d-303f-422d-87d2-a9fe13fa49e3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:29" }, { "isJwt": false, "opbrowserState": "c273bf51-cce2-4bcc-8ce8-45fa948a75b4", "deletable": true, "dn": "jansId=30a73220-128a-4181-8406-8e9fb621011d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:29", "creationDate": "2022-11-24T09:21:28", "ttl": 0, "sessionState": "84938f1babafd7919c159bd1a592705dac8461230630a1ab9b94bc8bc903556e.d50015e2-eb69-4dd2-a8a9-04216a617a35", "lastUsedAt": "2022-11-24T09:21:30", "permissionGrantedMap": { "permissionGranted": { "c7f0ca2f-4192-4596-9d36-590706257ce0": true } }, "outsideSid": "ea8c3aff-dda0-487a-b934-11233d056be2", "id": "30a73220-128a-4181-8406-8e9fb621011d", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIzMjdlYTNjYS1jNmI5LTQxMmUtYWMzYS1kM2I5NTljYmNiYWEiLAogICJub25jZSIgOiAiMzkxZmI0MDctODU1Ni00Zjg4LWFmYjQtNzY4YmY3ZjAxMGI0IiwKICAiY2xpZW50X2lkIiA6ICJjN2YwY2EyZi00MTkyLTQ1OTYtOWQzNi01OTA3MDYyNTdjZTAiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.tjk2sBumoWpI3-zIZxcmILjRnC4wgNt7j-hpD-nu0u0wCdmNjBGPSKC3IndNJtn8gqZhc15NcOry499O-HOjQOHkQr0D1qJxh7XpDMPAuk5nwOullIuMj_BM_uonNVEtnQdCdhXGuXcW4oUsJsbQ19klsgReB5Ley9nIPcJ3WUTpG2hs_v0pLknXiu2OJKFNaIsN9mBLdVVXH3cLrfgAPnXzpUO-Kz3TczrLoL43HlHeIXOUREGpN0xpRGgH867NcHud5td_3mtKaWjRaUFUx_LkEThGhsZ6OOdAZD6bEiVy7TW3MEb7W5100UdgkFuFbE0sI-dnUexB6zV8__ycng", "opbs": "c273bf51-cce2-4bcc-8ce8-45fa948a75b4", "response_type": "code token", "session_id": "30a73220-128a-4181-8406-8e9fb621011d", "nonce": "391fb407-8556-4f88-afb4-768bf7f010b4", "client_id": "c7f0ca2f-4192-4596-9d36-590706257ce0", "response_mode": "form_post.jwt", "sid": "ea8c3aff-dda0-487a-b934-11233d056be2", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "327ea3ca-c6b9-412e-ac3a-d3b959cbcbaa", "old_session_id": "9751371c-9265-4aac-a2dd-af1bf6e8fa3e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:28" }, { "isJwt": false, "opbrowserState": "e33f1c21-61ac-45d7-a9df-b7c568135066", "deletable": true, "dn": "jansId=64b63ec3-9c76-4ca1-8beb-0e5f8dbb4e59,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:29", "creationDate": "2022-11-24T09:21:28", "ttl": 0, "sessionState": "d209ea8f5d7facf19904126739507f35a163a2439b36abef4155a20501581bfd.0ff27625-afd7-4927-b3e2-03ceb14ce4df", "lastUsedAt": "2022-11-24T09:21:29", "permissionGrantedMap": { "permissionGranted": { "8349c118-3b71-4ad3-b560-cb054e2294f2": true } }, "outsideSid": "e63fec4f-0419-43d9-8d18-29878c37a3cb", "id": "64b63ec3-9c76-4ca1-8beb-0e5f8dbb4e59", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiI0Y2E3NjMyMi1mY2ZkLTQyNWQtOTc0ZS0zMjBlNTZmM2U2YjFfZW5jX3JzYS1vYWVwIiwidHlwIjoiand0IiwiZW5jIjoiQTI1NkdDTSIsImFsZyI6IlJTQS1PQUVQIn0.XvFBg7484rN0tWSuujVj9PHoQm2lX3mJJCpLvvHdsQE4oU0LUJaZXemODmuSDq1D6oFVw0e50z5Qm6j6dfJABmnGx1povs0-vcDBMYaAUBGzzrv7_I-0Asg6e1XfVonwObjxdOKGd1nIq_QV0xZIFcw3fkY3Ymql2gRNRWKtz7weeOC8gW2r-pNgtq6_WWgMGzChvDPeWsUZXwX3-akC2hUnZy8EjBA0iRhYxn1BCYRH7HjxwbUWWgE8Nso3QdsLWV8Beslzz35RNC7K_6Hk0zVidgRaA568QBSd4VNVW-qjaAokbuDkObPh1Idf9LHHjFR8C9Hc9a-MwlMswxYpyg.F5xX8fbYiB_aZl0S.tU70JBDagu-kI6ZnsE4a0Bx08FcTlL8ahkD3TtrteKmMmb4bIOHWrS7TrhCMfc3gWPog-KOUTiN85SNfphi6SVAmKR9YOv_XTUTt-j8V2WCYjvH2ugViO5CpLPYtqJjDy32zd3C9DsGtiDhLMPlqr32JZG8A2pVqLpN0eXLI4F_KSRE-j6iQ0gRnYl-_cZZlXlABEPjpmljX1bgyfOg30ilIln-G1kTeNFz3z3AoNJN4G7ovfpDqj6y3ufqvNeu57b2dWHCw3Xwq1wM4oarbcQBU3hDVSmVF-vJtMjNLj0b9wlNe0noeG1UgofMw_QH5QTp2ktXpB4wJNRQ3ishT-zy-ogvamDmJDfPlUS9z6npVZrB_tCBdGkaZy6L0ajSoFAB6Sz3eP8u56NVIDNmhO2KX5_D2FkC4ua7g9auni0a64iOb5UXOBbIX30bIpHlhGt1rzVRxXzD0t7oq8pIGGh5-k9FoJXyyl04Jr9RVgMTtHUQc7_p48cPT_P7gqxFayTgR0bhhzj0WcCEUJptghoTkf7VtLfVCTYaxBYpKOhlPvWWm7s0l2SNYIeatE5UzK7C-ybQU6LuCtmUdDWDvzk8wn8uWvIcL2eSyFz9mHgKjk0ETsOb4STAcnKhhNO1jcfWRcqsCMFoSfSF0bTLrX0uNrT0Abl5XuPbwkeoDZ0iAops0LOhj1kIG-IBEmsdqkqTmZuUomPxhdZM6vh3U-Y3rFBpP_Vy8xBdjcVTJyJcGpklqe6ZJ-WVA_4ukXr4gj22ZwKb7UFvuX5Wo1F8prsWUP7Xkt-Td0-6_u1TgEYL5T-8iOp3tjxXJXSPD-KAI-kpfjcCgOQye-CAtx7OltGmJsKSKswKtWszrNDRekVqh0yblYaDq4glSdvP4RrqxSNgCcybzkfBZ36Xy0766.7V_eC8IFLWK6x0MOYplE1g", "opbs": "e33f1c21-61ac-45d7-a9df-b7c568135066", "response_type": "code token", "session_id": "64b63ec3-9c76-4ca1-8beb-0e5f8dbb4e59", "nonce": "7f367c0d-db46-4d0c-9e2d-ade8910559a9", "client_id": "8349c118-3b71-4ad3-b560-cb054e2294f2", "response_mode": "form_post.jwt", "sid": "e63fec4f-0419-43d9-8d18-29878c37a3cb", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0ae06b0c-7fb9-4974-b9e7-06eccb88188d", "old_session_id": "42b6652f-d777-4e63-a1e7-8f97aa0083ba" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:28" }, { "isJwt": false, "opbrowserState": "44685bc8-d116-4634-9b52-13a60a58f4fe", "deletable": true, "dn": "jansId=92f7b988-b70a-4e51-aea5-eb0050da5888,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:28", "creationDate": "2022-11-24T09:21:27", "ttl": 0, "sessionState": "914177f91e29a454ea9f2baecb72ea50d53a05a72f6dc19f58afbea5d4eb3de0.cca26d93-8002-4ddb-ace3-38fd93c287ae", "lastUsedAt": "2022-11-24T09:21:29", "permissionGrantedMap": { "permissionGranted": { "e696cccc-fde7-4e8e-8acd-e70b6ea2d536": true } }, "outsideSid": "96ff79e5-c9b5-4910-988e-0fd254209cc4", "id": "92f7b988-b70a-4e51-aea5-eb0050da5888", "state": "authenticated", "sessionAttributes": { "opbs": "44685bc8-d116-4634-9b52-13a60a58f4fe", "response_type": "code id_token token", "session_id": "92f7b988-b70a-4e51-aea5-eb0050da5888", "nonce": "f1eaaadb-0567-460b-b58c-9b06da7defa4", "client_id": "e696cccc-fde7-4e8e-8acd-e70b6ea2d536", "response_mode": "form_post.jwt", "sid": "96ff79e5-c9b5-4910-988e-0fd254209cc4", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "587352e9-eae3-492b-96c9-ce2368cfa46b", "old_session_id": "1f89b65d-a52c-4676-888c-4e7dce7aff84" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:27" }, { "isJwt": false, "opbrowserState": "9b444847-eeb7-4972-96e6-0cb8bed6782f", "deletable": true, "dn": "jansId=ac1a9918-1149-4352-99d4-269078e2f749,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:28", "creationDate": "2022-11-24T09:21:27", "ttl": 0, "sessionState": "ae6a7d3371ccf0c18590f5e47d3d9954a631e24edf4c7cc7eb00a77adb6a04ab.e941bd39-54bd-43c3-bda6-d0d58056e289", "lastUsedAt": "2022-11-24T09:21:28", "permissionGrantedMap": { "permissionGranted": { "8a85c9ad-6e17-4864-a8a3-57117259897f": true } }, "outsideSid": "049752fc-b7ad-449e-9105-7b7ceead6d76", "id": "ac1a9918-1149-4352-99d4-269078e2f749", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogImEwN2I0YjUyLTI0ZTYtNDc0OC04MGQ0LTBmMjJhYjk5ODU2ZCIsCiAgImNsaWVudF9pZCIgOiAiOGE4NWM5YWQtNmUxNy00ODY0LWE4YTMtNTcxMTcyNTk4OTdmIiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZm9ybV9wb3N0Lmp3dCIKfQ.i8HC84jeZ-MY1zE2P7kQQJ_s9PMGGvrx9jbI-gFudBm6COeykjtklEQ99akFT5RJXRnK8GZV-vvAk5c4z5fP-pyTnED_VlYovoX4nL9zGpskYtvRpkiaYiGHyuQTxM_u_iK039MivIDsqLBB4TmUTPwwTaH7vc8d8ONcY-RXl6znQUx0GcZPdKqWdmsxDkKkagszd6FZ2lopkYwzl6MT10lQ3hIRwfG6Sqvca7T76eYP8-C8e4XxjR3meq2nGVGOV914TU-7zFLgSb2lp-qOjJVOcu6fHjexak3JPT52NPiRuEK-yi0nwPFmqHXakEs6djOO55AUOhZK9_HL9DohdQ", "opbs": "9b444847-eeb7-4972-96e6-0cb8bed6782f", "response_type": "code", "session_id": "ac1a9918-1149-4352-99d4-269078e2f749", "client_id": "8a85c9ad-6e17-4864-a8a3-57117259897f", "response_mode": "form_post.jwt", "sid": "049752fc-b7ad-449e-9105-7b7ceead6d76", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a07b4b52-24e6-4748-80d4-0f22ab99856d", "old_session_id": "d3d12c5a-cb28-4f8a-9452-34e8bdd4e8c1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:27" }, { "isJwt": false, "opbrowserState": "de311e98-a21a-4e1f-86ee-f339e3c7398e", "deletable": true, "dn": "jansId=82a3e741-fba9-4582-a58c-fee5ac8a8f0b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:27", "creationDate": "2022-11-24T09:21:27", "ttl": 0, "sessionState": "8718a6783a9c85da2098681f62e627ab201e61c3ab8711099dc06f9bbdcde4a4.e45e7254-9081-4935-a5cc-8a2a34e42d5c", "lastUsedAt": "2022-11-24T09:21:28", "permissionGrantedMap": { "permissionGranted": { "62c68c1c-cd57-4e6f-911c-eddd1bbde688": true } }, "outsideSid": "0a4f68d0-d63a-49c8-925b-5fcef940f2a0", "id": "82a3e741-fba9-4582-a58c-fee5ac8a8f0b", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJhYzdlODhjYS01NWRhLTQ2ZDktOWI1Zi03NmIyODEwNjMwZmMiLAogICJub25jZSIgOiAiZWQ3MjRjMjAtOTdjYy00ZGZkLWI3NTItMTU3NjcyMTUwZmRjIiwKICAiY2xpZW50X2lkIiA6ICI2MmM2OGMxYy1jZDU3LTRlNmYtOTExYy1lZGRkMWJiZGU2ODgiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.AXeiqb6rxRZ1wNljYRC62-ZkXKcrv2iUicuYwoMbUNMLZW5ff_0MXyp2DVS_4Wa8CAEm3bQ_hUrIWcoXvsZZJDnwAe2cm_ut5TQANvTOLX8EIWf_s7DsP_dMGVZYY0PYlou16vJJZbSOTYW9l7I5VuqA7k29btMR82ss7x9eEn9-Anxl", "opbs": "de311e98-a21a-4e1f-86ee-f339e3c7398e", "response_type": "code token", "session_id": "82a3e741-fba9-4582-a58c-fee5ac8a8f0b", "nonce": "ed724c20-97cc-4dfd-b752-157672150fdc", "client_id": "62c68c1c-cd57-4e6f-911c-eddd1bbde688", "response_mode": "form_post.jwt", "sid": "0a4f68d0-d63a-49c8-925b-5fcef940f2a0", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ac7e88ca-55da-46d9-9b5f-76b2810630fc", "old_session_id": "0ae4c9a8-28db-4232-8a93-9207cb9cba76" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:27" }, { "isJwt": false, "opbrowserState": "c7ee23db-6642-4450-9200-720e6b3d0f9b", "deletable": true, "dn": "jansId=080cadb6-445d-4b3b-856c-e201dd2cda1f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:27", "creationDate": "2022-11-24T09:21:26", "ttl": 0, "sessionState": "af0e773ecf51b5d09a1f5629cb758863be96a550fa1c8bcf12f046bda15ccb86.0cc5bea7-e188-4456-822b-376dc202992a", "lastUsedAt": "2022-11-24T09:21:27", "permissionGrantedMap": { "permissionGranted": { "cc909501-9736-4fe6-8bd2-ddb1759d14b5": true } }, "outsideSid": "5a67dd33-d625-4478-9f53-af3e9d179243", "id": "080cadb6-445d-4b3b-856c-e201dd2cda1f", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkEyNTZDQkMrSFM1MTIiLCJhbGciOiJSU0ExXzUifQ.D_sO-5sXgPkFYSHygmchVEKljC2_0DEjiMHiLfhWYv9VLuLJ4BwG6MEQ9_YvOVclR4leo_57FYjIrKQFv02sDI-dFxYHqkE_LUDC7157Ve45HOAZ0YS2a1jY_GZ5QfuVPz77PmcLdzK_GKC6tSV0z1H-yiDi4sbPmvex6bMYe33-OTjWUoX8IZvIVDIVfp0wmrNOcpj6gY7qpF3bSnVxH6_3jBbxPoncYFqEi-jwfmTKQkp613Bb7s1MxUybdL-LhgYznRCT3X8Avf3e0OD35MwhqEIB8Ae1Q1NNkkW_pswcC6UcwSdJpixcHD72TZTNAn5zbhXlD_z-G30V_ip9hg.DdR4wkAuXofrMf-S5b675Q.3vd-ZEvr6f4DyK2MUJn8REL-G8KhZOaclnh2r9GWCe2tijCBis_95L36dK5zo_bUEZ7R8yvys-tXs6zqtJK_ejsCQQpFZiHcyuyZ9sez8xTwr1L9T6IpOrM7LuvKXmLFHHx69BDqs3KpntxWaH9ZRRjPZQXtUck7rjWs8aRIr874cpuy_6UeCs919Dr084y90c6otxYvNabVQmHLfRyO6TFRCA43MAdlnovOqvZgj7Q9GtT2CZMqNIWkvzA2Tnz5vW_YDvWIhbWXHOi7QiLBXu9VE5YmQkaPgDDzK6xDBy0md2mMPqY8fzbdLXG450-y-0esxkrNp1nVCe149df4VRbV_j32gph2fYMmDnkBAY9JdQdbNsH-4uxBkx_xUzdXd7wjEeGTjGFotWvmnDiyUAfILBhUpnaefpE8xa-BkRdVkmi6isnGVMjqhByJaCvD4EvYvBjyY7xhsZjsOiR8GRWJczTfo9LALYfL9LqJBg2xLJcTQID8N_0bN_vGgO2MWZYjJFI0wgIUyv2ijdm0S9ybF_RU6vRXRVBd5mG9HkKzW2RarrKFVbn_Rniok2L-s6ZqOdGtyTCukkbBgy9RuZWbEXNsi9rgTzWfvwNGxAYJI_i6mtWijZ5Jev-GNWLEU-ChkfnBzZY9XzbK5hRirJ-cGMmP-4dyFAcSkzLO7CTtbpchi1OnPxKUzCbcVUsaT-t2JtvBM6theBJNByw_EOBwdzOWgilhrwgV7WUrXmFgxTWA0PjFIDj_F2jkMOcLXEfLLDjQv9p3IjFwhSd_B5ZK4quIs5TMksEGSgq8NFJssLxg6VpR0Ll9hIplnZ7s9KjBtFngJGA2rJIEkkVkuoDJxfdPkppnSEe5571klIIpyYF44-YONuObgzawHQGQ2jDg29sxGOvDPYzixmkt-g.aO76zigOpLUOoCPGCl7eJa1t17EQI0ja16v7YIPPp_lwwy_-OT160vTnnmyjFQFXAruUhYOCe0cYfZJyal5PfQ", "opbs": "c7ee23db-6642-4450-9200-720e6b3d0f9b", "response_type": "code token", "session_id": "080cadb6-445d-4b3b-856c-e201dd2cda1f", "nonce": "d777638a-4f68-491d-b3f7-8a9e881f81ce", "client_id": "cc909501-9736-4fe6-8bd2-ddb1759d14b5", "response_mode": "form_post.jwt", "sid": "5a67dd33-d625-4478-9f53-af3e9d179243", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0cf3a215-5031-44f0-91f8-a2fad86bb8b6", "old_session_id": "45c202e2-49db-4177-be0c-d703144eaed8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:26" }, { "isJwt": false, "opbrowserState": "8f61705b-3209-46d5-b11b-d9df67881656", "deletable": true, "dn": "jansId=923fd7a5-af7d-4809-945d-91b6b7143956,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:26", "creationDate": "2022-11-24T09:21:25", "ttl": 0, "sessionState": "ab693998e947a44a22055cc64402c872c2de86471bca071947d1f7bb3ed7aee2.f884ffd8-b955-4f32-a08e-55f44f166da3", "lastUsedAt": "2022-11-24T09:21:27", "permissionGrantedMap": { "permissionGranted": { "bf0a82a6-0f15-4fd9-85f7-70f7b26eb8cb": true } }, "outsideSid": "f7af70ce-ad05-46d7-877a-d9dde3b4bd15", "id": "923fd7a5-af7d-4809-945d-91b6b7143956", "state": "authenticated", "sessionAttributes": { "opbs": "8f61705b-3209-46d5-b11b-d9df67881656", "response_type": "code id_token token", "session_id": "923fd7a5-af7d-4809-945d-91b6b7143956", "nonce": "0140901e-eddc-4f54-bb0d-ee6f05a84de8", "client_id": "bf0a82a6-0f15-4fd9-85f7-70f7b26eb8cb", "response_mode": "form_post.jwt", "sid": "f7af70ce-ad05-46d7-877a-d9dde3b4bd15", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "46690e53-b376-4ebe-ba3a-ef1611345779", "old_session_id": "469cfc76-8816-4509-ba8a-0c8f02fbf13d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:25" }, { "isJwt": false, "opbrowserState": "ade469dd-24ba-4498-a812-975c755e594b", "deletable": true, "dn": "jansId=b6813e74-a842-4d24-ad81-70f3539ae004,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:26", "creationDate": "2022-11-24T09:21:25", "ttl": 0, "sessionState": "cd3562e603a89adea9172bda38497b34fa8f261fb712c3c990f8d75ed9727729.6fe92142-765a-4f3a-b2ed-684e7d01a463", "lastUsedAt": "2022-11-24T09:21:26", "permissionGrantedMap": { "permissionGranted": { "d3bd022f-a916-4c82-a4cb-08148f5dd5e6": true } }, "outsideSid": "c8342653-2f20-4137-b0a7-f01540be8125", "id": "b6813e74-a842-4d24-ad81-70f3539ae004", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjU2MjM4NmIxLWMzZDMtNGUxNS1iZmFjLWEwYjZiNWI0YzIwYSIsCiAgImNsaWVudF9pZCIgOiAiZDNiZDAyMmYtYTkxNi00YzgyLWE0Y2ItMDgxNDhmNWRkNWU2IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZm9ybV9wb3N0Lmp3dCIKfQ.Bf0S6NCSZ8cFKvt8ci81RzjbvSOSCwm8XCLDWPv5M3tbi9f4oTzB9j6NNN41vaKDZf7tc3V96jQ_Csp5Dtag4g9FlJFt6r65gufgJbX6vI1aYx0jn-BdL1ZpGSOWZKjExb_JFp5_8Lrrz5doXyK7aIn0aUA4TI5ftaredUE-_iPk_Dbo-mHiU6ZdqyAL3ikpfDAmBpfyTdrIkCYVGusAk3mKvA6sNb3lfqG7vZDTB9BVC9ASgAfn0ZblgeNWMiz6T8ZtVfQo7_wtJ3mULZylDZjcbjnULYiEj4rvjQAAVwDyxGPuZ-ze-2G9ucfA4FRkHTMRblQ9TUdarF1ZT4tI0w", "opbs": "ade469dd-24ba-4498-a812-975c755e594b", "response_type": "code", "session_id": "b6813e74-a842-4d24-ad81-70f3539ae004", "client_id": "d3bd022f-a916-4c82-a4cb-08148f5dd5e6", "response_mode": "form_post.jwt", "sid": "c8342653-2f20-4137-b0a7-f01540be8125", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "562386b1-c3d3-4e15-bfac-a0b6b5b4c20a", "old_session_id": "043b776b-4ca8-4d00-b9b7-d7b74f34bf4c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:25" }, { "isJwt": false, "opbrowserState": "1200c3aa-e555-4899-b44a-1a5ec372ffaa", "deletable": true, "dn": "jansId=14586d3c-cfbd-4486-8485-625015e00274,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:24", "creationDate": "2022-11-24T09:21:23", "ttl": 0, "sessionState": "0cd26c6dee7d7631a2cb43382bf0b79ece50994fbfbc7f1b78cd7f49a56439ca.4038ca1f-3956-4543-8d43-080bcd126c93", "lastUsedAt": "2022-11-24T09:21:25", "permissionGrantedMap": { "permissionGranted": { "3496aeb5-369e-45ff-9861-b17a813ce242": true } }, "outsideSid": "c6dda2ee-e8f8-459c-8be5-4ce80c0be4c6", "id": "14586d3c-cfbd-4486-8485-625015e00274", "state": "authenticated", "sessionAttributes": { "opbs": "1200c3aa-e555-4899-b44a-1a5ec372ffaa", "response_type": "code id_token token", "session_id": "14586d3c-cfbd-4486-8485-625015e00274", "nonce": "f68f7577-6b5a-4eed-9257-4f5269a0d9ea", "client_id": "3496aeb5-369e-45ff-9861-b17a813ce242", "response_mode": "form_post.jwt", "sid": "c6dda2ee-e8f8-459c-8be5-4ce80c0be4c6", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f73d487f-e6a1-4930-8a64-4a702d77374f", "old_session_id": "ab21a5c4-a187-49f1-9e34-96b0474c647d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:23" }, { "isJwt": false, "opbrowserState": "cd68dc36-aa23-45a1-9153-800ce826dd3e", "deletable": true, "dn": "jansId=1e200e8d-8e67-44a3-a1e2-f3a856ee4330,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:23", "creationDate": "2022-11-24T09:21:22", "ttl": 0, "sessionState": "086933cebd5158796ca67cc038f254c6a98683033434b8b8744c9193ee7ff05f.91785907-63ff-4dde-99a8-d942de83023a", "lastUsedAt": "2022-11-24T09:21:24", "permissionGrantedMap": { "permissionGranted": { "5b43b1d1-7dbc-419f-9831-42c6bd737108": true } }, "outsideSid": "063073c6-17d2-4bba-877c-8a64e63f7dcf", "id": "1e200e8d-8e67-44a3-a1e2-f3a856ee4330", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogImNhZGMzODgxLTU2MDgtNGFiMi04MzQwLTAwZjlhNTE4NzVkNyIsCiAgImNsaWVudF9pZCIgOiAiNWI0M2IxZDEtN2RiYy00MTlmLTk4MzEtNDJjNmJkNzM3MTA4IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZm9ybV9wb3N0Lmp3dCIKfQ.IQo6x8pq7iXnmbSimUfh5kHq8O8d45FPXeYcS2AES_8wcBjn5IyjVxjAScEDfxGoEVcq1WCchFFv1rgsvDcoXHFhyfQ7-fSb9Y9UomiwLsC0NY22gJ7gqppZcpSuxI6Pd1EA2JppRibvDayBKEIgqh9mtyZivwgoT8vmcwIoXqVPriwpQxhSLYfFWqAy-UsQFZoZBhMqOPBRWu8QOb9FLSxT9OArYumfx0cL7vsyexp5e3ki1hehj7bBDeDnnHNCnVOBzOQHO4kUXzy4JkRCRjjHiGXzTjlUfHn-yUM4DdC5HXv_HygGswkbWR7HrCJVZXt1aWJ983Aast8Og9b8GA", "opbs": "cd68dc36-aa23-45a1-9153-800ce826dd3e", "response_type": "code", "session_id": "1e200e8d-8e67-44a3-a1e2-f3a856ee4330", "client_id": "5b43b1d1-7dbc-419f-9831-42c6bd737108", "response_mode": "form_post.jwt", "sid": "063073c6-17d2-4bba-877c-8a64e63f7dcf", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "cadc3881-5608-4ab2-8340-00f9a51875d7", "old_session_id": "e8ad2bfd-0a85-4904-ab7a-e6581c703ae9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:22" }, { "isJwt": false, "opbrowserState": "9bce588f-99ef-4b62-938d-7fa32cec654c", "deletable": true, "dn": "jansId=8f739dcb-be57-4960-9d5f-bdb549fff14f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:23", "creationDate": "2022-11-24T09:21:22", "ttl": 0, "sessionState": "640a75085fba682efc1781e56b782913dbb632d22fe66df0f11b32ce628b969d.a282509f-4370-41a7-969c-b6aac0b3531b", "lastUsedAt": "2022-11-24T09:21:24", "permissionGrantedMap": { "permissionGranted": { "a1cb2988-9101-4424-9f2e-cd8d0c41b735": true } }, "outsideSid": "ad084888-442e-472a-bf61-29de28cfd964", "id": "8f739dcb-be57-4960-9d5f-bdb549fff14f", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIyY2Y1N2FhNy0xNTVkLTQzMGItYjE3OS04YzFkMTRlNzFjMTQiLAogICJub25jZSIgOiAiZDliN2U2NjUtZmMxNC00Njk4LWEwZGItOTE0MTRlMjNiNTNlIiwKICAiY2xpZW50X2lkIiA6ICJhMWNiMjk4OC05MTAxLTQ0MjQtOWYyZS1jZDhkMGM0MWI3MzUiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.pt1S7x7f9okHo35GYuphuFKC3H63B9b7_0OO0z8hVtMSX7IerEU2tOAfCJIfdL7MdGwxmLTfCTEISI-BjlJuWQ", "opbs": "9bce588f-99ef-4b62-938d-7fa32cec654c", "response_type": "code token", "session_id": "8f739dcb-be57-4960-9d5f-bdb549fff14f", "nonce": "d9b7e665-fc14-4698-a0db-91414e23b53e", "client_id": "a1cb2988-9101-4424-9f2e-cd8d0c41b735", "response_mode": "form_post.jwt", "sid": "ad084888-442e-472a-bf61-29de28cfd964", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2cf57aa7-155d-430b-b179-8c1d14e71c14", "old_session_id": "ecf5ea24-0fde-438c-b996-4073eec1413a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:22" }, { "isJwt": false, "opbrowserState": "73f6d859-90b9-4cc5-a659-dbb576cf0130", "deletable": true, "dn": "jansId=3b2ddf30-b9eb-4654-b491-3b6caf9d76d8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:23", "creationDate": "2022-11-24T09:21:22", "ttl": 0, "sessionState": "7689729275f771f4117fa5b3f66d6250428bb269e33217b980537d391a674b71.b653b3ed-e827-4a44-a06e-b1992454bcf1", "lastUsedAt": "2022-11-24T09:21:23", "permissionGrantedMap": { "permissionGranted": { "362166a7-6693-4620-9d96-1c70833cab38": true } }, "outsideSid": "9b534264-ecf8-4651-80ae-bdfc4256c972", "id": "3b2ddf30-b9eb-4654-b491-3b6caf9d76d8", "state": "authenticated", "sessionAttributes": { "opbs": "73f6d859-90b9-4cc5-a659-dbb576cf0130", "response_type": "code id_token token", "session_id": "3b2ddf30-b9eb-4654-b491-3b6caf9d76d8", "nonce": "2b61c261-065d-4680-a454-fabe15c81bb0", "client_id": "362166a7-6693-4620-9d96-1c70833cab38", "response_mode": "form_post.jwt", "sid": "9b534264-ecf8-4651-80ae-bdfc4256c972", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b5bc7143-6084-4405-8ac1-0436f7abcf0a", "old_session_id": "c678f84f-4c08-476b-8f71-ee8265f2867c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:22" }, { "isJwt": false, "opbrowserState": "b1e9706a-11b9-4d02-9227-3a747cdba4a8", "deletable": true, "dn": "jansId=7a225457-6871-457f-8d60-b65068f38558,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:22", "creationDate": "2022-11-24T09:21:20", "ttl": 0, "sessionState": "158a2c6c96b17d72aff35e63338ad54ecde3e5369b89f1e2dc36dcb540e73f88.041c3a0c-e637-4536-a7e6-d6b03c69db0b", "lastUsedAt": "2022-11-24T09:21:22", "permissionGrantedMap": { "permissionGranted": { "c76c3e35-e7a8-402b-9e37-4f7a12f9cdb0": true } }, "outsideSid": "5a50fd1d-a258-4722-9800-0801d7b35b03", "id": "7a225457-6871-457f-8d60-b65068f38558", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.udKtE26NVj55fUmlQjG273VTzupPHSesjJX14KpBehLzp3fJJVMtMg.z2AWZa6aZjfW0tAb.hHu6e3ICzEIOaaX9gQNbbk5bG0PLaWggvQbslhQW3aZ9apD_YiMgxwGAS6yd5EtpWoD1JcyN1BzzkgRKcaRFaCFGAiRck31gpIdIA-eq5IMGhYqdzrYZbgKOvvl3kE1EkeA2j49QwV-5J3RHdfVSsqL2wiLn9IigZ6GMxJX4fcXa8osGDP1nLmi7ix0KFkcDNTrDgHkJVPammSBzd54zT1GaGBPQtuiEnrNvGQSb5csHi2_Bj2wrKKOCmpdZWXhxDlOLOInwUaCegyadH5sET0939BEjH4hip84Lu7OS6W21zufusI5zcJC_5YpiMDr4_CxB4msojCA4s-6SCUhM0pCX18t2BYgKTmo31qNHYH3g315UI3truvK-FBfhLKCIkEyJYObKtw0Kg-Kq4mrQgr8EIcM7CFdu8Cn1vFtqEWlkPTLoga22rYdmGB1FQm_wI-klnb8Ap69netRtGwQtDhrIsuwODPE9S39Z1ObZMKhADJDONOd3wExAN4xsxh4GlPmKL1Bt4BNIHyFSRGjyK_6HvmpFSvYE3kzYqfezSXHLMglAN_UrA-NBUesvWG-TXQmuydCiu84W9GHlvUF4M45UnqeeRZ-uyNm1dsyrmy6A8bQr8RuFlUVShm9XMVOtAK0YaepjyGRiRteqqWOYRKbPmsW8cOd3F0VIFmJKClE4BbglBouWnKXLtjI3eoxdfFJD1SWlWcQ_UNjUsMFd9QmDwL7SIMyanqcsPgi0Mjb2FGt_WJaJoF-0g_prxP8S8Zd0DVhg0twCgP6O_wKaqua3CZJB6p6wcXNFLD4Vg0gvP8SFMB2HN_7NHJ9v4SwJpt21Ucf8BwpO0XzA3gSk8pA-I2-t6IYS-zum52cqJ32Dbt6fcyRlKTvfbH6TBFiA4_eTS8MItH2ORi4o-kjw.kBzOuidQPTRw6PYtVuNXCw", "opbs": "b1e9706a-11b9-4d02-9227-3a747cdba4a8", "response_type": "code token", "session_id": "7a225457-6871-457f-8d60-b65068f38558", "nonce": "ba17bbf3-16cd-41c1-8cf4-04116ddf65a4", "client_id": "c76c3e35-e7a8-402b-9e37-4f7a12f9cdb0", "response_mode": "form_post.jwt", "sid": "5a50fd1d-a258-4722-9800-0801d7b35b03", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2315a9dd-1896-42b8-a913-a6fab3fb048a", "old_session_id": "c1eb227a-7611-48e6-ba1e-050dd4e704ce" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:20" }, { "isJwt": false, "opbrowserState": "7453c6ae-8e07-4b14-8bc4-748a92898d4c", "deletable": true, "dn": "jansId=985e3c73-063c-46db-9312-0f99824d6a68,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:21", "creationDate": "2022-11-24T09:21:20", "ttl": 0, "sessionState": "39de2e7401726fc0ad2d536e6af1eddf438c5eb51cdfbd145e7dd2d9fda01290.4e6f7b38-c514-4cfe-a454-02c5118ab1ac", "lastUsedAt": "2022-11-24T09:21:22", "permissionGrantedMap": { "permissionGranted": { "4f0d585d-c220-4551-801c-a58d905b97d4": true } }, "outsideSid": "b418c7a5-36e6-4da1-8455-38da6cce7c4d", "id": "985e3c73-063c-46db-9312-0f99824d6a68", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogImExNGY5MzkyLTQ3YmItNDhmNS04OGI0LWZmYjZlOWZhYWEwOSIsCiAgImNsaWVudF9pZCIgOiAiNGYwZDU4NWQtYzIyMC00NTUxLTgwMWMtYTU4ZDkwNWI5N2Q0IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZm9ybV9wb3N0Lmp3dCIKfQ.kC2v-pcFaVStX_htYOMsLqXYpiAsPWb8ISpjibocV_To38Rdtjw5gAYS1OlwoedOoFPDcBTAhCQ1ncd_1hI614xnBkvqdEb2-YESq00cgAWKOdgBH0qC9-L0yO2Y5LE8oDGD0UvagMZ4WkqQCiD5lLT9RNbLPz06cCJvj3bMlXtrkHQaNVfOf1pKJryQTzvCXLgGKiorNta3CZnd9Ah2izVoJKDtmwBBxRf8wx40fNqD7g8-mhHbzD6inVr28VPC3JJ7UKxZ-yuYwvCl_3gv7bAXFeJwrqdnBimliA3T5FTAXkLqP2WEcZqAsMmucsnbCfLOhAYePKn7l5AFHJ4SYQ", "opbs": "7453c6ae-8e07-4b14-8bc4-748a92898d4c", "response_type": "code", "session_id": "985e3c73-063c-46db-9312-0f99824d6a68", "client_id": "4f0d585d-c220-4551-801c-a58d905b97d4", "response_mode": "form_post.jwt", "sid": "b418c7a5-36e6-4da1-8455-38da6cce7c4d", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a14f9392-47bb-48f5-88b4-ffb6e9faaa09", "old_session_id": "6eba39af-3397-4793-85a8-11b9b57322c4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:20" }, { "isJwt": false, "opbrowserState": "b949ed03-9514-4813-8096-255a95fe55c8", "deletable": true, "dn": "jansId=8d4204d6-6804-4816-9afa-4988dff29d0d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:21", "creationDate": "2022-11-24T09:21:20", "ttl": 0, "sessionState": "5437be2506cbf94be0586d7e84fe768ee2fcec870c7379218b30d6583af4232c.70d2e514-82ed-4633-8ac5-b2e9fb998538", "lastUsedAt": "2022-11-24T09:21:21", "permissionGrantedMap": { "permissionGranted": { "4c8d03c2-6671-4d4e-9d7f-e243ed45fe7b": true } }, "outsideSid": "91123448-7a2e-45f9-a287-c83f447c7914", "id": "8d4204d6-6804-4816-9afa-4988dff29d0d", "state": "authenticated", "sessionAttributes": { "opbs": "b949ed03-9514-4813-8096-255a95fe55c8", "response_type": "code", "session_id": "8d4204d6-6804-4816-9afa-4988dff29d0d", "client_id": "4c8d03c2-6671-4d4e-9d7f-e243ed45fe7b", "response_mode": "form_post.jwt", "sid": "91123448-7a2e-45f9-a287-c83f447c7914", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "63d1139d-5cdb-4f07-bf72-ef9d1b51a0cb", "old_session_id": "ac6d9a77-489a-4a04-b9cd-d8e1996249df" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:20" }, { "isJwt": false, "opbrowserState": "fbf50038-5e5e-40e5-b48b-7506879c9664", "deletable": true, "dn": "jansId=0cd0414e-918b-497f-8ed7-127b79791ffe,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:21", "creationDate": "2022-11-24T09:21:20", "ttl": 0, "sessionState": "5f97e8f5f1a4b1dd08c0499c6b4e10a5bb595b2a7e2d6321028982c9ebe2f315.32d72946-617a-439e-b20f-37f938f4c352", "lastUsedAt": "2022-11-24T09:21:21", "permissionGrantedMap": { "permissionGranted": { "0484695f-5bea-47e3-b127-ba651cfa2ec9": true } }, "outsideSid": "d3db255e-c848-4b39-9066-b6c463062896", "id": "0cd0414e-918b-497f-8ed7-127b79791ffe", "state": "authenticated", "sessionAttributes": { "opbs": "fbf50038-5e5e-40e5-b48b-7506879c9664", "response_type": "code id_token token", "session_id": "0cd0414e-918b-497f-8ed7-127b79791ffe", "nonce": "5abb03b9-ff7b-48c5-bfad-597703c119f0", "client_id": "0484695f-5bea-47e3-b127-ba651cfa2ec9", "response_mode": "form_post.jwt", "sid": "d3db255e-c848-4b39-9066-b6c463062896", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f9fec85e-8d9d-4010-9b0b-53ed54589601", "old_session_id": "a242ee0b-a65a-42bc-aaa1-f0778f8899a8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:20" }, { "isJwt": false, "opbrowserState": "92c9444d-0caa-463e-96e9-fe9833a83c00", "deletable": true, "dn": "jansId=608136fd-e75d-479e-b3f9-0cf8f799e6df,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:19", "creationDate": "2022-11-24T09:21:18", "ttl": 0, "sessionState": "7b8644f3facbdc99ccba35513c967ec803ea4f58a83be2f792c41aea1aafb6f2.14b98d42-929f-4b2c-a3e5-52ccb8c5c8c0", "lastUsedAt": "2022-11-24T09:21:20", "permissionGrantedMap": { "permissionGranted": { "89ac4b0f-0ae0-4536-a13b-44fa0ee8dba5": true } }, "outsideSid": "3d6cdfce-1e3f-49ae-ba3a-beaec39bb87b", "id": "608136fd-e75d-479e-b3f9-0cf8f799e6df", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.MAoBPAVbnvCSq31iQRFM-mX_kr504paA.pj9KVlldRqH6GrJh.gDw_oPDKf21Kafbp_ioVo-Z4U2iUWkWc7Z1_X3G7rLNlN_Tu3S0nEF8dsJc6LMmbZVeaoEiB_3Ua4ftxhIiwQuTbknlpTom1iH8Q9VNxe572hk6JQOIKgnRor26rUuDe6auKnjjWcwg6SLykj2gk6YRglJd-P-s10hbacddhjaY-zL8iLUcF1PEmWonb43EBFAYH_sX0XnkArem42Htns5e05VUKOVFRvDz40ohVp3Lv9rjexW06or2Lm8UplrMqrJzkRfqrT0LNT6BF629Z42tkZuVZOoHb35kb1JOqMwyxpxanh3F1BUzkW_8qJK1ohAvu3yB9APJCCNNlxmAuT7GK69DHfoi9XD-_TPwrGMLKX4OZDaXmaUdneaYpJmHjYP0hYxxQzJfKoWCWr562kMb3C6epaxp2ynlXw4pyELQF4q_iy_rLTd53gA7VeM3kFOnVB9y7gm3yK4jfC32wlxMHB7VsvSGjnbqxgVwf2BpDkMakok-YqOwt3ZUWtoEccXcH1Wier1rpzm2OZG_KVnAcUCEwBdVPKZ16XMkOxoCZcOm-cV4pD19JLMMWC5ppsXVLBhefIwr1tKHLYhR5aEeBuofIFF_j2MH1TNY_CNm-tMPAMP0gGoPcjCS5kcK_Idi_DFm0CTBGIwTlXItMOMv4RbcgS-rUGzMJ7rZd1usk5Re72eCcy97-_Zr-0X9INTSnAcWiMGQUomf4wYz6_-n2guGt3o7gmFDX_gkwb5T1hDjaDPcjAD0OO7pjxa6znChlEqgVkKN9AzKndpvX21AJNcDzlV-t2iC3X4nyzgvcuSgSqulFgXt_gb0ROiOt5ornwx6M4qNo0yWEHMjkMF50foRlG6wIn_DW0or7AhJc6jETmoLe-qO5iXAPuP9teKboOvGnZzZaBRCvbeXA.guj5WYKwx06XchSOeeN3Mg", "opbs": "92c9444d-0caa-463e-96e9-fe9833a83c00", "response_type": "code token", "session_id": "608136fd-e75d-479e-b3f9-0cf8f799e6df", "nonce": "f2ddaf80-3c91-457c-b864-8b0eac392476", "client_id": "89ac4b0f-0ae0-4536-a13b-44fa0ee8dba5", "response_mode": "form_post.jwt", "sid": "3d6cdfce-1e3f-49ae-ba3a-beaec39bb87b", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "648e77d6-b08a-4bdc-918f-52477bafeecc", "old_session_id": "788736bf-8e53-417b-bfa6-bd8aa2b2b742" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:18" }, { "isJwt": false, "opbrowserState": "e76c141e-a664-4423-91b6-d453c0aad702", "deletable": true, "dn": "jansId=7b0373ec-e1bf-4c17-a99f-f8157ccad007,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:19", "creationDate": "2022-11-24T09:21:18", "ttl": 0, "sessionState": "decd1dad35cf350a8ced4129b0a78977c5a18bc691556c5a032b201372b254b4.3cea63af-d0b9-4077-8ea2-fa1a2f3b5ea4", "lastUsedAt": "2022-11-24T09:21:19", "permissionGrantedMap": { "permissionGranted": { "6cdf8269-41d1-4d1e-a5d8-a6aa141e0188": true } }, "outsideSid": "7576a1ea-47a4-4a0b-a5af-45fc1ee1d96d", "id": "7b0373ec-e1bf-4c17-a99f-f8157ccad007", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6ICJjb2RlIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjY1ZDlhMmJkLTFjYTQtNDQwYS1hNGI4LWRlY2RjMzUyMTE2YSIsCiAgImNsaWVudF9pZCIgOiAiNmNkZjgyNjktNDFkMS00ZDFlLWE1ZDgtYTZhYTE0MWUwMTg4IiwKICAicmVzcG9uc2VfbW9kZSIgOiAiZm9ybV9wb3N0Lmp3dCIKfQ.MAGoE2M3TJVtqAXBRUbOOTQcGmxhy3JHn63vEQna6E_zJMf40O3TGGTMjblFgr_3dd_zrSDvzJsSiG051RWSar8eIM6Kkw-bJ3I3XnXkzirfah5AxCqgu3i2Pk2549ChRouEfR3qQK8RkcYIHpKrWzO8ZHQZmfizocwogsUyniK_Hl0Vgf9T5ESMNj1_vqrjOeAnkNcYNKnWAxr7lXPNXkfc3NSPaH4912o4YfJWkg_Zp_Sg8wV6rNQVuau9ovpsppwDX0auTlVFnnlLm6CS6b61fZNdtuSX2eiLTWzofz1ethZ11rCM0fRBBvcFWC7B6QO7XSzBafxu5CtZYQwGSA", "opbs": "e76c141e-a664-4423-91b6-d453c0aad702", "response_type": "code", "session_id": "7b0373ec-e1bf-4c17-a99f-f8157ccad007", "client_id": "6cdf8269-41d1-4d1e-a5d8-a6aa141e0188", "response_mode": "form_post.jwt", "sid": "7576a1ea-47a4-4a0b-a5af-45fc1ee1d96d", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "65d9a2bd-1ca4-440a-a4b8-decdc352116a", "old_session_id": "625ca2e8-3715-473e-abfc-f7c5237b795f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:18" }, { "isJwt": false, "opbrowserState": "038ea93a-193f-4b1f-9bf3-79b9df2e600d", "deletable": true, "dn": "jansId=1e732c39-7496-4504-81cd-8469a8c365be,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:19", "creationDate": "2022-11-24T09:21:18", "ttl": 0, "sessionState": "461228b43a90fcb3ef9c23d7819c4768d26a52d82ca641f73eae347fb3e5a494.5c8119ea-5685-44eb-91f4-4e3b82b2294b", "lastUsedAt": "2022-11-24T09:21:19", "permissionGrantedMap": { "permissionGranted": { "92a64adc-c865-4903-a0d8-1d4ed576622a": true } }, "outsideSid": "5085c465-be5a-4606-8749-4a3665f5eb6a", "id": "1e732c39-7496-4504-81cd-8469a8c365be", "state": "authenticated", "sessionAttributes": { "opbs": "038ea93a-193f-4b1f-9bf3-79b9df2e600d", "response_type": "code id_token token", "session_id": "1e732c39-7496-4504-81cd-8469a8c365be", "nonce": "f252cde6-a46b-4eeb-834b-5ccc85c49262", "client_id": "92a64adc-c865-4903-a0d8-1d4ed576622a", "response_mode": "form_post.jwt", "sid": "5085c465-be5a-4606-8749-4a3665f5eb6a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e4d92f5b-1a29-42db-a06d-815736e466bb", "old_session_id": "31f75752-a9c3-4dfc-9b91-672e8b7ef16f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:18" }, { "isJwt": false, "opbrowserState": "327304fb-2e7a-485a-aa48-980fa057d5e3", "deletable": true, "dn": "jansId=186d0abb-f2f6-4d36-911f-9e422805fe73,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:17", "creationDate": "2022-11-24T09:21:15", "ttl": 0, "sessionState": "eb0e989bb71b78710351896a71bf48647ea41974fc42d1cfa9c2680b23c95c79.697e7a7d-ffaf-4cf1-a40c-793e352aeb33", "lastUsedAt": "2022-11-24T09:21:17", "permissionGrantedMap": { "permissionGranted": { "bc782b50-c279-4397-8452-34905593085f": true } }, "outsideSid": "2f2ac693-ccff-4bde-9ab4-016dd0082062", "id": "186d0abb-f2f6-4d36-911f-9e422805fe73", "state": "authenticated", "sessionAttributes": { "opbs": "327304fb-2e7a-485a-aa48-980fa057d5e3", "response_type": "code id_token token", "session_id": "186d0abb-f2f6-4d36-911f-9e422805fe73", "nonce": "aeb590bf-1dea-479e-92b0-dc5094e99d9f", "client_id": "bc782b50-c279-4397-8452-34905593085f", "response_mode": "form_post.jwt", "sid": "2f2ac693-ccff-4bde-9ab4-016dd0082062", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c33becad-e8e8-432b-9061-63677c0678ff", "old_session_id": "83a4fbb9-25cc-4d05-a88b-6b0d79cfc2ee" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:15" }, { "isJwt": false, "opbrowserState": "48abf918-beb0-45ed-81d2-2ca185e23f2c", "deletable": true, "dn": "jansId=1cfcdca3-9c1f-40e7-8cbd-ec770a456498,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:16", "creationDate": "2022-11-24T09:21:15", "ttl": 0, "sessionState": "d05b01d0780789a2bbcb9b24ed65d6d408f72e0c07abc57c01d4859fa69d7ed5.d8813f73-a691-46f3-be1f-f422c980308b", "lastUsedAt": "2022-11-24T09:21:16", "permissionGrantedMap": { "permissionGranted": { "1183beaf-c79c-4c4d-b869-42b7a98ee379": true } }, "outsideSid": "bf71bbb6-f537-4ef3-8bbf-56719906526e", "id": "1cfcdca3-9c1f-40e7-8cbd-ec770a456498", "state": "authenticated", "sessionAttributes": { "opbs": "48abf918-beb0-45ed-81d2-2ca185e23f2c", "response_type": "code", "session_id": "1cfcdca3-9c1f-40e7-8cbd-ec770a456498", "client_id": "1183beaf-c79c-4c4d-b869-42b7a98ee379", "response_mode": "form_post.jwt", "sid": "bf71bbb6-f537-4ef3-8bbf-56719906526e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a914e9fc-66f9-4db6-9bae-c9fad55bceec", "old_session_id": "dbfbbcda-ddf9-4e6f-9d3a-55004b26bd62" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:15" }, { "isJwt": false, "opbrowserState": "a9aff871-dc7a-401e-9f2f-8ad6406fb609", "deletable": true, "dn": "jansId=8e5d6fc3-2c3e-4dc2-bdf1-0acedcd53aeb,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:15", "creationDate": "2022-11-24T09:21:14", "ttl": 0, "sessionState": "25820ddb0d3ebb8d5dde2cb231243a2aadd71b82306172c17a5cf573f3659c60.b6caa034-40af-4e55-a437-f8be77afeec9", "lastUsedAt": "2022-11-24T09:21:16", "permissionGrantedMap": { "permissionGranted": { "a3d685fb-89f9-4b84-9fcd-752087afee64": true } }, "outsideSid": "3231ece4-b379-4f04-a07b-755e18c421ba", "id": "8e5d6fc3-2c3e-4dc2-bdf1-0acedcd53aeb", "state": "authenticated", "sessionAttributes": { "opbs": "a9aff871-dc7a-401e-9f2f-8ad6406fb609", "response_type": "code id_token", "session_id": "8e5d6fc3-2c3e-4dc2-bdf1-0acedcd53aeb", "nonce": "2c134534-d26d-4c14-ab62-479a4bed6172", "client_id": "a3d685fb-89f9-4b84-9fcd-752087afee64", "response_mode": "fragment.jwt", "sid": "3231ece4-b379-4f04-a07b-755e18c421ba", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "29123dd0-7ec1-4a2e-9c3d-5cf84723014b", "old_session_id": "0a2515ca-9425-4b8e-8535-93be98ccbae9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:14" }, { "isJwt": false, "opbrowserState": "3301a087-b12a-4cb0-887d-dcd49bf150de", "deletable": true, "dn": "jansId=2157f8c8-4be9-4239-84b2-26cfc1108e32,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:14", "creationDate": "2022-11-24T09:21:14", "ttl": 0, "sessionState": "35e1eba8653a699eaa68329539ef61756736822377d211126d07eeb8b1d9f714.79346a98-1ab9-4f8a-b0d1-4b3a291f851e", "lastUsedAt": "2022-11-24T09:21:15", "permissionGrantedMap": { "permissionGranted": { "14f5e94a-13b7-4d74-93c8-80250542fd47": true } }, "outsideSid": "05b2d085-fe34-4d02-9752-314078282f16", "id": "2157f8c8-4be9-4239-84b2-26cfc1108e32", "state": "authenticated", "sessionAttributes": { "opbs": "3301a087-b12a-4cb0-887d-dcd49bf150de", "response_type": "code id_token token", "session_id": "2157f8c8-4be9-4239-84b2-26cfc1108e32", "nonce": "dcee567a-1125-4011-967e-ce5a2638b51b", "client_id": "14f5e94a-13b7-4d74-93c8-80250542fd47", "response_mode": "form_post.jwt", "sid": "05b2d085-fe34-4d02-9752-314078282f16", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "609c9c60-0c69-4cd2-a6b7-417d9604414a", "old_session_id": "189ead8c-eb40-4531-8056-54a993094756" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:14" }, { "isJwt": false, "opbrowserState": "68907dbb-443f-4414-a4ea-fcf2d27e41f1", "deletable": true, "dn": "jansId=0eb297ee-e060-436e-884e-eabce5dd0530,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:14", "creationDate": "2022-11-24T09:21:13", "ttl": 0, "sessionState": "b2983f125e264c3b5ba62f7d4f610bcc86a9f17b3d876b9c59c7c5b33844613e.d195082c-d1b5-43ab-a88d-ad3a698f05eb", "lastUsedAt": "2022-11-24T09:21:14", "permissionGrantedMap": { "permissionGranted": { "8fb40c50-f604-4380-8ea6-9220f044daf3": true } }, "outsideSid": "3b77219b-3d1e-4501-ab47-5f4d6a842e0b", "id": "0eb297ee-e060-436e-884e-eabce5dd0530", "state": "authenticated", "sessionAttributes": { "opbs": "68907dbb-443f-4414-a4ea-fcf2d27e41f1", "response_type": "code id_token", "session_id": "0eb297ee-e060-436e-884e-eabce5dd0530", "nonce": "a3b201ae-d647-4c5d-8743-7f8664309109", "client_id": "8fb40c50-f604-4380-8ea6-9220f044daf3", "response_mode": "fragment.jwt", "sid": "3b77219b-3d1e-4501-ab47-5f4d6a842e0b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "31ebcd80-4a65-411d-9527-cae3889da711", "old_session_id": "39b7918e-e27e-4999-a9e2-3fb1ae5b88cb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:13" }, { "isJwt": false, "opbrowserState": "9d6b4091-ad1e-4065-8ae9-2d76962e04d2", "deletable": true, "dn": "jansId=633c74ff-9d6f-424b-add8-6f431498bab0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:13", "creationDate": "2022-11-24T09:21:12", "ttl": 0, "sessionState": "49e5ff71caf6016bac5e5adf350c3e5824728ea56a7a7b9dacd4ab38fe36f66b.ca7c2824-967b-4fe8-b803-6e12d2572cad", "lastUsedAt": "2022-11-24T09:21:13", "permissionGrantedMap": { "permissionGranted": { "2eab92df-803c-43e6-a180-70e41337483c": true } }, "outsideSid": "23559f6f-b608-42b2-8f8c-ae41bbfdb0e3", "id": "633c74ff-9d6f-424b-add8-6f431498bab0", "state": "authenticated", "sessionAttributes": { "opbs": "9d6b4091-ad1e-4065-8ae9-2d76962e04d2", "response_type": "code id_token token", "session_id": "633c74ff-9d6f-424b-add8-6f431498bab0", "nonce": "a702cc00-15fd-4c8a-8e90-85f1f9857d84", "client_id": "2eab92df-803c-43e6-a180-70e41337483c", "response_mode": "form_post.jwt", "sid": "23559f6f-b608-42b2-8f8c-ae41bbfdb0e3", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "86e893a0-0766-4c10-a3d7-108c7ee90eb0", "old_session_id": "6fecafd8-1647-4c35-9492-201d4d67b943" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:12" }, { "isJwt": false, "opbrowserState": "fde02a0a-050e-4d92-b1c0-f880019be9d6", "deletable": true, "dn": "jansId=08baca5d-c5ad-4f41-99d8-29ff3233081e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:13", "creationDate": "2022-11-24T09:21:12", "ttl": 0, "sessionState": "650569a6bf3b3382299752a070d409ecfd3f23eea5823209e141d833395cbdd9.a562f563-8096-40ae-afd7-bfec372bc81b", "lastUsedAt": "2022-11-24T09:21:13", "permissionGrantedMap": { "permissionGranted": { "e40c5f26-db58-41c3-86e6-1355d065fadb": true } }, "outsideSid": "9a9c5d77-d2b2-48f6-b16c-651ad5c59f42", "id": "08baca5d-c5ad-4f41-99d8-29ff3233081e", "state": "authenticated", "sessionAttributes": { "opbs": "fde02a0a-050e-4d92-b1c0-f880019be9d6", "response_type": "code", "session_id": "08baca5d-c5ad-4f41-99d8-29ff3233081e", "client_id": "e40c5f26-db58-41c3-86e6-1355d065fadb", "response_mode": "form_post.jwt", "sid": "9a9c5d77-d2b2-48f6-b16c-651ad5c59f42", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b3993b6b-ded1-4fb5-bb32-479296f5705d", "old_session_id": "9afd9040-bd38-4432-b614-6eab42da0a42" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:12" }, { "isJwt": false, "opbrowserState": "e689c84e-6dec-4bc1-a4e8-f789c712097c", "deletable": true, "dn": "jansId=533ef46b-08a9-4551-b1df-f69a05c0c589,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:12", "creationDate": "2022-11-24T09:21:11", "ttl": 0, "sessionState": "13ca33f234adb2ff494f482b2b460ec31048f7018193d33de1e8274852dc2bc5.25ee7b24-f226-43ce-b6f7-e1c882c70081", "lastUsedAt": "2022-11-24T09:21:12", "permissionGrantedMap": { "permissionGranted": { "6571b9ca-5347-4236-9993-bf69db938c0f": true } }, "outsideSid": "0d880219-2715-4563-94d8-cca7985879e7", "id": "533ef46b-08a9-4551-b1df-f69a05c0c589", "state": "authenticated", "sessionAttributes": { "opbs": "e689c84e-6dec-4bc1-a4e8-f789c712097c", "response_type": "code id_token", "session_id": "533ef46b-08a9-4551-b1df-f69a05c0c589", "nonce": "a4a3af52-75b3-49c1-af67-02ef9044bdc0", "client_id": "6571b9ca-5347-4236-9993-bf69db938c0f", "response_mode": "form_post.jwt", "sid": "0d880219-2715-4563-94d8-cca7985879e7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d5719cf3-5dff-42b0-92f9-d26fd6644ca8", "old_session_id": "70c99472-f63a-40d2-96d0-3570426ddf20" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:11" }, { "isJwt": false, "opbrowserState": "0768772a-17d3-4c66-8a13-d2f548540ef5", "deletable": true, "dn": "jansId=319a86cb-77b5-4e65-9a7e-d8259092c09a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:11", "creationDate": "2022-11-24T09:21:11", "ttl": 0, "sessionState": "39dce0ab6ddf5f9636fe253d9776ee777c953a880145f593a7d0423cd64776f8.b762e363-c2f0-444c-9c4c-dfd2f283fcca", "lastUsedAt": "2022-11-24T09:21:12", "permissionGrantedMap": { "permissionGranted": { "0a26aa24-7e15-43cc-9a91-9db311197b2f": true } }, "outsideSid": "fc86347b-2a0b-4f46-8632-bc037c30c774", "id": "319a86cb-77b5-4e65-9a7e-d8259092c09a", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIzMmY0MjIwNC05ZDM4LTQzYjktYjk3MC00ZjYzMjFlMDI5M2QiLAogICJub25jZSIgOiAiNjQ4MDczZWUtZDQ4NS00MjNmLWFjNjctMzc4NmI5ODFiM2JhIiwKICAiY2xpZW50X2lkIiA6ICIwYTI2YWEyNC03ZTE1LTQzY2MtOWE5MS05ZGIzMTExOTdiMmYiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.a6uqXNZwE4d8tJw5gqoiJLgRzxRqiCmyPwED5xawVhmjJJqj-fPxRRxXmutMKIf7K3t8XLYUd41mdjo83VBNawo6wonZA3R-CQ940-ttjGxwU1hWZ4HsNGweDx1SVjha3NKW-18_PpoRzgiH8kY-VQNpe0iXVRJGDZPnkSsdX7jQpejJaj94TSHQBJTWbQYaTlBIXagpcOi-B2Lt40uuqqte8570L7zsbOMhugJz-SactpSyvs5LQkvR_C1QmoR7s2cmqB1idMRUOukNxzPME5094pqP3mzSJUsHDaeuCOh7t4mPsEOheLn8gMN8Vlpwo-jVDx71xOgryDg1iOVslQ", "opbs": "0768772a-17d3-4c66-8a13-d2f548540ef5", "response_type": "code id_token token", "session_id": "319a86cb-77b5-4e65-9a7e-d8259092c09a", "nonce": "648073ee-d485-423f-ac67-3786b981b3ba", "client_id": "0a26aa24-7e15-43cc-9a91-9db311197b2f", "response_mode": "form_post.jwt", "sid": "fc86347b-2a0b-4f46-8632-bc037c30c774", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "32f42204-9d38-43b9-b970-4f6321e0293d", "old_session_id": "ca82ba6f-656c-4159-bd6b-d440eab4dabd" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:11" }, { "isJwt": false, "opbrowserState": "201a482d-878f-400c-9fd4-cc2b9a802a8b", "deletable": true, "dn": "jansId=a9c932fc-bd7c-4ebb-9968-8c4f0755de78,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:11", "creationDate": "2022-11-24T09:21:10", "ttl": 0, "sessionState": "f72048494bab5edba57f26addd1a6ab69e3c96229cddceb4fe1c24c5078e7a1b.f666d284-64c5-4cd5-9b4b-410673c1e0ea", "lastUsedAt": "2022-11-24T09:21:12", "permissionGrantedMap": { "permissionGranted": { "dec43dc4-1129-4427-a2eb-38a5a6bb687d": true } }, "outsideSid": "74048a30-21ab-42f2-b6a3-1d53dd75b52a", "id": "a9c932fc-bd7c-4ebb-9968-8c4f0755de78", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiI0Y2E3NjMyMi1mY2ZkLTQyNWQtOTc0ZS0zMjBlNTZmM2U2YjFfZW5jX3JzYS1vYWVwIiwidHlwIjoiand0IiwiZW5jIjoiQTI1NkdDTSIsImFsZyI6IlJTQS1PQUVQIn0.h_5iq2zyPLE0BvunXwquwaHtlwuWGpYcmOQhVOWAwyEy8TyBxYqqfbbRd-LDz69BRad-PCx6vtYUDjZUfUiny52QbaUJ9iE2fRvLzDjYlPAKoEwee3xuA5fduahXstPKynn5utVZoO6BIP4-xeNlbPNtvjLvS5_hYlPIb_EiDApjphPf8N75EVUDivN5McCI3mmCcA8nq_x5UPwD9nvzxBR9Wfa2f2reowm1AUz9Tumxhiiu0yDX8_KBo4Zk2MkyMW1sGb3PQIHjP2e6wTVjI8tI9Z2ktp3WFTBfnuvUkTkoqUxwXI_loQVV5Q1eNVUVJ0cY0ZZSA1MDQGWugRU4mQ.90X-en010OtSYCNd.OPR0UJDY1lkY7AxPcobi38q-1FcOJduaVXhfa3m9dcwDWQIiUrsEVgJttJlSOlMQFVje-51VcgDrCUURVZNtKNIMo4wh5AYFynRT3Y_F9Jo-3tQ7ECBgsDPsiujcwRbr9mBYZzMbWflKbQNkCMi5SoMpCPd9kF7pOsgFcJxSeagcxBJGGeP7M369umC6Tw-hid4iFmM_gCm8u4eCILvYV-gzSKt399pAztBNX_sDWq_rIfsMQmsW05tUROpqb_HOjdln4Gi4gqkA08ludzAl8PDMYHbY7XUI7X8M1W9VsXWPM5KneaFN1pvaqSe-Lu8ASE4IEcBSsu_tzBZRfK3p7bUUL8RztFVbJDr_hlLkYu0MyMlCmYCmlrf-Ula7i1NxGlRuPkDsj7wyIVLixamKDmkMNTUd-Wrp4maMpraZdZ5ZxcYkuLtckTJ-8d9G9EB6NCe2ZGXvNOTVgNzno_kF2s6XGOFvAI0hInlmwiHzB7kf9dXGPgY-krWnH9D3jjJM-ukRg_LTFum7Vv3VfZaNgAf_XwjqWUnVKn5NhXlwjqsuBfPG2eNeqNZnmwqhdp8JpRkssHSJ7Kv6hpNag0CSSA9SwhOk6rJel_xfhLRc_wgbsN7K-aatZfGSlDa-q4iBWtMJZZxQdp5hbNXB7GubxXDA96lQ1s_xIRQAV_nmfU2b1eJ7zCJ_eCZZsk-KSRHE574F58CgmtPIHFsQVwAHchqY1LqbhNc4r0o1BIW0FMg5SVq_O8AQ8NboXWJK6QieMNr-dXKWUR9xEymlYdwz2J6APeI9LoNUkI7ylhzjYJTAIEw.Kpqnm_sUjMfifmNMRRDNVA", "opbs": "201a482d-878f-400c-9fd4-cc2b9a802a8b", "response_type": "code", "session_id": "a9c932fc-bd7c-4ebb-9968-8c4f0755de78", "client_id": "dec43dc4-1129-4427-a2eb-38a5a6bb687d", "response_mode": "form_post.jwt", "sid": "74048a30-21ab-42f2-b6a3-1d53dd75b52a", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ff1a18cd-2994-4363-9812-2fbec6985119", "old_session_id": "a9daced0-ff9d-426d-82a5-cf72ab679672" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:10" }, { "isJwt": false, "opbrowserState": "397cf461-d179-47f9-8940-f20b90e986b3", "deletable": true, "dn": "jansId=24a92292-6d43-4640-bf7e-5bce1c1a77e4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:10", "creationDate": "2022-11-24T09:21:10", "ttl": 0, "sessionState": "1d4614b4c944f3e8c051c16c1b5be02f816901b5d3d58e06b3766d192a467e1c.2e5da263-ff94-46d9-bf25-8460da9073f5", "lastUsedAt": "2022-11-24T09:21:11", "permissionGrantedMap": { "permissionGranted": { "36de79e8-9bb8-4f4c-8d35-33a93797bcca": true } }, "outsideSid": "ddb60c66-3b98-4ad3-ad59-a295bc92ba50", "id": "24a92292-6d43-4640-bf7e-5bce1c1a77e4", "state": "authenticated", "sessionAttributes": { "opbs": "397cf461-d179-47f9-8940-f20b90e986b3", "response_type": "code id_token", "session_id": "24a92292-6d43-4640-bf7e-5bce1c1a77e4", "nonce": "11519d3d-a7a1-4316-b668-1fea2301db4d", "client_id": "36de79e8-9bb8-4f4c-8d35-33a93797bcca", "response_mode": "form_post.jwt", "sid": "ddb60c66-3b98-4ad3-ad59-a295bc92ba50", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b81c36ed-267e-4444-bcca-27939c548f1d", "old_session_id": "09611edf-9c48-4b28-a8c5-53188ca1fc35" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:10" }, { "isJwt": false, "opbrowserState": "8288db14-e6c1-445d-be29-dc895d827f1c", "deletable": true, "dn": "jansId=2323f494-eb1f-428f-b921-79df217af2e1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:10", "creationDate": "2022-11-24T09:21:10", "ttl": 0, "sessionState": "7de9cc187ff79e085aea78d0f6bc776c031ad23293ad0c1983302ebd66b96011.704220ec-fc81-4ea4-911a-ebc931aebc33", "lastUsedAt": "2022-11-24T09:21:11", "permissionGrantedMap": { "permissionGranted": { "d89978a0-bf88-480f-ba05-1d7ab222718d": true } }, "outsideSid": "31d97744-2168-4252-b617-e1dd879233d8", "id": "2323f494-eb1f-428f-b921-79df217af2e1", "state": "authenticated", "sessionAttributes": { "opbs": "8288db14-e6c1-445d-be29-dc895d827f1c", "response_type": "code id_token token", "session_id": "2323f494-eb1f-428f-b921-79df217af2e1", "nonce": "d3e9a94f-a626-4aee-a8da-69be03dec5e6", "client_id": "d89978a0-bf88-480f-ba05-1d7ab222718d", "response_mode": "form_post.jwt", "sid": "31d97744-2168-4252-b617-e1dd879233d8", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2ffecc8d-c437-446d-a231-903884a29652", "old_session_id": "be0ee68a-f015-404b-a60e-3ca7476792ae" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:10" }, { "isJwt": false, "opbrowserState": "d5a299d3-3b3e-4ea9-9653-3cce6135734b", "deletable": true, "dn": "jansId=61ce50e4-3654-48db-9a9d-72024d924d23,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:09", "creationDate": "2022-11-24T09:21:08", "ttl": 0, "sessionState": "8643b200f08ddb234065f3e6f6f2b7a54b9ad3b60c07761117c9416604dde6e0.fcde6192-6255-46b0-8202-545bdecb6551", "lastUsedAt": "2022-11-24T09:21:10", "permissionGrantedMap": { "permissionGranted": { "1eafe95b-373f-4ced-9b18-f468fc24f93b": true } }, "outsideSid": "16bb6b07-0c70-4727-9084-6daf5556cd4d", "id": "61ce50e4-3654-48db-9a9d-72024d924d23", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkEyNTZDQkMrSFM1MTIiLCJhbGciOiJSU0ExXzUifQ.v9Vg9fLA2Wzc-QcsCj8JSzi-XXOlm0MVws3Xbfg3gJ0QUBXqrQcxS02YXP4fLye8t3QxXAuV541hD1Z2dKv7wvTWoUvlTl5gixFD0sZWM9Fpws1C6YDRsr3GlCSUXOtbejHSPgjiubwHiVbN7_Z7bHQ11ychNc7ilrLwu3keRUpl4sCFK-IeDjUBMFk0lG6L6hHy26MWnVrOzAKjJeG-GavHdYL11wgDl1_AvX5tHbUXoIIhS9OCejNultfBNFdOUkLSF1Gj4_eZK5l1qzka7mStKzWI5LkKEz3ge0eaAGDm-mZ6GkCRnBJOrdUyXd1ulm6wU62lcmIFWO377ija1Q.nFcQYkr2Nvcn5iX5UX-Nsw.Qc8O5MsPEzidBU3dYxx_Ca8Fx6NqhXdNqNzxXZ7X49AaH0h-48yzzOY7Jq7f6CQdpnlAhQ4KmZJeB2PT2Cnejbzc6358UWdpKoMuKLt7GCk8HN8g8EgnMmDV4HM7JO_Za48LOkmQzeCwbKdCBZfq2Ehi1F7BLsSPSthtafiSouYo2rHeLQeJ2_0eiZvwQYh2LOzbAH3KHLH9Yz-kXocaanFvaouOjBQzNanFke4iav1uM7jgV_RXN7WldLsGG2WxMXwxIvzR8cHRt1iDOQl8ShGiZ_KNItgHvn1i0t4euymDBdr4cAnPosQ_JFdX06bCdUlukhu_WA4QSJ8uKTCDl8ZuqzuNG2jJ7cRtvLMbmO3EVkfJ870QJtyIfmgFc249Os7hxE1WFQPG37HapKmWMvfIoqbp49Z0QGMkXpPHybWgSw2BLL3hick0ZuUyEDMTaVlxwDqf1uz8LCIuktSrLjjyMrWhZD4ITCcmSwOFOm6sfIdU4tAQ3HiK94PK5KgqVBLCqdRnJypjRhNIAk2mJb6KGFx9lg2sPYcWURmCxB34dNX2x2uvluPsePeugmFUFEvmQ8CWx23bAhopV4yePxEnkkKcovYiNjUN2fWuFipge2bpzL5xZQ4HOQgjkVxnK5IRd5H6xF0Bo4qoCLJMTs4y1XJw0yijiN6kLKTF8DsP8iDUxfmrcm16neYV2fMiOgQgCiWUKfgrwJVQMevBaWds-Q7G_xh4QUdfT2wiE8G83XWbRiJ7aB6fK-rS-xISx9ejmSDPdc4-if6wjgYw3CJPRYw4AuXPMEZD0xzGHQq7272QkNHuJGk4dwCXQNUC.i7wkHwM_N_Sz4Dl2jR4KOYvTvuwWaNG99NrtEsJHugYGL6dXTiB-XWFimQR637tct3Zay9GL1RYHjpUiEyVW1A", "opbs": "d5a299d3-3b3e-4ea9-9653-3cce6135734b", "response_type": "code", "session_id": "61ce50e4-3654-48db-9a9d-72024d924d23", "client_id": "1eafe95b-373f-4ced-9b18-f468fc24f93b", "response_mode": "form_post.jwt", "sid": "16bb6b07-0c70-4727-9084-6daf5556cd4d", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a63ec785-a64f-4175-bbb5-3665c8128624", "old_session_id": "bc822332-cf58-44b7-9929-eb767ebdd0cb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:08" }, { "isJwt": false, "opbrowserState": "d6856584-8290-4833-96bc-9e76b5055596", "deletable": true, "dn": "jansId=b56a3cc1-9b09-4cc7-bd95-37ca845961f5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:09", "creationDate": "2022-11-24T09:21:08", "ttl": 0, "sessionState": "d4ab075eb3dd2371f020c9bffc6fbc3d637c1ffc186082d859ee6366b40cf8d9.68915186-18ac-479b-800f-b4ec86c6cb65", "lastUsedAt": "2022-11-24T09:21:09", "permissionGrantedMap": { "permissionGranted": { "1474e67d-e583-4550-8e33-fac8b4d4e414": true } }, "outsideSid": "63fa4efa-58ff-4b50-9ea1-eb741acdfd91", "id": "b56a3cc1-9b09-4cc7-bd95-37ca845961f5", "state": "authenticated", "sessionAttributes": { "opbs": "d6856584-8290-4833-96bc-9e76b5055596", "response_type": "code id_token", "session_id": "b56a3cc1-9b09-4cc7-bd95-37ca845961f5", "nonce": "31213223-8a0a-489a-900a-af6a9c8a1cee", "client_id": "1474e67d-e583-4550-8e33-fac8b4d4e414", "response_mode": "form_post.jwt", "sid": "63fa4efa-58ff-4b50-9ea1-eb741acdfd91", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c641d0ec-c824-4780-84d6-07c82117319a", "old_session_id": "9879fddf-e594-46d2-a366-a3e609fb22e6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:08" }, { "isJwt": false, "opbrowserState": "36e3ff56-93e4-4e11-8d34-aaaddcf7f178", "deletable": true, "dn": "jansId=8bdf6d95-f31e-438a-b371-ee1a6319c40f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:08", "creationDate": "2022-11-24T09:21:07", "ttl": 0, "sessionState": "1da44aa643c6d1eaddfbc34121bceae5fa959bc97425d37bbeaaf4ce9c9d3cff.77add4e0-0bf7-472e-8e41-8860abcf2d31", "lastUsedAt": "2022-11-24T09:21:08", "permissionGrantedMap": { "permissionGranted": { "abef959e-722d-4a52-9c41-3e993ff4936e": true } }, "outsideSid": "4ab1bc90-c6bd-427c-abce-2a5a9b07333c", "id": "8bdf6d95-f31e-438a-b371-ee1a6319c40f", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJhOTI5MGJiYi0yOWY4LTRmNDQtOTYwZS0yZDYyZjllM2U4YjciLAogICJub25jZSIgOiAiNGJhZTk4MjYtNWM2My00M2JlLThlODUtOGQ4MGE1M2U2YTJiIiwKICAiY2xpZW50X2lkIiA6ICJhYmVmOTU5ZS03MjJkLTRhNTItOWM0MS0zZTk5M2ZmNDkzNmUiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.c8EDr2qyzOsylIkhL29D7UNt5ekHB9wJuC-rzVoM7ixkzTQqdLzH9hxHeMmeI4ORWJHtjU9EkOAyjcQzheM_nVT_Dtk1Np3Mv5kcG29ZUg34VQCkgXE8k4YZTGOfeHVp0kzUHZoaoHe1HqOFIZyLt9kqiUxqdkmckYlznxoRen5EkunFZJWqGPDx3HLmJsJFtrxvLepMWpagF0yT4MDoy0iN-jByg7CL1HHDrU170GrehT53cz95rYZSI5Fx6NUyVnt6xGiwdcqc1eBknH67GkbxTop8ZpDgSl_E1TwAR50MQNyjf2FrZbZR3dKgRCxE74P3Upl0XgM5P_c8YRN0yQ", "opbs": "36e3ff56-93e4-4e11-8d34-aaaddcf7f178", "response_type": "code id_token token", "session_id": "8bdf6d95-f31e-438a-b371-ee1a6319c40f", "nonce": "4bae9826-5c63-43be-8e85-8d80a53e6a2b", "client_id": "abef959e-722d-4a52-9c41-3e993ff4936e", "response_mode": "form_post.jwt", "sid": "4ab1bc90-c6bd-427c-abce-2a5a9b07333c", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a9290bbb-29f8-4f44-960e-2d62f9e3e8b7", "old_session_id": "ee3354c4-705d-4688-9939-aa6a6b3f9f16" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:07" }, { "isJwt": false, "opbrowserState": "a4d08e67-0792-45c2-b402-06e1fd3d6671", "deletable": true, "dn": "jansId=1ab83fef-2aba-48fa-b4ed-dfc5ca794dcd,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:07", "creationDate": "2022-11-24T09:21:06", "ttl": 0, "sessionState": "552d2f85be26559d4d206eb691e7e828515f36d73ef80efb12ef6c2de507a4de.a21fc28c-5d9a-4050-b4b8-4a1ef15ce48b", "lastUsedAt": "2022-11-24T09:21:08", "permissionGrantedMap": { "permissionGranted": { "027aaf20-8aa9-46aa-9c28-887dc787155e": true } }, "outsideSid": "dde7e401-079e-426c-b06e-6231dff652a3", "id": "1ab83fef-2aba-48fa-b4ed-dfc5ca794dcd", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.flXLelYG8YKwXt4KPv_yIfkubZluw4YyTuH1QmNg1SRU8hMdFv7OJrckBikArE3p_6HETk8vSxLOluZeT3zK4FLrXkdvIpTriFmgLWUV_kT4M5LelWJw30-oM2wTQM4JK3di8vniE7G5bE7QNPcvSQWIH5K52xxF5zxbI_IIblJD2iJFwCwYnunihiD6DxJrMKvRnggMoOwEe4ncBc_JcHhdGda8x9coTQCcVJBNz2x2Jpwofo1S3SSbCXj2fGEEpg1GxzAQlVQm5V3UpDAEVASlQZ7HC04ZbrqLiFnO4mhP2boBysJgboqctoggwiZm5mpjGGwprAG9UxKIFyXLhw.xiMox8cKfb3xO5pTCBJQPw.I7Q9mNMpV0HHEfxXFMuwBVDsD7092l3zvyXiP3F5fRMwY77rMYWltSSBXH5PUjjVyMCXe0N5ITNZsvkTJp7oZSISWuPGFW_Y7TfC_Jadca-NO2jRqq6_py1veXR3z5_s_2oL40XB5mAiegH56pEYWUodGb-uCFL_nsf5xpCEclAII_SjPsbeEPgjJ_2pTbvIuQXVSgfyDj4G-dHRLXBalcHAXZmzkodH2lr4X90r6T4zIs1l4ggFu8sH3L_5uiVE0ULKJK_RfoG76efdXQ_Nu4bwwjr0y20sDtd7d-LrMccAArwRUlE8FDFzSo9pExdIHD61-RpFRwcgxrfojbEcoezosz-BuF0W8YQ8G200n0rzzdLwn9URfS_k0StsAlUHi--VGd1L3ywfQx9h_be_MQtW3uEFlZGtnMxHSMfomsk_WZo-VL7A4qcokeFoeaJqOmVTRU0UxmqklVzaqWrA3K72os9Q1lYINxh9UCazoljjudws_EvdB0Nu6eAB89bv-tVQjdaKrHBf10BnFs2aMZn0RjdedtPXao_zAEbB1dlnzdBSf7Lkzony7MtkoQG8LxSe5_X2AqmDe85kr4Ug8ruHySxiVgkbOBPJp1Xi_1gFXYOxz7-Vr4tMFuyyHJo-JWbrCKy0TBLA-mt7Zdk9XOZ5xzZbhD6Wvzravg-DXueso0ON2KfKqv1R9w4I9OOZx9C2kgF2MzjSFiEXOesX9uMu_0GkZvah2OEb5-ykNbt_76IFPUqhvNwzOtndLKgmZKNIKXQQ9cQFcuucWv1HfLqZY94yk7aXUIfWsoQLgy6Ho5b_3wgSCHX5SgQq-qx8.fTIMwJwITLdZCHfBIG0-U1qKgEDG_ZeCagxsC1Y4s3s", "opbs": "a4d08e67-0792-45c2-b402-06e1fd3d6671", "response_type": "code", "session_id": "1ab83fef-2aba-48fa-b4ed-dfc5ca794dcd", "client_id": "027aaf20-8aa9-46aa-9c28-887dc787155e", "response_mode": "form_post.jwt", "sid": "dde7e401-079e-426c-b06e-6231dff652a3", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0556b0d9-49ad-41e9-80b1-2337a4290545", "old_session_id": "d4251df4-3454-4870-bf3b-2f2d925d9d44" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:06" }, { "isJwt": false, "opbrowserState": "e8f664a6-9d19-4ecf-a498-7a0ced1f0c84", "deletable": true, "dn": "jansId=1088dcd1-eeb8-4dc6-a8c7-3c1a27378901,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:06", "creationDate": "2022-11-24T09:21:05", "ttl": 0, "sessionState": "4849388f28909e69c1f85acffdb8e051d24bedea67aa241f7683eccc71922c58.9aa12834-9ed4-4360-8599-5714658d383c", "lastUsedAt": "2022-11-24T09:21:06", "permissionGrantedMap": { "permissionGranted": { "6457729c-93d2-4851-986a-4788bafbdc4a": true } }, "outsideSid": "a29fd679-d0f3-46bd-aef4-420869aba769", "id": "1088dcd1-eeb8-4dc6-a8c7-3c1a27378901", "state": "authenticated", "sessionAttributes": { "opbs": "e8f664a6-9d19-4ecf-a498-7a0ced1f0c84", "response_type": "code id_token", "session_id": "1088dcd1-eeb8-4dc6-a8c7-3c1a27378901", "nonce": "e41a3024-a1fa-44bd-bac4-cdc4cd137c21", "client_id": "6457729c-93d2-4851-986a-4788bafbdc4a", "response_mode": "form_post.jwt", "sid": "a29fd679-d0f3-46bd-aef4-420869aba769", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1d965753-ef66-4f2b-8c22-2cbefcffad90", "old_session_id": "a187f895-8a18-4048-852d-5f0f17d9df3b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:05" }, { "isJwt": false, "opbrowserState": "73f2f29c-cfa6-46af-a145-3da872f36003", "deletable": true, "dn": "jansId=4d5159f4-fe39-4d68-bf43-ab98291b9924,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:05", "creationDate": "2022-11-24T09:21:05", "ttl": 0, "sessionState": "a1115fa37b6f44ce7c818d4a55f21bb023030fca65ba97601f49e451415127b8.4f8aa748-dc1a-4c5a-8dad-d777121c31ad", "lastUsedAt": "2022-11-24T09:21:06", "permissionGrantedMap": { "permissionGranted": { "e9a815fd-b112-417f-9ff4-9ae9c4a92f4a": true } }, "outsideSid": "6f14cbb0-2e91-45ee-94d5-4e7785036aec", "id": "4d5159f4-fe39-4d68-bf43-ab98291b9924", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJmMjA0Nzk5ZS00MDNhLTQ4ZjMtOTc5Ny02NTY2MWNkZDdlZWUiLAogICJub25jZSIgOiAiMmU4NzA2MzYtNWE4OS00NmFmLTlkODAtNmVmMmNiMGRiNjUyIiwKICAiY2xpZW50X2lkIiA6ICJlOWE4MTVmZC1iMTEyLTQxN2YtOWZmNC05YWU5YzRhOTJmNGEiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.kwhGMuLbkGOtHAUDdMvEdtxPZxjUHXJYs0clE2-6qxl1HWzVQBprtACU-v4CFA1hh6qGLLe3U9lq0FaY22_5ZXJI1Fpw5IH7lefQQAF5QTbB96gBJ6xbiYxit7J0798gp2BGXtxoL9OFzgcfPkSd5aLZwpOK1pYznxzRI4WPEBUyUmXPpyNHbVJyFWJ7DIydlaaoXVduNKPJtiDvRhTFc-m-gFK66_KabSwqseKsUtaHGvQNXmcjkYUChgwWJPGt6EbYGUle3Pxysf7JHdUuK7p-PmijbtQ2XTHGAdbvNjJMi4feCky6rhdbhvFTAly2L3ix6mUYl6oNYj9gG2S9xQ", "opbs": "73f2f29c-cfa6-46af-a145-3da872f36003", "response_type": "code id_token token", "session_id": "4d5159f4-fe39-4d68-bf43-ab98291b9924", "nonce": "2e870636-5a89-46af-9d80-6ef2cb0db652", "client_id": "e9a815fd-b112-417f-9ff4-9ae9c4a92f4a", "response_mode": "form_post.jwt", "sid": "6f14cbb0-2e91-45ee-94d5-4e7785036aec", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f204799e-403a-48f3-9797-65661cdd7eee", "old_session_id": "8632caa6-66fd-4e22-baaf-422e4091f824" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:05" }, { "isJwt": false, "opbrowserState": "6ee95888-1b0c-4576-998a-10720064b45c", "deletable": true, "dn": "jansId=7ccd0352-bf45-410d-813f-fb20be668f0e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:05", "creationDate": "2022-11-24T09:21:04", "ttl": 0, "sessionState": "d2aeed5c0c6ea86a0a1b38ea3b0c825925b033ffef4bc5a8ba918cd23d17cbaa.55d139ad-87d0-4d0a-8d1e-359e7fa4f9c8", "lastUsedAt": "2022-11-24T09:21:06", "permissionGrantedMap": { "permissionGranted": { "c5278d3b-cc01-4c8f-89e6-8f49721dc03b": true } }, "outsideSid": "27708792-2158-45e7-9b67-1752c9e58bff", "id": "7ccd0352-bf45-410d-813f-fb20be668f0e", "state": "authenticated", "sessionAttributes": { "opbs": "6ee95888-1b0c-4576-998a-10720064b45c", "response_type": "code id_token token", "session_id": "7ccd0352-bf45-410d-813f-fb20be668f0e", "nonce": "b41bf6fe-c1ee-4815-9ce5-3a386e9dc635", "client_id": "c5278d3b-cc01-4c8f-89e6-8f49721dc03b", "response_mode": "form_post.jwt", "sid": "27708792-2158-45e7-9b67-1752c9e58bff", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9179ceca-bda9-4f7a-87d7-61884099a8c4", "old_session_id": "49fd8b32-9eb3-48d8-af36-1f6888d2b738" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:04" }, { "isJwt": false, "opbrowserState": "599d558b-3522-4413-b955-d4554c4c792c", "deletable": true, "dn": "jansId=af0849ee-ef7a-471c-95e1-97294cbd53e9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:05", "creationDate": "2022-11-24T09:21:04", "ttl": 0, "sessionState": "b89bc577eab0b4fe4974af380fa2d7d13da02a3e1bd5888ca156573141520bc6.ac8f6e82-3785-4e02-b1ad-edaaab8cca8e", "lastUsedAt": "2022-11-24T09:21:06", "permissionGrantedMap": { "permissionGranted": { "8f385700-9885-4db4-b5cb-9b18dcc8ad4d": true } }, "outsideSid": "62e3c242-6df2-498c-a8a8-1db96ced9d13", "id": "af0849ee-ef7a-471c-95e1-97294cbd53e9", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.307FVJc7T-nF77vkGRswc5KfxYll9l1bGgjjak8CS0QqEugv7k_XAA._lhzQMS0I-cgvOOk.6imGMjhwkmd3rAHqLjwDwJrpXrQvKzqHAnNWNWEAuC7p0XiO_DfUu5mX4Gg3PX9DRXAelX1GhYogdk2J3MtCBCWTP6v7nZVA6vWkpI3bdO3v7AfJ0z-cF8uPpGkEvkFRO-UFlXkjE-iG1PiH1bWmuCOz_4OcvNDeWp5_WlZrcko5fmJtJQzKSTU8v4BTk0b_u7FEVZM6zfeAk5KNJhclYyDpJg53qkTlSh6V2QAMAFPQoI1vpxahzOe6VafZrX6YUWUTgAKB4V92MiWnvRUICtK-BUgsrkEXKSnPsWhEIgEnd7swDe60W0l_O4lFnoZoWAVfl2L2gEDGiCitVLUXJdYXjwUokyW4sNNQ1s39B0j8L91opix92-3QDZzJfxuMquU3rFJdaR6MzgsaA5M-ceIKaZ027n8Tgx7MAzMg9g16YaP81mPYDtXVer-I2ghxR6IbLzLK9i6hSUEHYnp_0182do3CQLh4JRsNlThOd__-DbOPu-MRiY4IwJObX0XBIHk2gqFoI2A_1JO82wsQbAlGSdM4Rknf33in-Ar1cXEXbwXCJbEpNf7rZCe98c7akQp3x4q9zDRYtgIDTmCXeTn2N3pkwhuJulg7jgAlx4W9TH5WXbzyUhHE6TDT-WOKNapl7LTe0Zuwl-vTsCTCnuLPYoRt6pehulIbyvgb2YC7J8URlxAga4e2hxYJ3pDWuF0pFIdWJgku09m7SHgj5LgZjYCbobRnBPnHIZ_Vut-O-FfCi-7kXkCsUW4Iq67X9JW_wHWdcUmJi9_UNx33qUwRFxxj5mUPAMqD_JAZqkNC5kQ.SM1_WQ1JQzsfYbGZ5xbL5Q", "opbs": "599d558b-3522-4413-b955-d4554c4c792c", "response_type": "code", "session_id": "af0849ee-ef7a-471c-95e1-97294cbd53e9", "client_id": "8f385700-9885-4db4-b5cb-9b18dcc8ad4d", "response_mode": "form_post.jwt", "sid": "62e3c242-6df2-498c-a8a8-1db96ced9d13", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2b692c8e-e506-4950-9e5c-fc45db557c96", "old_session_id": "a3130b2b-09b7-41e4-a3c7-156a033cc2d6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:04" }, { "isJwt": false, "opbrowserState": "5051dde0-f652-453a-bcce-454625aa5326", "deletable": true, "dn": "jansId=add7e2ed-f78a-4b27-a6e6-4cc7193cc076,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:03", "creationDate": "2022-11-24T09:21:03", "ttl": 0, "sessionState": "8a2e1bc67d25c94af36389ce97b3117ea76d1fabac857765aecf1215adb892d5.4e1fbef3-2034-4c74-ba9a-5a74744d5199", "lastUsedAt": "2022-11-24T09:21:04", "permissionGrantedMap": { "permissionGranted": { "9d21a134-92cb-452d-9978-b36ecbb7d732": true } }, "outsideSid": "6e24b972-aca4-442d-a025-4f5d906deb89", "id": "add7e2ed-f78a-4b27-a6e6-4cc7193cc076", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJlNTc5YzEwYi04N2ZkLTQ4OGUtODhhZi1hNjI4NGNkYmIxZjgiLAogICJub25jZSIgOiAiZTJkNWMyMDktZjJjNi00MzAxLWIwNWMtMDQxMTQwOTExYWU5IiwKICAiY2xpZW50X2lkIiA6ICI5ZDIxYTEzNC05MmNiLTQ1MmQtOTk3OC1iMzZlY2JiN2Q3MzIiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.IGP-vVtSiTMn9k6Vvp7VKhcVr6hJoWcLQ7PN__WA5E1YUOWLBga3b6rtBE72vt50ePb1q7oPb-QVkNeLYcZoU4MdcJ2s6vE4vS1Uiyn-f3hwTxUvyMgG_CUIeRbHDZLKESEbUtOPyWiySqNDHS7sjcDeTLHhhC_ACvjy_fmN8zK9aOZrWVkVk998PDw2_rQQ6rk6S68JJ-mbMQ1CxW6f-3IBLlZrSThqAljeeTyvZDD2tiJjYxrMRhwU5D6NDHm8F4udceY9FaE200DJqyVKo_uvabpBHaEA8lCmLSlXaqWOKdnHqncS5InSAkkOnyYdvlWIv9Q0OPMiFg4N4ixtCg", "opbs": "5051dde0-f652-453a-bcce-454625aa5326", "response_type": "code id_token token", "session_id": "add7e2ed-f78a-4b27-a6e6-4cc7193cc076", "nonce": "e2d5c209-f2c6-4301-b05c-041140911ae9", "client_id": "9d21a134-92cb-452d-9978-b36ecbb7d732", "response_mode": "form_post.jwt", "sid": "6e24b972-aca4-442d-a025-4f5d906deb89", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e579c10b-87fd-488e-88af-a6284cdbb1f8", "old_session_id": "06372301-0780-45fe-a50b-42cf73f53a49" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:03" }, { "isJwt": false, "opbrowserState": "8aa5025e-6ace-4a58-b55b-a5eb63b7b919", "deletable": true, "dn": "jansId=2e19d5c9-fada-47b5-953f-5e72704dad15,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:03", "creationDate": "2022-11-24T09:21:02", "ttl": 0, "sessionState": "067cc0b9c584e464b9b22d59e2bb50d36577783338e2e088b5ba5c32cbcf1216.004f6790-cc92-486a-b385-ae83398f05e9", "lastUsedAt": "2022-11-24T09:21:03", "permissionGrantedMap": { "permissionGranted": { "160a6a94-4bb9-4160-9c0b-2649ddba251f": true } }, "outsideSid": "a1ed0cfb-8c21-41aa-b23b-0f94a86f779b", "id": "2e19d5c9-fada-47b5-953f-5e72704dad15", "state": "authenticated", "sessionAttributes": { "opbs": "8aa5025e-6ace-4a58-b55b-a5eb63b7b919", "response_type": "code id_token token", "session_id": "2e19d5c9-fada-47b5-953f-5e72704dad15", "nonce": "0f2ddd0e-4e90-49c8-8a5a-5cfda0f1902a", "client_id": "160a6a94-4bb9-4160-9c0b-2649ddba251f", "response_mode": "form_post.jwt", "sid": "a1ed0cfb-8c21-41aa-b23b-0f94a86f779b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2344981b-8dea-4caa-bd30-1003a47275a6", "old_session_id": "50401633-3850-4d3f-987b-c870ecf99e10" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:02" }, { "isJwt": false, "opbrowserState": "71d170b3-ced3-4117-93f0-f90c5c951da9", "deletable": true, "dn": "jansId=2ddeee32-822d-4d2c-97f2-8af9eefa4a92,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:03", "creationDate": "2022-11-24T09:21:02", "ttl": 0, "sessionState": "6d8dff2138b792a063177c0b600a50e76901fa076577e952e66e72043e0ca1dd.af422fd2-0f29-4128-b3f5-e5f6e67bce55", "lastUsedAt": "2022-11-24T09:21:03", "permissionGrantedMap": { "permissionGranted": { "6383f79a-0490-4d71-aa06-509787519a73": true } }, "outsideSid": "dabba95b-af97-4328-b017-0bcd0ed9396d", "id": "2ddeee32-822d-4d2c-97f2-8af9eefa4a92", "state": "authenticated", "sessionAttributes": { "opbs": "71d170b3-ced3-4117-93f0-f90c5c951da9", "response_type": "code id_token", "session_id": "2ddeee32-822d-4d2c-97f2-8af9eefa4a92", "nonce": "3af02a56-42f5-4d04-991e-69718d81ceb2", "client_id": "6383f79a-0490-4d71-aa06-509787519a73", "response_mode": "form_post.jwt", "sid": "dabba95b-af97-4328-b017-0bcd0ed9396d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "45370792-1d86-4767-b64a-aec6d567aaba", "old_session_id": "db84ae65-45af-4c14-9d9e-2356dd08c063" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:02" }, { "isJwt": false, "opbrowserState": "43fd078c-2208-4728-8de3-ef5b6342a5c0", "deletable": true, "dn": "jansId=b9295aee-e55f-434c-8fde-d72dd5177e26,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:01", "creationDate": "2022-11-24T09:21:00", "ttl": 0, "sessionState": "bd38d626bd82f7560db1ca1b54469948b3ba28eac482004ca757daacf9911c14.fc23b5fe-bfec-4ebc-a126-2e99d23fa2a7", "lastUsedAt": "2022-11-24T09:21:02", "permissionGrantedMap": { "permissionGranted": { "326387b5-c82f-4c52-892f-67e3895bb5cd": true } }, "outsideSid": "6540fa85-27db-4c4e-9106-fb2a23b96d26", "id": "b9295aee-e55f-434c-8fde-d72dd5177e26", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJiYmUyNjlkMi0wNTJlLTQ2ZjMtYjE5MC1jMWJlMmNjYjkyMTgiLAogICJub25jZSIgOiAiODM0YmE5NGItOTkyMC00MDkzLWIwOGEtYWExNTMzOTE0MDI4IiwKICAiY2xpZW50X2lkIiA6ICIzMjYzODdiNS1jODJmLTRjNTItODkyZi02N2UzODk1YmI1Y2QiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.nLQIi4gDgayp3nIs7hFBD9BjylPUpMVBhwJ4MrBu8HuClW-uVf_PHaOrJ2hru9hFajWobs2sreen3ZX6YtG73Q-QP2_2skQcGPUWkw4mDxMGg26W-1GdHwmJ3TwMKijA8SmKyaG295OIw_lBP-VsLqjsN-LDRamzActGfMKvNpSra1yUW_qZgovHmdEc_1XZAvWZ_MuiIQ7i_-qZZ30dvS2DwiHFbaYUz9LRhRJ61R1cGePpH-AoNkBOXiMFddgI9oxI8e0Vu8xqhLBvFLTdgwTXykQ7VmLESY7b7D9SHOkXCsgHNOA-EcmfcFEI48uDcurFvzeMRVGmLJXn-Wl9Dg", "opbs": "43fd078c-2208-4728-8de3-ef5b6342a5c0", "response_type": "code id_token token", "session_id": "b9295aee-e55f-434c-8fde-d72dd5177e26", "nonce": "834ba94b-9920-4093-b08a-aa1533914028", "client_id": "326387b5-c82f-4c52-892f-67e3895bb5cd", "response_mode": "form_post.jwt", "sid": "6540fa85-27db-4c4e-9106-fb2a23b96d26", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "bbe269d2-052e-46f3-b190-c1be2ccb9218", "old_session_id": "67d03846-91a4-4520-93c5-497654225136" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:00" }, { "isJwt": false, "opbrowserState": "045f9d43-3dd7-447f-bd7e-a204d4af14c9", "deletable": true, "dn": "jansId=37a76e27-57b2-4bfc-8c72-8bbbdd3bc9da,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:21:01", "creationDate": "2022-11-24T09:21:00", "ttl": 0, "sessionState": "21f748cb442e70ffc08360a95333609d738ace7a5579317c3628481ffc95eab8.a02f14c9-f57d-424e-84bf-aa8a864ad401", "lastUsedAt": "2022-11-24T09:21:01", "permissionGrantedMap": { "permissionGranted": { "11706683-dea4-4abd-a1d2-e2f77a89e65c": true } }, "outsideSid": "8bfedbe4-3e2f-462e-8d28-4ac62c3201f3", "id": "37a76e27-57b2-4bfc-8c72-8bbbdd3bc9da", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiI0Y2E3NjMyMi1mY2ZkLTQyNWQtOTc0ZS0zMjBlNTZmM2U2YjFfZW5jX3JzYS1vYWVwIiwidHlwIjoiand0IiwiZW5jIjoiQTI1NkdDTSIsImFsZyI6IlJTQS1PQUVQIn0.JCNdPfN_snZN6pmuIF1E461xGmp2JjBq6DujsAuUPSrRW1LRZ139tbVsVy_HsQXYDL72naouVqrK2n1NM8UhhItnGE2q_m2NdxWyN18L0Me0Qu7Qg22r850GyvDRDUI3_e1seF42dMnBf98Ne5feF_Jx13Zbqczv5QFsjnmS1Vna0OA0N2shOglFwLbLpWIfxiw7gSBNgj97ycWxjB5TsqzwZmJy3quS70G1NsFU_4pE6tHRwa0EOuBKKaieDQzbkAsoH7V-24tsm5iiH016iF8z0S0fC-_RoGbAUC1YpAC-neyqfnIdjbTvLDLJJXkfFfEFX-QhjnAZNyMFtzvEvQ.7XwKdO7e_dzhtetO.gSEY2OpiO64xnHrOLVf_sMHCBkJL1JGy-B9RDQ-mpwmj3-vZUA7sSvvSCFkUvhCVxmsbM2bZGG6D9Xhmlfun_Sx-n1jlDoBGCUzyI7b8DHc2exxKOY1F2F9N39Ih_trM-Ic-FcOh4g023wX664n-W_5HQxoF0pPxMOwZVd6diWYc4Hb6FaU21-a7LmAYCG3n9xKBYwMq-7ozMKgOUqPjjco5UGxs0JkiOgodsJmyJcg92GXB11In4Re9t8vf3EPWltSURDlK8M4QTDTJ2Itkvr0BGr3JAkWwIIVd5vdCNKQ24pVsavKPZ1FA1CZApq7So2hMFDLwhdcZM2KvKXHHBORwVgjTs_6nJxp6CpVbGuP0PfCbZurZ42k8ZGym5CwvVhWQ5CKQmIBJOTK3_yweG4O5vrroI2t-g6mresZfyRzevsZCTx7lLLKo0Dmv1y9Ju8fkJ0666x3vzR_Q1-I0LuzGMkjbb7-qSZBaBndW-IEw_8anx8aCwgIQ99rsG2cMmBdMUjjciLBf2_RN4liByQcXabQGkMIfAyFNg0axmGFPydmBX3pEUr5RuMCx5-SRhr7vPIJeFk-4VrqGWdpXVowC-FJTEYXAiyT5XVtxTTJaOz-01YYKu_KOHbMjclCXRRtkfVpeqMuDqg2ue1pgjpH705JSGnMz0by74kBd-vw_9zKM1yPt_sIbKxn5HovZxmIJAwY0F6RGabVidy3PraEFq11NgDUic5DMLCqy2q1Lo0lgdXs0HiN0iN-S4h7jH43kr_AL_VxY0blTDPqIJlY7u4bx53YwtpRSoyzu0Z4Ol2Jccxbd-So0LcD_etlN9XMMAGHpppeyWeCivq4A5XvjgmOEAT1NMwdR09uu6Mhpr--ht-Gu1hJXQOdK7KY97Z3qW9RlsvUtlG-HJPNXZbr2J74OtijhW8vZzCiN.xG7x0pQA5OP793GIBkBreQ", "opbs": "045f9d43-3dd7-447f-bd7e-a204d4af14c9", "response_type": "code id_token token", "session_id": "37a76e27-57b2-4bfc-8c72-8bbbdd3bc9da", "nonce": "da7900bc-a156-4c71-94e5-1f64d801e770", "client_id": "11706683-dea4-4abd-a1d2-e2f77a89e65c", "response_mode": "form_post.jwt", "sid": "8bfedbe4-3e2f-462e-8d28-4ac62c3201f3", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "77763288-f821-4ddf-9c06-b0d3263d783a", "old_session_id": "df9c4fdd-01e3-4aea-8d99-e6f0460a2ae0" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:21:00" }, { "isJwt": false, "opbrowserState": "b2f6c090-f787-47da-aedb-ec2690a58137", "deletable": true, "dn": "jansId=850030c4-3a97-4a54-8e81-b2018aae5137,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:59", "creationDate": "2022-11-24T09:20:59", "ttl": 0, "sessionState": "6f80492cc0c0bfffeec786a96bac08658f27f82ba7528700d7d097e6caab78b1.71d881f6-e02b-4cc9-8844-5095f8c5fb24", "lastUsedAt": "2022-11-24T09:21:00", "permissionGrantedMap": { "permissionGranted": { "e2466fa7-4fa5-4736-83ee-f69498df63dd": true } }, "outsideSid": "2ec2a1d1-9da9-49aa-b058-07696ac681ae", "id": "850030c4-3a97-4a54-8e81-b2018aae5137", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI0MDdiMzAzZC04YmI0LTRjM2EtODZjMS0xZDg2NmQ5Njc0ZWYiLAogICJub25jZSIgOiAiOGI2NTZkMmUtZjU0Ny00M2QyLWE4YWEtMGM0MWU1YmU3OWFlIiwKICAiY2xpZW50X2lkIiA6ICJlMjQ2NmZhNy00ZmE1LTQ3MzYtODNlZS1mNjk0OThkZjYzZGQiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.AVGgjwx33TPSknIWgxX1_TXfuPwhJ7LgbtySnWlT1PB3ueffy9LGpI-5AMjT2_H-BdaGCdYoFZz7gipCM92fRuVFAE4tpJEM82u8M1neXmJZ2iblBSo9cp8oSIV7k0FphLUpzI-Wb1xP_4Y4gahLEAv2o3gNwKjEW4FHzT0ZNSIZpdW-", "opbs": "b2f6c090-f787-47da-aedb-ec2690a58137", "response_type": "code id_token token", "session_id": "850030c4-3a97-4a54-8e81-b2018aae5137", "nonce": "8b656d2e-f547-43d2-a8aa-0c41e5be79ae", "client_id": "e2466fa7-4fa5-4736-83ee-f69498df63dd", "response_mode": "form_post.jwt", "sid": "2ec2a1d1-9da9-49aa-b058-07696ac681ae", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "407b303d-8bb4-4c3a-86c1-1d866d9674ef", "old_session_id": "18aac85c-593a-457c-b4e7-cdf715684f73" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:59" }, { "isJwt": false, "opbrowserState": "e6a11fbe-af14-4b5d-970c-0141848a3714", "deletable": true, "dn": "jansId=2c9cfe1e-ef5b-48f8-a29c-0ca497b7581e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:59", "creationDate": "2022-11-24T09:20:58", "ttl": 0, "sessionState": "079ca5e31a9f2ea8e10a51c9193a3abbbb2ba383c063631f8609ae60511072d0.94cdc4a1-68d9-413c-8ffe-4037ac2b1a34", "lastUsedAt": "2022-11-24T09:21:00", "permissionGrantedMap": { "permissionGranted": { "7a8c5d09-4a4b-4633-9a99-8bcca6b1ad4f": true } }, "outsideSid": "327f7a8b-2ad7-4899-a885-030bee2216dc", "id": "2c9cfe1e-ef5b-48f8-a29c-0ca497b7581e", "state": "authenticated", "sessionAttributes": { "opbs": "e6a11fbe-af14-4b5d-970c-0141848a3714", "response_type": "code id_token", "session_id": "2c9cfe1e-ef5b-48f8-a29c-0ca497b7581e", "nonce": "6146df7d-77c2-405b-8e76-7595ad9b6e52", "client_id": "7a8c5d09-4a4b-4633-9a99-8bcca6b1ad4f", "response_mode": "form_post.jwt", "sid": "327f7a8b-2ad7-4899-a885-030bee2216dc", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e8a51ac2-a554-4514-b586-aebe2db9aed4", "old_session_id": "765185bb-fa09-4316-9f7c-7e7cd43ae83c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:58" }, { "isJwt": false, "opbrowserState": "9e038aea-fa10-4642-ae69-eb5d7ea426ec", "deletable": true, "dn": "jansId=a424da9e-d6b1-40e2-aa70-70298e2407bc,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:59", "creationDate": "2022-11-24T09:20:58", "ttl": 0, "sessionState": "57c06e0d7c5b2af179cb5e22785bf475418b9eb2a8b4f3b7f403f5fae64af0cd.84974b2b-66b6-4884-8d6b-4de0e0e5c203", "lastUsedAt": "2022-11-24T09:21:00", "permissionGrantedMap": { "permissionGranted": { "a9aacf7c-925b-48cc-ae78-a17c527ddeb1": true } }, "outsideSid": "22c6e14f-692e-4231-b1ad-ae75308646fc", "id": "a424da9e-d6b1-40e2-aa70-70298e2407bc", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkEyNTZDQkMrSFM1MTIiLCJhbGciOiJSU0ExXzUifQ.Ab2uDY2PEkGZu_l7GsniJwzP1DfJXx7grjpnF9Q3rVxWxnJrEW8azT7xpePCZbWPLQBgDPAIp_cttuUh2tqPCZcLIrPA2c2QI4eos7riQ-p-5mpSPch9ELSr_lnVjJd5lVifUuM3b0eItSssJTNMIZ8DusglizxButf7DJD9oSj29lp9N7CIeXAmOg4nGdTRLgY0Mvkt_6OzL4-V0jINjliiSKQ94Lclv-5nYWXUQ65y9Jg2doAqKkN1rbLGKKzCBRIdh2XjOqWwjZOtCaA6XpZeH0E3BvgO2JavKXfHV1XWM_7znzfHgYFlqdPZH1j8p2CXkUMTTwnoaY7g8l7pRA.ft6imUR6rdoRw3opE-6-cg.mWXBaU5vhDme7-49N0M7x4ff0eQQylUI-hchUzCAGAOlIuWAKcrk0H0hDFg4g_oNVAAK4HZ4ly_zRrFVI-NVHF3fTQCYSGbxM6Srrbh5YcFjIscTEegqq2CfQLBC124PnND71hu7aQtcIzA2hEoTSbrj5SrEm4jho3YMG3CwEyliU_NBXyLQChUH9adVcQdq1dNpAfWZUFC9B8G1WSzKNUFIISjCEFVkbWiLVbfnIwo9jHanO6Fs5W7w0oIoh2NzHsvmrQ2p-vIgms_b0bDSSkk8PW_b7s1Ln1m-3fleVbq8XukECYtsKH-tySrcdZgJGaJevyuviL9XPwnJfP-ZnRVDOHf9Ogz9gKiCidhzJay1pVrsChyGUEnx2xRYNE_4EAdEIZsmmKPZL7xBJyHPM5x7rehM96yRw3dpyYxnY7XhH6ziQKYgTBkOuy5MOTASsTmbmbOrz2kNyMMsIwQF16-hdZux0PK8VBwyaJRfOTzkM1IMnYiBjVHT7eh4C5vTZsnqSZTPOlNk_x1UbUZ-CvFvpQ6_5Ghhf9qG9vWo3arv1c6Sa4fJreC5_PzRwY8PTDlKpP1wXktNWT_ZdgT5j1rQXfzHp_9i6Q-tewkAjfOZp3VfM6zwiUCxEIBMfHSdTfnpeG_4NuoSzawyiwh00IRfvwpNmzgBlQUD49Ppxn048k2hVV3OMEnwAjGJAFxZCodQG8fecTtSqZH95dDGXFRA_UU7_jT9dDEqPNFB2yt43l8WJD5hm0GYeqUZ_GwNeDes-wSej8k88dqlvpfObbawJMPziK-KKvzcL_7Y6W1PQx9OsiQ1ZAVt7kjpd-PWYdqVcjZYoFOkNPtEeqABzn-ROxZm16yoIvwKzzsT022H-9ZnhkvClPghFdV35elWL9MDZ06HnKNOxdC9glUObqWtPL9vDnvW1RgWNM21XMY.CgqmBk-DbI-QlgFRKcDvn8QE6UqE2RP3MSV8YEcsjdpqEgnOJwv2Fnoe0PPF7Iue6F3aSno1xh4w4LaIR3EGbg", "opbs": "9e038aea-fa10-4642-ae69-eb5d7ea426ec", "response_type": "code id_token token", "session_id": "a424da9e-d6b1-40e2-aa70-70298e2407bc", "nonce": "c9a35b6e-bda7-4c64-bd9f-ca7e1391e0ff", "client_id": "a9aacf7c-925b-48cc-ae78-a17c527ddeb1", "response_mode": "form_post.jwt", "sid": "22c6e14f-692e-4231-b1ad-ae75308646fc", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "abe8b08f-96e5-4e3e-a661-444db1df1037", "old_session_id": "8f63198d-b734-435b-bc21-98a78fd7ff34" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:58" }, { "isJwt": false, "opbrowserState": "49b93b0c-99a4-4ae5-bad9-911e67f59429", "deletable": true, "dn": "jansId=525da4d5-d5a2-42bf-b845-90d72865771c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:58", "creationDate": "2022-11-24T09:20:57", "ttl": 0, "sessionState": "9e86d1b45106958705dba3ee65fcd5a406a6cb66f286ae45a9ca26969640cc77.a4d5d6ed-08ad-44ea-8d66-4e2f1591d3fd", "lastUsedAt": "2022-11-24T09:20:58", "permissionGrantedMap": { "permissionGranted": { "8fea4511-4cb9-44b2-bb44-e24ab56fb784": true } }, "outsideSid": "35aaff4c-a350-49eb-a0ac-d8a2e23b1c80", "id": "525da4d5-d5a2-42bf-b845-90d72865771c", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIwMTkwMGMyNy0yMGUyLTQ2OTYtYjkxNS1kYjNkMDVjNWRkODIiLAogICJub25jZSIgOiAiOTc0MTliNDctZDc2Yy00OWVhLTg2YjEtYmY0YjY5NmU4ZjU5IiwKICAiY2xpZW50X2lkIiA6ICI4ZmVhNDUxMS00Y2I5LTQ0YjItYmI0NC1lMjRhYjU2ZmI3ODQiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.e2EyW3HjQol9cGU3-4RBgF6DTIATq8Vfq6WjusetGfUrhcaMJ1J2D36SEukHHkEAl2HESq5dC69uNEEGBc7qlklxWnGGc_P3EuIJjK2cKfvP8YnO9HNag7k1XVEhDihU", "opbs": "49b93b0c-99a4-4ae5-bad9-911e67f59429", "response_type": "code id_token token", "session_id": "525da4d5-d5a2-42bf-b845-90d72865771c", "nonce": "97419b47-d76c-49ea-86b1-bf4b696e8f59", "client_id": "8fea4511-4cb9-44b2-bb44-e24ab56fb784", "response_mode": "form_post.jwt", "sid": "35aaff4c-a350-49eb-a0ac-d8a2e23b1c80", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "01900c27-20e2-4696-b915-db3d05c5dd82", "old_session_id": "0a4c77bf-359d-4d60-989b-4a18c5484148" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:57" }, { "isJwt": false, "opbrowserState": "893b6bb4-70ca-4db2-a4d5-da319a1033f6", "deletable": true, "dn": "jansId=b830ccbc-c0ca-48b9-ab43-d6277e97183a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:57", "creationDate": "2022-11-24T09:20:57", "ttl": 0, "sessionState": "f72015e44cdf91b7a2ecff1a765ce62b195531fb60142d1439401fe6c3a09879.f72b5e05-5449-4106-b455-69a21864a7f2", "lastUsedAt": "2022-11-24T09:20:58", "permissionGrantedMap": { "permissionGranted": { "d9d724f3-a828-40d7-b37c-09a8e8bdeb69": true } }, "outsideSid": "20838801-2965-4409-9d3e-9115cfdaed00", "id": "b830ccbc-c0ca-48b9-ab43-d6277e97183a", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.HqlqNjvXLHcNb2Lfklaj7VgzNqo9GIbL_kgXA4kWaqOi3p4T8QudFxJk7daJuM9aJBOcPDLk_cRaDjTbLnAWg7PGW6OP33N4qjATgRL4T5I5BMex5ebLLfLWh4MeMCHbp-JoMYFHxnGiFObLHFja1krRCqdPybNt0slCo_Chog0cLKkFjIBvr7YEP6LpI0fntA-jb7TgqBnysJSyCYEu8gUH9rZD5YmhXH62rpSL95Zezkzo1dMWzrtSnOjuwoDADJkYA0ikH0UkolNjqZunQnsIgKNKuBBVOXQP_YmwckDSD8vXT_ry9dtkGt3xsbvmz2EpvEOPvaarJuaNxPucww.srjxMOvUeWwHIZ9zPsv-sg.DazarTfJEv8U_6e7s0EpSeE8dblRVILaXMHoKBDOzz4QdmN8WedPY-pgxlmlUNK2krt6JIkaiyQ624xHp76880XH-8FZT83Unm-VFqRH4oMd0MbT9lSE_xU6JLlsrbGRKlXbn5jQZWfFEE-Nyair-ouAl65loz5qmN54MwoTpMP23jNWg9NvfJflRTmW2SR7pCfUYnsNMVwwQTpemCOjX6KJ-orYz2vaNtIS87Q9J-l0wUMb5gGU78fnAUGszCJEWYde9hLoHR2wAJXnosYv_jDZlFKDU5fQaMs9lE78OS60ExhGlxghmZww207nIKspFQUiQfqIvfO7Df2v9-tNLnQrR8BQUTuai4OReJpak7oJuxY8z0lY-ZRxMyXeyvO71LlwdSl3uXI4SWioohAD691qNecjgp-BtjuEt2AmfhvRsPCSOvz3Z3ZGy4pIe14v8cdwe8XHQi0Sw5d7Qf7PxkPdpo8vUuEtEmBHxYvYILy4Np6lSk6s1qLDAF2zSQzdpLvl6hjc4di2jXvMu1zJ9QIGY2w2DMINOzyBna8auiL2_PkHldZneNzbf6Sz7VqcS5oRsmkTXLyAKt0Tcdieo0r_WnWoiuX9YrBhFwGC1CVuKbZ77xRyvAv8f91xUCj61zuqsFKYD-IhiVHTMjrS8PtOVkv4YDado8VuY8QnGPONXxkKvmQ13M_qpfxOsSzFWW4kLdt_rsqWv1Db4p4B_19Ms4Egw5aWhxLAfA_-61ADEn7Q-T_XIobJld9m5WSEnMH5w6BFXiJPzY9-EN-9uG2wfZQGYFK1k-YNpjVB1YlXPcp6NPh9I4ZMyXSGgtbZXA-10e3A_nf368KV29VsAYaidQ0P0IcJMmcDD4AjtMWwuT8dbkEH7HqBIG7HBVfak5zElvG1dcPOp7p-yjOBDTozvq3orWMTkz2fTANCjto.pB0gu7wREumkLoE35t1s24rx6_7YNc_xyZCPnZFiEzo", "opbs": "893b6bb4-70ca-4db2-a4d5-da319a1033f6", "response_type": "code id_token token", "session_id": "b830ccbc-c0ca-48b9-ab43-d6277e97183a", "nonce": "0fc0b338-f36d-420c-9376-fd6c43cfc6a6", "client_id": "d9d724f3-a828-40d7-b37c-09a8e8bdeb69", "response_mode": "form_post.jwt", "sid": "20838801-2965-4409-9d3e-9115cfdaed00", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d009eded-2264-402c-ae81-81fb7ad6f8d1", "old_session_id": "1a841140-2a69-4415-98a5-e2b9417f6606" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:57" }, { "isJwt": false, "opbrowserState": "5715b3bd-4a15-42bd-a4cb-9fc09861e462", "deletable": true, "dn": "jansId=3f2cba8f-6305-479b-a151-0f46add86b89,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:56", "creationDate": "2022-11-24T09:20:56", "ttl": 0, "sessionState": "3e9b4f04ce1aeea01e6f94a8e061e5ac92955f5ce54949f00d5bcab68d7993fd.01b3f929-7f49-4d92-ac24-d1c9aad998f6", "lastUsedAt": "2022-11-24T09:20:57", "permissionGrantedMap": { "permissionGranted": { "fd956871-05b8-4a19-9ad7-dd764c18ab08": true } }, "outsideSid": "617b4073-8552-4831-8641-e5751c117481", "id": "3f2cba8f-6305-479b-a151-0f46add86b89", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iLCAidG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI3M2I0NWM1Yi1hZDlhLTRiNWYtYTcyNC00NDEyZGExYmZiM2IiLAogICJub25jZSIgOiAiMzNlOGUwNjItMDhlMi00ZDdmLWJhNjItNzRjNjYwOGNmODA3IiwKICAiY2xpZW50X2lkIiA6ICJmZDk1Njg3MS0wNWI4LTRhMTktOWFkNy1kZDc2NGMxOGFiMDgiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.7_Olz4PVpwrDl3iLu-63mkfrxmICCaXLUBCaHjswnORH8co4mVwRSVahND8y2fLhK8B_D7Qq4kYIkbglcKFjww", "opbs": "5715b3bd-4a15-42bd-a4cb-9fc09861e462", "response_type": "code id_token token", "session_id": "3f2cba8f-6305-479b-a151-0f46add86b89", "nonce": "33e8e062-08e2-4d7f-ba62-74c6608cf807", "client_id": "fd956871-05b8-4a19-9ad7-dd764c18ab08", "response_mode": "form_post.jwt", "sid": "617b4073-8552-4831-8641-e5751c117481", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "73b45c5b-ad9a-4b5f-a724-4412da1bfb3b", "old_session_id": "3724fb29-fd63-4f52-a3aa-1aea7743b1eb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:56" }, { "isJwt": false, "opbrowserState": "1ef354ab-8135-40d1-9e0a-b885ff280616", "deletable": true, "dn": "jansId=37ee4411-7018-458f-88b1-53e2c68cf27e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:56", "creationDate": "2022-11-24T09:20:56", "ttl": 0, "sessionState": "582b0347f16c2ea361486426788f0c0b99b88bff456184d1fb50060472c33d60.772cd5c4-cb6a-4147-885a-45ff81065909", "lastUsedAt": "2022-11-24T09:20:57", "permissionGrantedMap": { "permissionGranted": { "1bc13149-7125-442f-af99-8d2908547c55": true } }, "outsideSid": "4c0d6908-76c4-499d-8af5-58af1033795b", "id": "37ee4411-7018-458f-88b1-53e2c68cf27e", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI5ZTYzNTI4MS1jZGY3LTRmZDUtOTAwNi1mZTY3MmM3MzEyMDQiLAogICJub25jZSIgOiAiM2JjNzI4NDMtMmNhZS00OTQ4LTkyYWUtMzgyZWM5Y2RjZGJkIiwKICAiY2xpZW50X2lkIiA6ICIxYmMxMzE0OS03MTI1LTQ0MmYtYWY5OS04ZDI5MDg1NDdjNTUiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.hi-23OEwlngNn4fIBm3nmKC4w1ziCoNHCu0Cat2HchwktFkI9gykLu2rac6dUnMLdqYozNEtqAaV1jPwEYRVcfulBfhDBsLG0_heqpY4fLc6jvLOfCT6aE-KUvpmmBk11j-PPM4SoP5bWGAJsCTGEqI-1R3eyozMt8oigtvirvqtijaQ9GnbC_d8ZILN-Y0bRHhrOj7TIDby9Smlk0mLsewKf1hbAOBi_URDp5K6CegkOi0tyY0xog5ogHKGyfzr8tEIS-yPJKIZzyIlsCsiTr7ToI4SipRSUUSLFcdJsoQ8BEd6ZoHxYNvtogmizpHeLRnVdI1KSEN-olUlvCL1-w", "opbs": "1ef354ab-8135-40d1-9e0a-b885ff280616", "response_type": "code id_token", "session_id": "37ee4411-7018-458f-88b1-53e2c68cf27e", "nonce": "3bc72843-2cae-4948-92ae-382ec9cdcdbd", "client_id": "1bc13149-7125-442f-af99-8d2908547c55", "response_mode": "form_post.jwt", "sid": "4c0d6908-76c4-499d-8af5-58af1033795b", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9e635281-cdf7-4fd5-9006-fe672c731204", "old_session_id": "a95ed712-eaa1-4d87-a5cf-37d30d86c565" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:56" }, { "isJwt": false, "opbrowserState": "b09f88b8-0197-4c57-9955-7387b0495e39", "deletable": true, "dn": "jansId=3cebcf73-1251-489b-b1e4-e9aa67d2754a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:56", "creationDate": "2022-11-24T09:20:55", "ttl": 0, "sessionState": "b521b57d89d06ef9454c66f847efd1ba32ff66f06a5705930d4a1368831f65fb.a82f4288-61db-490e-9033-e0e2c211990e", "lastUsedAt": "2022-11-24T09:20:56", "permissionGrantedMap": { "permissionGranted": { "c250a461-bda1-4195-9b09-834d78f5d493": true } }, "outsideSid": "238eee17-284a-4f40-9dd8-249f88e54b93", "id": "3cebcf73-1251-489b-b1e4-e9aa67d2754a", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.5Qj7fjKsY8QwL4mGLf57cz2RhVUEBoGdDY0Vcn_IeSGg4oWR_aRAIg.YatkDZMLunXNCsC4.xSeGGigEGv4QNIRQcZAN8wlR919_ybUbU5cqL5qVkh35Z35lQYPtFy1Rq4fTWTRQsmwkniNYnMWNpAuaUVMpUIYNgSu8XOr0yjTvQOaW4UTpxvHkoZUIvdaOGqIc0mM2K7rZ8KOil4BJ5YjP-H5UxVoONCgS3vtuwqRvBaQwmdvFqvJEHKw8ojXcXm80Jte1HODrxvadS_Ku9xt9BP3QH3RVEx-Ky3TkOGmI837KXR9KnXAZ82cnzBjc9dd7PBl6zoka1oakmskuVz8MaTErbSOtgM79hyr8FPfxJ39463rp0aekTkBEZWXk0j8jqMNuI6hE3khIM5fu9mLXasOfPNH9PyUcxl_cSc2uu8wXw2Pb43N2encnUBaMf1wFQTRGWpGHYonEuBO0VCqwbNBXKrzV3OMeD2Prd0rtzqUYrj3oQAF6O1lVF0dmk_PTlqVzBXwKx3p-nt-sl6BnhEgfnuCBobk_SePhgZZSCzelH9YktWv6JzMNjILKwTpeGjMPABgeGm5KyNmqWfkONYCSWbdAIfrjaJ_JVMOFeFz8vnCirl7s4XqYT7WKwXyqHomDnfrPsVct-fp2kQhDUKYV6ktpVoeyrFE4azNQMgOZY1bQ2AFIDTt_wRb7hLvzp-cBApF7ByGxZAe2yOKn1KPgBCIEXxi4zzHxE0JakhMVF5rRiTk57yApcVZrNcoJ5zURbYI-3TX5VMvXw0Yh9zxyH5P-CeDWZ6d6C1JJzuhFaohs126etigs2tYtLNY446a5vvtBNqKmPCAfcFbrVRsHemaLLWFEyFhd47R7MpkcUIMnAYvEmRNjGxsOMrjgz-pX7Cvj8iqTe7G030VbxgfxWIKnxZLF3Lt_Hs_mCoJtqEqsxUMtkrQXwhT8oBmZsFYBSDDsQ2s4FJzebJRdpIyjUqrH9xdocf3Gz1OyXXBF.MMXR1IrZUQBJTMi9KdcIZw", "opbs": "b09f88b8-0197-4c57-9955-7387b0495e39", "response_type": "code id_token token", "session_id": "3cebcf73-1251-489b-b1e4-e9aa67d2754a", "nonce": "5f2730f5-febd-4a6e-822b-67cb6dbcdb07", "client_id": "c250a461-bda1-4195-9b09-834d78f5d493", "response_mode": "form_post.jwt", "sid": "238eee17-284a-4f40-9dd8-249f88e54b93", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "cd14070e-097f-45f3-80fe-fd39d5d378ab", "old_session_id": "6380e4d5-ed7b-45a6-8ed5-fdb8056694fc" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:55" }, { "isJwt": false, "opbrowserState": "2341ea80-adca-4496-bac7-6a17f74c8d79", "deletable": true, "dn": "jansId=23d59f7c-0ffc-4b70-8cff-2d65807abd5f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:55", "creationDate": "2022-11-24T09:20:55", "ttl": 0, "sessionState": "41cdcc96a9f6cbff3f4365e7cb9b8c8ea6f1f762a713bf6d50a68115b3d04db8.e7995f63-2bf2-45e5-bf79-3dcb6712446a", "lastUsedAt": "2022-11-24T09:20:56", "permissionGrantedMap": { "permissionGranted": { "a248334e-7656-4c8e-b1d9-79a3ce07a16a": true } }, "outsideSid": "de6e6b51-102e-49ee-be16-16e285a6b5f1", "id": "23d59f7c-0ffc-4b70-8cff-2d65807abd5f", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI0ZTQ3MTUzZi1hNjI1LTQ2YmItOTRmYy05NDExZGM0Mjg4NzgiLAogICJub25jZSIgOiAiZTA3OGIzNDMtM2RhMC00MGEwLWJiNTMtMTM2Y2ZhZGFhYzVjIiwKICAiY2xpZW50X2lkIiA6ICJhMjQ4MzM0ZS03NjU2LTRjOGUtYjFkOS03OWEzY2UwN2ExNmEiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.KQ5EIHsn1hEcFtMuhDTcE7hoonkyk0mjqNUawo2VjtiG4T0Vj3zuBqpzxOnLSMcJ9AG0szeISe0JX7CO4RO_b1pdrsof8rsnsQxVw79hTxGy47N7PXK-hB8pe_FtDnwUlzje83y5hscQ0J70pg19TgCqazBeCC7F0FiuXOYcJRE_M7kpTk3_NKqhv-E2zABH-72GOhZd17yHVhJzToRz_ZWvzOMmVZ2gtsfmzhMFAioxiOi4Bk4vtZ7taP30zi90Q8jli91wSP55vMOW9_6nwBknMecgJ7reL0ZKw9p0MH5D8rbgBPjyKIBdp7ehJM8XCsnIruqtJcPrKKVTxK83kw", "opbs": "2341ea80-adca-4496-bac7-6a17f74c8d79", "response_type": "code id_token", "session_id": "23d59f7c-0ffc-4b70-8cff-2d65807abd5f", "nonce": "e078b343-3da0-40a0-bb53-136cfadaac5c", "client_id": "a248334e-7656-4c8e-b1d9-79a3ce07a16a", "response_mode": "form_post.jwt", "sid": "de6e6b51-102e-49ee-be16-16e285a6b5f1", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4e47153f-a625-46bb-94fc-9411dc428878", "old_session_id": "55b54c21-70eb-46b6-8618-8cdd620df82b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:55" }, { "isJwt": false, "opbrowserState": "4bf22e49-90aa-41bf-be7d-d5c407fa5e46", "deletable": true, "dn": "jansId=3e48e661-fd17-4639-a50e-3df8bc662674,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:54", "creationDate": "2022-11-24T09:20:54", "ttl": 0, "sessionState": "9e69a7c67fd9c086c16ec1106ad5bcfcbbc84613db7ae6723bc6b1c8aad91b89.b301cdc3-4249-4a4e-a6f5-65ae21974a33", "lastUsedAt": "2022-11-24T09:20:54", "permissionGrantedMap": { "permissionGranted": { "f4171cf4-d3da-4020-bfc0-23edbc1514c4": true } }, "outsideSid": "57de5241-8399-4048-bbf8-0bf96281cfa7", "id": "3e48e661-fd17-4639-a50e-3df8bc662674", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.rpw1dM3qoycqQP0SJu2BeXdfocvoLJLM.Hy4QtnszFddCc2et.e8iJ0-0AiI_s0rXwolHD5qzOc152SfZmhCGULpM_Iguo4WAgZ7iD_3tJUETUgtOkMQFaL2izOq1NfbjTSmgkCjvP2lzKEtx6j9dcQL9lZa_Kphd2Ft2IGWZW13mHVzPp0p_7Rq6eQHZb3QRzOwC3gJhdtS5og8Yz5adBM-a4oXrUt4UJMZ4jyphlfvBg7R9zpr5Rwc3McpJKvq2L_2vD0UnWzWK1sr1mqVo5MN0ce2T6kYFyBvHbLvkyNnLg6jVGtwicSJwO5ZfThRSwYtuXV0aLPrL2WLls8t7P3bZA5zzSlDDLiXqJIt_zYnys-W4DIJ5CulX5juGCTTsTSDyfYmkGNqSKo018tl43RHabdVEX3YH-1HjPo5xxzARR8YyjUtlv0cyCOz72GZJ3wsO3PExiDfxG_cShJ1hVeyZWNXUgT9XtIfJZqA5FL1S_yt3PljS5NRMjXEd4u9rSd-TcRXYUAsGpS4Yl2MKSIVCct80aWLchD7RznfRQDFbdU7P9j46RbC1I0Qn_CzWSgQzmZcCp8VA8iKxyEZWM70-JR4fYCsSb7lug0UUVXguXlO40QmD8JHtMTt-eLpXHrnDkfg_6h2XFuuncZJu_SKjxwLSqcu1A29nDUpfCnkiDdExwQBXoSheixmxPA0wZ2VyKISDEQVxSgihQfXQtar9d46f9sM9wfMo0bmnjeD43Tb7q-h3TZtpTwNY-5N8o6NAYodjoB9moBLWculJ9ZCMzVSXXxIOUit_nRDB-2f4EkQrW8eSpah7Rj-QCYa2QnxnoHuA4SbCrhu3d1-JAzOJoJXgoT526koF1yrVmG8ke8KNSX_sO8tr3TslnY6ph9B9uSaGT1mcaOTIdwOMk-UjqMbd8xY3tyRPFFzp0ZuXwX01CXrB6yGDJ9jD2eTxfyV8wYspu-QcNd2WtZSjap5Xq.sZAjXQTWXOVf5tlJyVf3Og", "opbs": "4bf22e49-90aa-41bf-be7d-d5c407fa5e46", "response_type": "code id_token token", "session_id": "3e48e661-fd17-4639-a50e-3df8bc662674", "nonce": "a3efa70d-bafc-466c-a0d5-5982db6be065", "client_id": "f4171cf4-d3da-4020-bfc0-23edbc1514c4", "response_mode": "form_post.jwt", "sid": "57de5241-8399-4048-bbf8-0bf96281cfa7", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2730e1ce-69b1-453d-80ef-bf117a4caa8e", "old_session_id": "1ed1aae1-18ea-4fee-8653-6f7466af60af" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:54" }, { "isJwt": false, "opbrowserState": "2e5b9e2f-8780-4480-ad59-adceaaf33cdc", "deletable": true, "dn": "jansId=8de79732-ecdc-4169-b0b0-bd184fb7e7a4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:54", "creationDate": "2022-11-24T09:20:53", "ttl": 0, "sessionState": "d0256be89dff3d0bcf4bc8ea1f04b76a245cf6994abf20033638e096a0a00654.6659e79e-a295-411b-b96a-0abd64bb5bb3", "lastUsedAt": "2022-11-24T09:20:54", "permissionGrantedMap": { "permissionGranted": { "3a887fb5-2a66-409b-bedb-7344f62ee6c0": true } }, "outsideSid": "59d1262d-4d3a-4a63-96e1-2a13a0cc02d8", "id": "8de79732-ecdc-4169-b0b0-bd184fb7e7a4", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJmZmE3NjVhMi05ZTUzLTRhZjctYjhiMC0zNjI0NDQwMTkwYWIiLAogICJub25jZSIgOiAiNTM3YzM1ODktYzhhYi00NzVlLWIyZTUtOTBkYzM2YWUxODdkIiwKICAiY2xpZW50X2lkIiA6ICIzYTg4N2ZiNS0yYTY2LTQwOWItYmVkYi03MzQ0ZjYyZWU2YzAiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.Gdn2bwWMlvlqQA3wUBCnsH2EFxBAZrDq5MFTY6_8DGZEF5oe6V-xVBq8Kuzuf9SV-D-hD5XFthaOE53y7rqmRE-t-gPB9wevzf0bkvutXa6xAzk602hoEPQhPR8TvKtoiF73oCSCs0tWZ-ffglp-hDKhMz_A1-wTq7DrLH28sRIF5x8782xT7Cl5Kr_obvVeqh3RmQkyx0A8LPCE8Eq7uCJjpBaluivdsz-WQqqlPM13H_ewd09V5eqTZ-UaGyVpUVoAVePz4EIbrrMe5cPUNdBmqBj-kAy733v_NK8lEeJkLOYOyLsLcAgLMHc_E5r0ZORoh_m1sCFvNae2i7X2uw", "opbs": "2e5b9e2f-8780-4480-ad59-adceaaf33cdc", "response_type": "code id_token", "session_id": "8de79732-ecdc-4169-b0b0-bd184fb7e7a4", "nonce": "537c3589-c8ab-475e-b2e5-90dc36ae187d", "client_id": "3a887fb5-2a66-409b-bedb-7344f62ee6c0", "response_mode": "form_post.jwt", "sid": "59d1262d-4d3a-4a63-96e1-2a13a0cc02d8", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ffa765a2-9e53-4af7-b8b0-3624440190ab", "old_session_id": "effcaa8c-ffc5-4cdf-b263-d0928b4ffdfe" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:53" }, { "isJwt": false, "opbrowserState": "a0c1c28c-c43a-4380-b8e0-4dc2126cf9b5", "deletable": true, "dn": "jansId=595a5a4f-69db-4966-ae18-b19c0b58013e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:53", "creationDate": "2022-11-24T09:20:53", "ttl": 0, "sessionState": "ee449ba92a9d1d6363218de9e7d1ccd009a31b79ec721354142591fe507d2061.d3949c07-ce37-44be-b131-6483bae2b3c0", "lastUsedAt": "2022-11-24T09:20:53", "permissionGrantedMap": { "permissionGranted": { "6cdf4a27-1ee8-4055-8a7c-79f191ad247d": true } }, "outsideSid": "a2f4d77b-a61e-440b-8984-b8af89c6cdbf", "id": "595a5a4f-69db-4966-ae18-b19c0b58013e", "state": "authenticated", "sessionAttributes": { "opbs": "a0c1c28c-c43a-4380-b8e0-4dc2126cf9b5", "response_type": "code id_token", "session_id": "595a5a4f-69db-4966-ae18-b19c0b58013e", "nonce": "4f0543fd-661a-4c5d-a190-c21a2c96a1a6", "client_id": "6cdf4a27-1ee8-4055-8a7c-79f191ad247d", "response_mode": "form_post.jwt", "sid": "a2f4d77b-a61e-440b-8984-b8af89c6cdbf", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "65634457-0dfc-45b8-8612-79af6394cd78", "old_session_id": "e0835b7a-e8e6-4401-8c38-097875d3c123" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:53" }, { "isJwt": false, "opbrowserState": "403bbdfd-98eb-4656-a9ba-f38089c8809c", "deletable": true, "dn": "jansId=831e5ff6-d2e8-465a-8906-956fb5abaf61,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:52", "creationDate": "2022-11-24T09:20:52", "ttl": 0, "sessionState": "c839becaf9bc9124ba1983437f96bfe61f82c1e58f20f82021c99ce0f49aeb62.f6786030-3654-42bf-803d-b9594d96a84c", "lastUsedAt": "2022-11-24T09:20:52", "permissionGrantedMap": { "permissionGranted": { "72f4cac3-96b5-4c22-b41e-9b8190decd26": true } }, "outsideSid": "f734b5c8-91b0-413d-9f46-fe387a31477e", "id": "831e5ff6-d2e8-465a-8906-956fb5abaf61", "state": "authenticated", "sessionAttributes": { "opbs": "403bbdfd-98eb-4656-a9ba-f38089c8809c", "response_type": "code id_token", "session_id": "831e5ff6-d2e8-465a-8906-956fb5abaf61", "nonce": "c4aa334a-5efc-4c88-8247-ccd4acd48552", "client_id": "72f4cac3-96b5-4c22-b41e-9b8190decd26", "response_mode": "form_post.jwt", "sid": "f734b5c8-91b0-413d-9f46-fe387a31477e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5379556e-b66e-4e2b-994a-b3d837af949f", "old_session_id": "add864ef-f46f-4858-8645-76d947e7a3bb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:52" }, { "isJwt": false, "opbrowserState": "100bda37-a242-4b4e-9178-496a6c2ad6e8", "deletable": true, "dn": "jansId=94adc179-19eb-4c79-90b9-1906ffde3283,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:50", "creationDate": "2022-11-24T09:20:49", "ttl": 0, "sessionState": "3138ef15a701a7e56538bc1c272e246885ce20aac8572477c9cd3cd4a3a802dd.20889260-32fe-4382-886b-28fce78b6626", "lastUsedAt": "2022-11-24T09:20:50", "permissionGrantedMap": { "permissionGranted": { "0ffd6d21-696b-4386-990a-023c9e0e9565": true } }, "outsideSid": "37a22543-820d-4ee5-96af-542b496e238d", "id": "94adc179-19eb-4c79-90b9-1906ffde3283", "state": "authenticated", "sessionAttributes": { "opbs": "100bda37-a242-4b4e-9178-496a6c2ad6e8", "response_type": "code id_token", "session_id": "94adc179-19eb-4c79-90b9-1906ffde3283", "nonce": "e7a62f97-3303-4e03-819b-d96e32a901e2", "client_id": "0ffd6d21-696b-4386-990a-023c9e0e9565", "response_mode": "form_post.jwt", "sid": "37a22543-820d-4ee5-96af-542b496e238d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3c253cc7-1d4f-4479-9024-e2978354cde6", "old_session_id": "3c013660-061c-42c5-8e76-8b3ff8fb005d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:49" }, { "isJwt": false, "opbrowserState": "d169008b-a8d0-4b0b-9243-7038221039b0", "deletable": true, "dn": "jansId=73feee3c-889f-4b0d-a5f8-ece4f78dd571,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:49", "creationDate": "2022-11-24T09:20:49", "ttl": 0, "sessionState": "13b7dbf4bbbfce92f1c5ce00c2367c32f9cd0253aac9ee2e013c0d06b8a60bc1.7f953cd9-fd1b-4bfd-b550-6dc3a4105954", "lastUsedAt": "2022-11-24T09:20:50", "permissionGrantedMap": { "permissionGranted": { "1d137e37-8090-4977-9db8-7b969f7ff59f": true } }, "outsideSid": "ea425249-f1e9-469f-b867-8e8b6fa6447e", "id": "73feee3c-889f-4b0d-a5f8-ece4f78dd571", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIzZmI4ZGE0Ni1iMWVmLTRkZjUtOTdkZS1kOTZiODIxZmE3Y2IiLAogICJub25jZSIgOiAiMWY5MTlhNjAtMzA3Ny00MTdiLWIzOTQtNWQwYmE5YWM3NDUzIiwKICAiY2xpZW50X2lkIiA6ICIxZDEzN2UzNy04MDkwLTQ5NzctOWRiOC03Yjk2OWY3ZmY1OWYiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.19vL8Yq4XjMj5pXHe6gGzG5G02fuN-klSs4H1scGQvMf3mPC3s70Z4wR82QSnH_XN2mJvsXR75Wkie8WqGD0hbL73NwEwLkdv5nE0Wy0cJWW9_gcDnvTe7jHerAaY0qIS6EybnU4eawZD9vfUuXpo06aaWdDj8Nwd5RdIUcF7yZer2QuXIYq87hzrh-vzX8Vf7o5nzfNsDI94ZUVxuWsMyYVpYDa2NN1r46xpehVIEURkSYvXJi2xLspCFOXndkD0oV90r9pqxfey8nE9Un7oqcsSms3wyUFOMZ1eEcY9dyYC4EJWN5RIkF9K3deelbhsuZT9RqVMmmbRqmKMohIBg", "opbs": "d169008b-a8d0-4b0b-9243-7038221039b0", "response_type": "code id_token", "session_id": "73feee3c-889f-4b0d-a5f8-ece4f78dd571", "nonce": "1f919a60-3077-417b-b394-5d0ba9ac7453", "client_id": "1d137e37-8090-4977-9db8-7b969f7ff59f", "response_mode": "form_post.jwt", "sid": "ea425249-f1e9-469f-b867-8e8b6fa6447e", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3fb8da46-b1ef-4df5-97de-d96b821fa7cb", "old_session_id": "fae43eee-7b0f-4cad-9e4b-1a89030a401b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:49" }, { "isJwt": false, "opbrowserState": "b79d82aa-d106-4afd-94d3-db03a608bbd8", "deletable": true, "dn": "jansId=8c954cd7-a548-4127-b67e-acab966c9ca6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:48", "creationDate": "2022-11-24T09:20:47", "ttl": 0, "sessionState": "98da9eb511f7fe84688b775dd14587edd6aac0881921e6c362719d467a60fe74.b8643998-5204-492c-983a-65418954942f", "lastUsedAt": "2022-11-24T09:20:48", "permissionGrantedMap": { "permissionGranted": { "e8785e8a-1000-4b14-9be7-fee3c705dd6e": true } }, "outsideSid": "59dc713d-1a4f-49d3-b8e2-4f3e3086fca5", "id": "8c954cd7-a548-4127-b67e-acab966c9ca6", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIxODAyM2JhZS0zMzExLTRmY2MtOGM4Ni02NTFlYTc1Yjk5MGMiLAogICJub25jZSIgOiAiM2JhOWRiNTItMDYyMS00ZTRiLWIxODgtNDBjYTc0ODdkZjU0IiwKICAiY2xpZW50X2lkIiA6ICJlODc4NWU4YS0xMDAwLTRiMTQtOWJlNy1mZWUzYzcwNWRkNmUiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.Ac_ZsjgVLo28OLz0Lq2VoKz6LYtzlkekCVH27MUPuxEDbCVTfYj5OlaumPkD-BhaW-3lI2eT7jGP9Jbzn3Mha3_EAFh30ki1-wgWLHT-vUfOFLFoOZfNM1pRC-sHlvHhT532BeH9Xx2HX-HLJ0pc6DjIdlsHGPs2IxnwwIH1Z6ivSoii", "opbs": "b79d82aa-d106-4afd-94d3-db03a608bbd8", "response_type": "code id_token", "session_id": "8c954cd7-a548-4127-b67e-acab966c9ca6", "nonce": "3ba9db52-0621-4e4b-b188-40ca7487df54", "client_id": "e8785e8a-1000-4b14-9be7-fee3c705dd6e", "response_mode": "form_post.jwt", "sid": "59dc713d-1a4f-49d3-b8e2-4f3e3086fca5", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "18023bae-3311-4fcc-8c86-651ea75b990c", "old_session_id": "91af7495-aa5b-4643-a249-859e394fa64e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:47" }, { "isJwt": false, "opbrowserState": "86ee582e-1655-4177-8c76-e5a0ac03a4f9", "deletable": true, "dn": "jansId=61c1652c-4e7c-42b5-9dce-366d5b629e89,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:46", "creationDate": "2022-11-24T09:20:45", "ttl": 0, "sessionState": "39d9e2d7d545f3c4c86cc2be9a14cf5839b61826f43ca01e38daba27428f9ad1.1c84bd79-e46c-47c9-98bd-5f40a462e6ce", "lastUsedAt": "2022-11-24T09:20:46", "permissionGrantedMap": { "permissionGranted": { "c85c4dd3-0164-4b69-847e-aab5a20cadef": true } }, "outsideSid": "c2d0664e-e87f-4155-9888-48dabeaefdbb", "id": "61c1652c-4e7c-42b5-9dce-366d5b629e89", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkEyNTZDQkMrSFM1MTIiLCJhbGciOiJSU0ExXzUifQ.IQSbHSS69g-dp1AC0xAoOUV6TZty15Vuioj9MT0M4IShI2BWek_7JV3RuNJIyarwzaqOKBJFuPvcNH3zYgFeIU4V1wufnXd70QDi-H0HBaqv9wJaNpO0Sd35Lnmkhfo1lukgLfDCLk4X8NdMNtHZF2mgLj3ma1vkrSS4Shycj1PalGGf65GM3N_q9Mw_HWte15e_XBg9QW48mew88CUeKH072J6XS6OZ1TrODzLPP68LZyjkMVaIpxuGRJTse4wsCxT3y8zeUi0pFqrcboxCg8QVe5jt8Y-MHz76-E_K-6KlR5YAZ-LPmzeJDr9QeOchEA3Dp5zHLACFtlEgzm-Qkg.ytQi0FODtiBnTVpOshy31g.VFkMCWHdERqVyK8vdF9XoYEyNJYwesbqiMiVg1W2WsID4aRfLPWg_5hqwaRj_Gm2QecKQhCRL_zwoIPn3DHKBUixqPEpA82Bn91W_39nSIEJfALKfg0vlBCwV-IKGmazxVHCUjFMkE1siikZ381keJT0hcLLWxyecXfPXmh2Ix0-mEFLRj8VgneKS2ZLb2eSGTE3VT_IrzGzkB4nWFzAr0wcP5sN88uMyUt0frL4AK-oDgKBWp0yLshSCKHDNZA2zx5CfzXdWRqoGyR-bi0C_7-YLsyrt5-xtm-ShpA_r4saunE2mjQP1OsO2AW98hRTua7xiNsK_6eqZGh_82s41Kty-6NUR6y--QfnArkNSPD25lrzuWd2ZkzUC-zo4_SFfjAqI8zYIsCI7pSnSmDWokoNrm1b8zOynqfEEpu1Hpzg3anPDHbbVCTx864T2m5XRHUAEyShKrmIrwcHnWOPJJMFnsX8vno1VDNdVHMGi19lSlTjefBqWEBF1h_WStxySAjxTvBd7zuK8E2d4gBR4mbD0XfTXsSglO3kDs03F1E-1JYaoma1UhaoxCcEdDHHzlDldP-fsWhHCRP3G5pvFMdA6Is5Gz0vox-_6uumACN7vybvxOG1WMTeyv4pTMINcYXTi7G100oeJzqkO9UPqZuS8rbpg97FpeDBxI2XJTuxx8eC0Pl_ErxqzFvnUkCUY7hqbtCC7sRyYFIzaygIbPbbzQIRzB7W9WpLee5EEKCAsQO8PAiVkuPoMHPNNtRXLhJDnXCFtvZjs-45ChlXRWYraYqRBDcCtXCLgTAYYPLTwPlhHuONrpa7k4tIpgYVJEoCBxpDoY9KMjFtimR72STjyYj9yvN8EKj8cgNoFfU832tyweRb1j7bHzU0sA_GWXPFXgcRjU1xHR5EknULiXrdzKA6Asy9544JvF8eSbk.eBWMqknJPdY6zzXtOrNHC3g2z5ymlY_FaK5lKKFUTqpawXf9oxtgE57FkV1uroVBb5KqPBAVBww6AWNkn2erug", "opbs": "86ee582e-1655-4177-8c76-e5a0ac03a4f9", "response_type": "code id_token", "session_id": "61c1652c-4e7c-42b5-9dce-366d5b629e89", "nonce": "8c103664-20e0-4cad-8420-a0e7d3cf2c55", "client_id": "c85c4dd3-0164-4b69-847e-aab5a20cadef", "response_mode": "form_post.jwt", "sid": "c2d0664e-e87f-4155-9888-48dabeaefdbb", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "346b70d9-7c9e-4861-ad8f-f8096ae930fd", "old_session_id": "b241a586-0ed5-4ce8-85f9-05171047b1b2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:45" }, { "isJwt": false, "opbrowserState": "ad11e838-845e-4f26-ab9f-58d44822c301", "deletable": true, "dn": "jansId=00617c9e-c095-44de-8a46-97ed680d547d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:45", "creationDate": "2022-11-24T09:20:44", "ttl": 0, "sessionState": "f7d0f620f1b4a5714cd85e93e26e6853edf2d043aee0097baf6fde86ae19ef8b.8525c2aa-ee65-4ed8-82b3-19112192b4b8", "lastUsedAt": "2022-11-24T09:20:45", "permissionGrantedMap": { "permissionGranted": { "428faff4-5eee-4a18-bab9-c13ef1a5405f": true } }, "outsideSid": "066fefb4-2a28-4a72-b810-29a3fe483feb", "id": "00617c9e-c095-44de-8a46-97ed680d547d", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhdXRoX3RpbWUiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAibmFtZSIgOiBudWxsLAogICAgICAibmlja25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgImNvZGUiLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI0MDIxYmUxZS1hYTIxLTQxNjYtYTdjNS0wMWI1MTI0MWViYWUiLAogICJub25jZSIgOiAiNDc1NGYxYjctMmU3MS00MTVlLThkNWQtMmMwZDJmOTYyYjllIiwKICAiY2xpZW50X2lkIiA6ICI0MjhmYWZmNC01ZWVlLTRhMTgtYmFiOS1jMTNlZjFhNTQwNWYiLAogICJyZXNwb25zZV9tb2RlIiA6ICJmb3JtX3Bvc3Quand0Igp9.MvbjV9Lnz71KArks9o-KsWB52VJEd23cpSrlx_vkulxTxRl-6dG2bfXZDIZSGI44knsdV4319Lq2I6IPQJMsgA", "opbs": "ad11e838-845e-4f26-ab9f-58d44822c301", "response_type": "code id_token", "session_id": "00617c9e-c095-44de-8a46-97ed680d547d", "nonce": "4754f1b7-2e71-415e-8d5d-2c0d2f962b9e", "client_id": "428faff4-5eee-4a18-bab9-c13ef1a5405f", "response_mode": "form_post.jwt", "sid": "066fefb4-2a28-4a72-b810-29a3fe483feb", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4021be1e-aa21-4166-a7c5-01b51241ebae", "old_session_id": "6d6e69a5-a0d8-4c4c-a782-57c08edc17dd" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:44" }, { "isJwt": false, "opbrowserState": "9c9d75b5-8eeb-48e9-8760-bbfaf34c4e9d", "deletable": true, "dn": "jansId=a538e01d-c110-4094-a9d0-a426910f6e19,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:42", "creationDate": "2022-11-24T09:20:42", "ttl": 0, "sessionState": "0f1991ef87ad9b21ecf31972873051e808fd0663cd4197e9ee2f6e473c2a8814.b5b4970e-3cb1-47d7-a2d0-600e67530511", "lastUsedAt": "2022-11-24T09:20:42", "permissionGrantedMap": { "permissionGranted": { "1e0f77bd-1ce1-4ad8-82ef-b48314598ca8": true } }, "outsideSid": "90d9c2a3-4a94-4231-b626-86c8cbee3d3b", "id": "a538e01d-c110-4094-a9d0-a426910f6e19", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.ny1TRXK0dOBXRzJRyjG4iBgKZ90oOv1Xf4ZwbnMc2L61yP6qXYbrPw.0jzzysUwtBGz85WC.LmGRRMh7qN9-PdZHpY0SavC0Pj2To-rujyp4S7kktC0l2vemn1jdjLVctTtcx3xvD7ORfXfpF77kX1hiHrHtepbmqkRuvDBbMp-kAhi3YbyHpMbluEQBX7h7QEoLm9RFLtPUeUXm4PmM2VxOuOTnuAsSrGoc53rufDRQ99znhhI4vB_9-O6xbE944KmLlufJks2PMKdQkIyc7NXns_uX82MCIAwB-bGTTBydmrqdmvEn7r7dsqIDirVRgq_DgEpfh4DlaE4KtuhrA_7my5gepkcZ1JyBp-Uue-DdP3KlgeMlyjYb8QG2XR5RV-QcHeycg01Y0aLlne5HQeVKhK5Q_Kno0W1dWF7ZZwlnyGP5JLZxQ_j-qO5LRTZkqdRonWrb19Mws3BZAZxS8CucgTuf6mI53XRhUPQWumaKgDwxfRml-QRkiziQ3XvRYB8vxtDQ8dipBYBSEVkLedv76UiheOYiV4rzW0EF3PgrEJm8zmzQ-7kjUAnnt-dDrqvVZOc256pupWys-oQNVm8uqFcsVE-x3_FBG3HLEYK59y3h7AE3XWWUEqad3xZkPxV3upahhe4JM_qsMVO6pLfz8i0oj20yiC-TV1an7kGSoKMaOghgurF7JIzPSIpueSGqAwlWEz_c-yqtkv-QEpYPDEfM313r4L1b2LMPUlH5UESBrPoXiIBy12bbh6u73mpPW8pNptlTaqm8Kd4OFfrTNH_CiHwzLcklfdpzGHINwOPt4yrkq1rRW3PBmQ778nbwjL3yIJCKX8wxybtl0XGbvHC-CmDZvJVTav7qLlvbPJqunx85onDqnxq9FvKrREL1Tpg_2EVlezHfmNmRvM07YmE3rc2jDqZnan7Chhk-eN4-ANz7uYnRmcfEWtvnQ-qbN1mQclzV8LhDPEpBEOcLWp6xbjfl0g.ekmFf52pN8gaUTJw38n0sQ", "opbs": "9c9d75b5-8eeb-48e9-8760-bbfaf34c4e9d", "response_type": "code id_token", "session_id": "a538e01d-c110-4094-a9d0-a426910f6e19", "nonce": "1132de27-7073-4d63-b864-cdcfd26a762b", "client_id": "1e0f77bd-1ce1-4ad8-82ef-b48314598ca8", "response_mode": "form_post.jwt", "sid": "90d9c2a3-4a94-4231-b626-86c8cbee3d3b", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7e288ddf-ab06-46ad-9c10-4d7733a3f873", "old_session_id": "9a3f3bd0-ae5d-4d4d-aaf5-a5c9c87ec624" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:42" }, { "isJwt": false, "opbrowserState": "1fcdffa5-1ba7-4668-966c-682de9d90381", "deletable": true, "dn": "jansId=98e7a898-dd21-4b8b-9cfd-a71b04d7bac8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:41", "creationDate": "2022-11-24T09:20:40", "ttl": 0, "sessionState": "8024c00cabf95420bdd0aaf974cb9f7dc9706efb5ab9ef2aafc43e538af1118b.371c6cfc-616b-489c-9ca6-8aa649b8eae3", "lastUsedAt": "2022-11-24T09:20:41", "permissionGrantedMap": { "permissionGranted": { "a7544d59-4a63-44ca-ba01-e2b0201e0411": true } }, "outsideSid": "6168b616-373b-4304-8cec-234d877d790f", "id": "98e7a898-dd21-4b8b-9cfd-a71b04d7bac8", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.XhsFFMoRQqVLtSG3hGMgLg-uDJLTrR4Z.V_QO_utkWC-eohiH.8TYuvCC70z01KQgy5jEIM1rosfI3t7idSBj8DMv8Svdy6albrBKt7GAV010TypnOfjHn6lvYXJDuO4i3qSCsPzXgthvlCKkyK1berHhqRuGEJJZ0G6q_ie3YL3nzGPZE4XTeN0xgr-t1h5lSy1eVQjzSrQa7BDlEHXfyRuZ7dVmHiN_sdeSIzMfTGI_oFiwsz4Cq025LTebCU__8moWJjHiKQBYtfl56GLYo_O5T1G4gLcAETT0ZyXceBgTfAOTOsqgRbh3aeXUY8EMJjXzsRR3SBIAqrMsyrXDj8ulDGLeXKpTUWy0Vcr1-y7_FUekzzVXwyc-wYnJd9iPeajsqJuheETZpMml4K6DQYpnauQ34R5A0aX84LukzMMIfzicNQRIp0APOUwKBwZ5GEV3nx9_7GRVHlPNUqusRMiCdiYCzz4o_myAgj8ehnCQtPxLoYkMYz_iguTjejn0bjLaUm58kgAnHB9KHtxGAJJLZizZ510BZQqfpbb9BStunhsVjWG2kVL8cVq_QKJop-bWeak_lSXxbAxt4RSCgus8zl1G30H79O5B1Dn2Hq8zjqZjoIbckI7-F8kh6Ts4Oi-VpyumNajrPGvzRvwAhdk4kgv1kaeRv0eiizAUJyL3LGKqvKsrz67KItA9OOtOKDzgxR-wWKHz0UzwWtiKquI0WDYx2wnfLr4yzIz8eQFRtAUPov1mPn3ZxmhtrvOEmD-TeFtWUNgu3LkCFo85IHivaLrPtKRenmsZqHXWoSY3V14a51J-8j3b2F5_vCPpo7b-HD9lM909u1ze47tjQRdABA8xwrotrKlrheMkWbClDcuZaBwPgJJh5-0xL4W4IVsiwi2wlQOuIbnzqPvaivVMyFZBrwwgpFhKIv6Z3nLaFzPi-IhojB-aaOkx-pmgSOL2CIBMbPg.EWehYc72xhj57ICEQFKfwA", "opbs": "1fcdffa5-1ba7-4668-966c-682de9d90381", "response_type": "code id_token", "session_id": "98e7a898-dd21-4b8b-9cfd-a71b04d7bac8", "nonce": "17905137-b783-46b8-8eb2-d72ef3b57190", "client_id": "a7544d59-4a63-44ca-ba01-e2b0201e0411", "response_mode": "form_post.jwt", "sid": "6168b616-373b-4304-8cec-234d877d790f", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ad374547-a22d-411f-a106-b1da7611b0d4", "old_session_id": "974b083d-ff7e-4860-b390-b2ac5d0acc74" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:40" }, { "isJwt": false, "deletable": true, "dn": "jansId=2037b312-e285-44ae-9275-1c06ee33ee52,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:39", "creationDate": "2022-11-24T09:20:38", "ttl": 0, "sessionState": "dc293795af4c007ab92e151c29f2d06dd311022d63fa7ee5d05d8946b7da454e.2c019c28-77be-46db-8012-5df8ce4da7ff", "lastUsedAt": "2022-11-24T09:20:39", "permissionGrantedMap": { "permissionGranted": { "46220f1a-0578-4105-9aff-2b11223d7c70": true } }, "outsideSid": "d0d1f640-f4c0-45d4-82b9-a4630f583b70", "id": "2037b312-e285-44ae-9275-1c06ee33ee52", "state": "authenticated", "sessionAttributes": { "attemps": "0", "last_attempt": "1669281639770" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:38" }, { "isJwt": false, "deletable": true, "dn": "jansId=8a385fb2-5e67-414f-9bd7-57c6d64af7c0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:35", "creationDate": "2022-11-24T09:20:35", "ttl": 0, "sessionState": "3d334ffd8962d68923fb6a953328f81f2a58b0c924e266f328fb7270c2a4ff3a.54e2000d-13d5-4354-b488-d5ad2e1edb85", "lastUsedAt": "2022-11-24T09:20:36", "permissionGrantedMap": { "permissionGranted": { "4abcf4b6-0475-4a07-b9f7-abbcc7b97593": false } }, "outsideSid": "5ffe8f6a-1e7e-48c8-8c10-8a6b10cdb00d", "id": "8a385fb2-5e67-414f-9bd7-57c6d64af7c0", "state": "authenticated", "sessionAttributes": { "attemps": "0", "last_attempt": "1669281636225" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:35" }, { "isJwt": false, "deletable": true, "dn": "jansId=69a0864d-b1c5-4343-8be2-d7d7614c83c2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:33", "creationDate": "2022-11-24T09:20:32", "ttl": 0, "sessionState": "e0b4612c55d5e57101086a4404daabff09ef1ba48aefbd44f2af80b0ad8f6b5e.115f6ce4-2c46-4c45-a6dd-140befd08fe0", "lastUsedAt": "2022-11-24T09:20:33", "permissionGrantedMap": { "permissionGranted": { "f735e21d-aada-4bb7-855c-0ae10fa69855": true } }, "outsideSid": "3547a91d-bfd3-4026-adbd-d6179df5a740", "id": "69a0864d-b1c5-4343-8be2-d7d7614c83c2", "state": "authenticated", "sessionAttributes": { "attemps": "0", "last_attempt": "1669281633500" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:32" }, { "isJwt": false, "opbrowserState": "07f6d26c-c6ad-4ad1-864a-152f1b681404", "deletable": true, "dn": "jansId=0d891a3e-851d-4126-807a-4b3f37e90da3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:32", "creationDate": "2022-11-24T09:20:31", "ttl": 0, "sessionState": "3ae8ea46a19689c0380b0fa9ff7293c3c6aaccbbff444da9f6adb2deea378f2a.068f422e-350b-4425-8a5e-965ef4800bd0", "lastUsedAt": "2022-11-24T09:20:32", "permissionGrantedMap": { "permissionGranted": { "7c4b6e3a-e650-485d-9518-3f2dbeb14e10": true } }, "outsideSid": "3575e840-3f78-4cbd-9e28-96b64e097282", "id": "0d891a3e-851d-4126-807a-4b3f37e90da3", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0._R3PSDCs7ChPjC-QAMudWkEvSDitm6PD.4QUTk7_tJe4zVFZZ.fQJZteiYlfyoVF5FhNMqZwatyftDbWxsWhz8LzvqlmJfqOIocX8OWcHZgAt4_4qLOyWszFTWlCNp9dOQYe6rWghn-S1KL2oS0086ONASMv1JLQVq4GlaScOICv1_RUpPQKzbsfu4UFQNiMXBJYcEVrbbzgoEhRrn-iiZt3Ruei3BJiLFWcyk37doX3wqLVabUYI9Pu35SQkAdKNk9Gqw5QUlkXiOn-O0CWPQ-6ElZVpLXG9dqyKzq7SNvxi7yLxy8gOH23OLKMGmS2z8TSd0ToiH6Y8b48sKWPfJvwVoqhlnIOwnMgJrFCJwe7ihA5b5u-DqDasHmAOC6WplAtKNuyverPbaV849xh8xcAS6TYAgxA26VeSJT3eBnLSG67KitNZiK8eaCXMLh8Hr82BC8-lRllcVUMJxyS4mWA13WYTXOGY5WRXBsc9uJY33HtrQjHIoNjQJd3uuQ8cX5zqDDXCQb4yfshElDW69FtiDCL5uVHnl9e_3PeRby5oEURRCrm1gMMOG5tyXjjvL39D-vMqsCx3Rop2dCYyy1zJRYwzZZJWq37yuhBb--8TTq5Kr8kNEgh25zH_tUqAqs2miK0hMc6oWWzyDwsrDX_8WDl0yZ6gl9VgOamcuSuavnuWF8GrMfA3Fzkg-SWZ7Mr2v1w1JE06Dyh35LlD4u2fIKupswG_PhNpV4iDTb20iOMH9gLmPHCjqigh183_w0Aartv-QKoNkGYA_v8y2BvUbqAA4Etm7UVyWn8T2YeEEexbv-cN1-ZcGDnFR1shfwTGTYlrYBgBM8OV-RSac1HDd0lZ3UV8.Z77GkgrPbncUZxyGiCWIbQ", "opbs": "07f6d26c-c6ad-4ad1-864a-152f1b681404", "response_type": "code", "session_id": "0d891a3e-851d-4126-807a-4b3f37e90da3", "client_id": "7c4b6e3a-e650-485d-9518-3f2dbeb14e10", "response_mode": "form_post.jwt", "sid": "3575e840-3f78-4cbd-9e28-96b64e097282", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3db2214e-e9f0-4e22-812e-b6a17af272e1", "old_session_id": "6aa24a7c-281a-4519-9289-3b782c54d039" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:31" }, { "isJwt": false, "opbrowserState": "b3c84390-1ce3-4fd3-ba5b-9ce485387b9c", "deletable": true, "dn": "jansId=4a7971af-19f8-4f2e-b0b9-de0f025c57fc,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:30", "creationDate": "2022-11-24T09:20:29", "ttl": 0, "sessionState": "6f09914166c982a558c99cf75d9e103fd3d3845e5cdeae734eaf82a6f96ab16e.8b11621d-3939-4657-ad99-d1f48664827d", "lastUsedAt": "2022-11-24T09:20:30", "permissionGrantedMap": { "permissionGranted": { "ec9a1a21-4317-4325-a09f-ae21ba7f143b": true } }, "outsideSid": "b117c916-dcd4-42b5-82db-5da86d8ebeba", "id": "4a7971af-19f8-4f2e-b0b9-de0f025c57fc", "state": "authenticated", "sessionAttributes": { "opbs": "b3c84390-1ce3-4fd3-ba5b-9ce485387b9c", "response_type": "token id_token", "session_id": "4a7971af-19f8-4f2e-b0b9-de0f025c57fc", "nonce": "d295edfe-e010-4bef-91e6-23a5fff936c0", "client_id": "ec9a1a21-4317-4325-a09f-ae21ba7f143b", "sid": "b117c916-dcd4-42b5-82db-5da86d8ebeba", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "bf6f041e-8066-4a1b-9cde-a2edb7260bc0", "old_session_id": "ac022a76-8048-4bc5-9f92-673c14f315ff" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:29" }, { "isJwt": false, "deletable": true, "dn": "jansId=3f34d2f0-acb5-4af0-a5fd-78334cdb09fe,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:29", "creationDate": "2022-11-24T09:20:28", "ttl": 0, "sessionState": "59bc61eb248b692203737db23bb3fc6132e49e71817333648029bd54bd033d91.33709019-00a1-497d-8e37-af95737ca203", "lastUsedAt": "2022-11-24T09:20:29", "permissionGrantedMap": { "permissionGranted": { "439381df-9e54-4ad3-ac6c-df8e1f189f72": true } }, "outsideSid": "4048978c-4efd-4e0f-b1e7-2497c29b8c3d", "id": "3f34d2f0-acb5-4af0-a5fd-78334cdb09fe", "state": "authenticated", "sessionAttributes": { "attemps": "0", "last_attempt": "1669281629700" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:28" }, { "isJwt": false, "opbrowserState": "a17170b5-05b2-4ca8-baa0-6740c856876f", "deletable": true, "dn": "jansId=9a7d9a7b-2e9e-4baa-af06-0fbe16edb63c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:29", "creationDate": "2022-11-24T09:20:28", "ttl": 0, "sessionState": "da1267396324d5ada88fc4c804a2f2dac7978489f1d3a24bbdb2476ba3ec4508.20cda2b5-82de-43f8-a924-4071932bef4c", "lastUsedAt": "2022-11-24T09:20:29", "permissionGrantedMap": { "permissionGranted": { "be810cc9-181a-4df6-82ad-4740ac668d08": true } }, "outsideSid": "e7e38a60-6a38-4832-8ff7-df8f88c84c65", "id": "9a7d9a7b-2e9e-4baa-af06-0fbe16edb63c", "state": "authenticated", "sessionAttributes": { "opbs": "a17170b5-05b2-4ca8-baa0-6740c856876f", "response_type": "token id_token", "session_id": "9a7d9a7b-2e9e-4baa-af06-0fbe16edb63c", "nonce": "a9f99be3-7a57-4bdc-a713-1b8f5a989387", "client_id": "be810cc9-181a-4df6-82ad-4740ac668d08", "sid": "e7e38a60-6a38-4832-8ff7-df8f88c84c65", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7fcb0045-b153-4867-a497-6ea38210df6c", "old_session_id": "af53db85-b090-427d-89ea-a4026850e10a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:28" }, { "isJwt": false, "opbrowserState": "9ab36f36-1788-48bb-aa41-22205c758f33", "deletable": true, "dn": "jansId=b9cede51-38a0-4a6c-aca4-9f142432b631,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:27", "creationDate": "2022-11-24T09:20:27", "ttl": 0, "sessionState": "eaabedd64856346677c866ce8b92206119045281ae41fd694bad15c11c49a746.c6080088-ad81-4f63-b313-2b10954935af", "lastUsedAt": "2022-11-24T09:20:27", "permissionGrantedMap": { "permissionGranted": { "a76721da-704f-45f6-9ba8-3eac000a3fe2": true } }, "outsideSid": "17c2f5a8-d951-40ad-a685-f1f317d8bea7", "id": "b9cede51-38a0-4a6c-aca4-9f142432b631", "state": "authenticated", "sessionAttributes": { "opbs": "9ab36f36-1788-48bb-aa41-22205c758f33", "response_type": "token id_token", "session_id": "b9cede51-38a0-4a6c-aca4-9f142432b631", "nonce": "aeafb7ab-f984-4cfc-b497-7b4ad7a7d054", "client_id": "a76721da-704f-45f6-9ba8-3eac000a3fe2", "sid": "17c2f5a8-d951-40ad-a685-f1f317d8bea7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "50f81384-7fdd-4dd3-83cd-b772fef91b86", "old_session_id": "e22bafa7-ca68-463b-bcd7-a9dce088b55c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:27" }, { "isJwt": false, "opbrowserState": "b58ff054-60e0-452a-bd52-999d43f52f40", "deletable": true, "dn": "jansId=7e9165de-a107-405f-9bd8-bb6dc1dab266,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:25", "creationDate": "2022-11-24T09:20:24", "ttl": 0, "sessionState": "1b82f7703c442b6f480973c0adb8959474927183a6d4c88b08739483d7f9de8a.82670476-2ef0-4fda-bf0f-9fbd12c3948d", "lastUsedAt": "2022-11-24T09:20:25", "permissionGrantedMap": { "permissionGranted": { "bf5f3a29-29ac-41b6-8b93-2e8e4a8cbe2b": true } }, "outsideSid": "cc241ca0-ebed-4b0a-ad8f-853d33c713e7", "id": "7e9165de-a107-405f-9bd8-bb6dc1dab266", "state": "authenticated", "sessionAttributes": { "opbs": "b58ff054-60e0-452a-bd52-999d43f52f40", "response_type": "token id_token", "session_id": "7e9165de-a107-405f-9bd8-bb6dc1dab266", "nonce": "c2168154-a5c8-4d62-9a40-f298543a9ef8", "client_id": "bf5f3a29-29ac-41b6-8b93-2e8e4a8cbe2b", "sid": "cc241ca0-ebed-4b0a-ad8f-853d33c713e7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4d6caad0-560a-49c0-8d14-114c9aea2157", "old_session_id": "0fc1a603-0e19-4684-9b25-dd760e958af1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:24" }, { "isJwt": false, "opbrowserState": "dee7ced8-c48f-4760-8535-1f0ed7a88186", "deletable": true, "dn": "jansId=16fccc3f-61a7-4a2c-8aa3-67627d67bb04,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:24", "creationDate": "2022-11-24T09:20:23", "ttl": 0, "sessionState": "3591aaee4078154a6f9387d872c67a8b943f355fc54c7e2fed41465d07bc63be.dc19d205-5a57-4acc-8db0-ebc86b016251", "lastUsedAt": "2022-11-24T09:20:24", "permissionGrantedMap": { "permissionGranted": { "3566101c-bc41-4376-9dd0-82f53f265e83": true } }, "outsideSid": "deebec0c-0cf6-4f7a-abdd-0b682bb821b5", "id": "16fccc3f-61a7-4a2c-8aa3-67627d67bb04", "state": "authenticated", "sessionAttributes": { "opbs": "dee7ced8-c48f-4760-8535-1f0ed7a88186", "response_type": "token id_token", "session_id": "16fccc3f-61a7-4a2c-8aa3-67627d67bb04", "nonce": "584e4e61-9e25-43fc-a605-fa5adede1569", "client_id": "3566101c-bc41-4376-9dd0-82f53f265e83", "sid": "deebec0c-0cf6-4f7a-abdd-0b682bb821b5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "52ef9f8d-7775-41f1-8f4b-274ce1bfc4da", "old_session_id": "bedbbc43-e345-444d-a3a0-3ac145c3a210" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:23" }, { "isJwt": false, "opbrowserState": "e9dbb0ad-6265-4fc5-8c8b-db127056fb55", "deletable": true, "dn": "jansId=3a53f5c8-70da-43b6-9b62-6cdfe2ea8eb6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:23", "creationDate": "2022-11-24T09:20:22", "ttl": 0, "sessionState": "ee38ccf156a43ab2248e47cc75d114cb8793535022e9c88bf13f60f2b37b2a21.d22a8e47-853e-421e-9dfc-f5b37b506f43", "lastUsedAt": "2022-11-24T09:20:23", "permissionGrantedMap": { "permissionGranted": { "bacd0698-e8ec-4881-9aec-40de84a30809": true } }, "outsideSid": "ef364e10-7908-47c8-b0fe-32911ada9bcf", "id": "3a53f5c8-70da-43b6-9b62-6cdfe2ea8eb6", "state": "authenticated", "sessionAttributes": { "opbs": "e9dbb0ad-6265-4fc5-8c8b-db127056fb55", "response_type": "token id_token", "session_id": "3a53f5c8-70da-43b6-9b62-6cdfe2ea8eb6", "nonce": "f45649dd-98a9-4eb8-870e-935fd0f085de", "client_id": "bacd0698-e8ec-4881-9aec-40de84a30809", "sid": "ef364e10-7908-47c8-b0fe-32911ada9bcf", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6f9be409-53fe-4a81-928f-c8909e1ab74b", "old_session_id": "e279cf8a-7407-493e-8a4d-cf569a92991d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:22" }, { "isJwt": false, "opbrowserState": "25e64367-1e36-485b-a17b-ebe239649c5d", "deletable": true, "dn": "jansId=50030a8b-60f0-4a7d-a5b8-491064272082,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:22", "creationDate": "2022-11-24T09:20:22", "ttl": 0, "sessionState": "7d164f3bfc205d57af418a00546afc7cd2b0b1fcd95e10b4a10d7a982a7eb1d5.4f083a2f-297b-49ed-8124-9be30d2d196d", "lastUsedAt": "2022-11-24T09:20:22", "permissionGrantedMap": { "permissionGranted": { "00afb97d-ba1d-49f6-9edf-7213d3c345fe": true } }, "outsideSid": "9798c79d-d1fa-440e-83c2-fc4ab3e4fbba", "id": "50030a8b-60f0-4a7d-a5b8-491064272082", "state": "authenticated", "sessionAttributes": { "opbs": "25e64367-1e36-485b-a17b-ebe239649c5d", "response_type": "token id_token", "session_id": "50030a8b-60f0-4a7d-a5b8-491064272082", "nonce": "57a110d8-9c6d-42d8-b342-fa54f3db2d97", "client_id": "00afb97d-ba1d-49f6-9edf-7213d3c345fe", "sid": "9798c79d-d1fa-440e-83c2-fc4ab3e4fbba", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "35ef1c08-5ec8-489d-96c2-ac556cf157f1", "old_session_id": "085aea04-99cb-4b64-89cb-f467e2470ace" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:22" }, { "isJwt": false, "opbrowserState": "38bc73ed-2710-4ce4-a3b3-f8809d66cb4b", "deletable": true, "dn": "jansId=82f16784-06e0-411f-b0cb-960c534ff406,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:21", "creationDate": "2022-11-24T09:20:21", "ttl": 0, "sessionState": "7b2b7b32f3e8d558bfbc2748e77b659d46851bc42a453ab70d796a4867a277d4.3e0c138f-7a7f-4671-9746-3f0b12ba6e36", "lastUsedAt": "2022-11-24T09:20:21", "permissionGrantedMap": { "permissionGranted": { "af7233fd-2688-4be3-821a-9ca850250d4c": true } }, "outsideSid": "967523b0-9161-4858-824a-07fa42ae8b63", "id": "82f16784-06e0-411f-b0cb-960c534ff406", "state": "authenticated", "sessionAttributes": { "opbs": "38bc73ed-2710-4ce4-a3b3-f8809d66cb4b", "response_type": "token id_token", "session_id": "82f16784-06e0-411f-b0cb-960c534ff406", "nonce": "8cf47e88-913f-4e4c-9bf3-dd33d1ec872a", "client_id": "af7233fd-2688-4be3-821a-9ca850250d4c", "sid": "967523b0-9161-4858-824a-07fa42ae8b63", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "43200647-69bd-44a8-ace1-c0071a00cede", "old_session_id": "18e55002-a984-4981-a80e-b712ff6e7614" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:21" }, { "isJwt": false, "opbrowserState": "b19a3f1a-2e74-4921-b29e-a870dabf7426", "deletable": true, "dn": "jansId=380b6a3b-94ff-4e2a-bd33-e0e849f75eae,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:19", "creationDate": "2022-11-24T09:20:18", "ttl": 0, "sessionState": "f1b67ff297f664fe479bdc0563628378e11763749b8396d9f016225666483033.b4f7e0e8-bca3-4d56-93e1-fa29b516a3d1", "lastUsedAt": "2022-11-24T09:20:19", "permissionGrantedMap": { "permissionGranted": { "3a3ff304-db0c-4e12-816d-cee59bee4510": true } }, "outsideSid": "bff2e396-cf49-45a4-8353-018c280e2bf5", "id": "380b6a3b-94ff-4e2a-bd33-e0e849f75eae", "state": "authenticated", "sessionAttributes": { "opbs": "b19a3f1a-2e74-4921-b29e-a870dabf7426", "response_type": "token id_token", "session_id": "380b6a3b-94ff-4e2a-bd33-e0e849f75eae", "nonce": "0edc1166-b04b-4ef5-a224-202c6a97cfd7", "client_id": "3a3ff304-db0c-4e12-816d-cee59bee4510", "sid": "bff2e396-cf49-45a4-8353-018c280e2bf5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4c51171b-8afa-46ea-8aab-a8a14560833f", "old_session_id": "46668adf-8588-40d2-b355-2a7be3ecbd35" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:18" }, { "isJwt": false, "opbrowserState": "0be422ad-68a0-4610-9a11-8fe0fb86678c", "deletable": true, "dn": "jansId=5a3cefd8-b610-45d9-a89c-e1b9dd5776f5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:18", "creationDate": "2022-11-24T09:20:17", "ttl": 0, "sessionState": "7d707b98b98d3173455a9e49ebd6666a545bb04126cc5b8da3c0cf918343a0ab.7c042ee7-4407-48aa-a97f-68057d849c50", "lastUsedAt": "2022-11-24T09:20:18", "permissionGrantedMap": { "permissionGranted": { "0cf619a4-0d4c-49b8-aef1-82229087b591": true } }, "outsideSid": "c7541347-816d-485a-9360-b7d84aa49f60", "id": "5a3cefd8-b610-45d9-a89c-e1b9dd5776f5", "state": "authenticated", "sessionAttributes": { "opbs": "0be422ad-68a0-4610-9a11-8fe0fb86678c", "response_type": "token id_token", "session_id": "5a3cefd8-b610-45d9-a89c-e1b9dd5776f5", "nonce": "5d86991a-716d-4806-a718-49041cb749e0", "client_id": "0cf619a4-0d4c-49b8-aef1-82229087b591", "sid": "c7541347-816d-485a-9360-b7d84aa49f60", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5617ff78-ba18-400e-a3ae-44ff255f124c", "old_session_id": "530b762b-d477-487d-9f1f-338fa80ea48d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:17" }, { "isJwt": false, "opbrowserState": "5e3e4fc0-65b4-48d7-afce-276e65125c43", "deletable": true, "dn": "jansId=8cd7a539-d6c0-40e5-97aa-a6775ef7eaa2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:16", "creationDate": "2022-11-24T09:20:16", "ttl": 0, "sessionState": "d081ec96176693bad1afd5af7cef6bbb2cf2bad3d5cd394d786d6cf2bf273124.b83a4b4e-2d97-4c4d-b228-166816d4e0d5", "lastUsedAt": "2022-11-24T09:20:16", "permissionGrantedMap": { "permissionGranted": { "f4f3c8fc-c298-484a-bdef-52037316894c": true } }, "outsideSid": "ab657093-9ed3-4b18-9f67-d9d827b71a44", "id": "8cd7a539-d6c0-40e5-97aa-a6775ef7eaa2", "state": "authenticated", "sessionAttributes": { "opbs": "5e3e4fc0-65b4-48d7-afce-276e65125c43", "response_type": "token id_token", "session_id": "8cd7a539-d6c0-40e5-97aa-a6775ef7eaa2", "nonce": "ed6a8b1d-a58a-4f88-99ec-b630c41c4829", "client_id": "f4f3c8fc-c298-484a-bdef-52037316894c", "sid": "ab657093-9ed3-4b18-9f67-d9d827b71a44", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "70d46fe4-4909-4b40-b520-7fae8b77b417", "old_session_id": "4ab92b49-552d-45f0-8d22-b76435aad62d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:16" }, { "isJwt": false, "opbrowserState": "a4db3eb9-2b18-40e5-b1df-057c59e25569", "deletable": true, "dn": "jansId=9c6657ba-a2ae-41f1-af09-a70346cff752,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:15", "creationDate": "2022-11-24T09:20:15", "ttl": 0, "sessionState": "5ddd9eff7d4af1ba0b30b337a2e1adfb7ecf388cf50c31f3d1c48c20aa7e50ce.6c492e46-e75d-440f-b1d3-fa8bcda41b69", "lastUsedAt": "2022-11-24T09:20:15", "permissionGrantedMap": { "permissionGranted": { "3d962c18-67bd-4153-be94-21c001f779b2": true } }, "outsideSid": "dd674625-bfc9-4781-a46b-7c386dd513af", "id": "9c6657ba-a2ae-41f1-af09-a70346cff752", "state": "authenticated", "sessionAttributes": { "opbs": "a4db3eb9-2b18-40e5-b1df-057c59e25569", "response_type": "token id_token", "session_id": "9c6657ba-a2ae-41f1-af09-a70346cff752", "nonce": "e3daf0fe-ea0f-4120-be3d-bc9b8352a28f", "client_id": "3d962c18-67bd-4153-be94-21c001f779b2", "sid": "dd674625-bfc9-4781-a46b-7c386dd513af", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "374c69bd-1dae-4873-a0dd-ea711d85f3cc", "old_session_id": "e036658a-082b-4788-894a-d0fd9b8345ed" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:15" }, { "isJwt": false, "opbrowserState": "4811c0e3-c095-444d-81e4-d2be45bf7321", "deletable": true, "dn": "jansId=6fe0abee-2b74-41c1-b7ba-3742ee843acc,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:15", "creationDate": "2022-11-24T09:20:14", "ttl": 0, "sessionState": "338715b53392e3973133d29525801f8f5099ff4328cad34244aa8e6933067635.7018f942-92da-4b42-b60c-adc16d3eb532", "lastUsedAt": "2022-11-24T09:20:15", "permissionGrantedMap": { "permissionGranted": { "ee6c33d0-97ed-4cf7-8a76-f29a68f11fef": true } }, "outsideSid": "0b4a558a-2973-4a1e-a4fe-0e41800dcc85", "id": "6fe0abee-2b74-41c1-b7ba-3742ee843acc", "state": "authenticated", "sessionAttributes": { "opbs": "4811c0e3-c095-444d-81e4-d2be45bf7321", "response_type": "code", "session_id": "6fe0abee-2b74-41c1-b7ba-3742ee843acc", "client_id": "ee6c33d0-97ed-4cf7-8a76-f29a68f11fef", "sid": "0b4a558a-2973-4a1e-a4fe-0e41800dcc85", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5705afda-8b92-4cc2-a315-671310b38b43", "old_session_id": "f6f2a46c-af22-4ab3-960d-abf5708a3591" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:14" }, { "isJwt": false, "opbrowserState": "4a991f48-6c8e-4654-9ba7-44d6ed2a48e6", "deletable": true, "dn": "jansId=43fb9f27-11de-4feb-b13c-bf5a9a70df97,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:14", "creationDate": "2022-11-24T09:20:14", "ttl": 0, "sessionState": "df244dc7310715700621ca15ae4043cb06215fad5c2bf5de3711763931e2a537.7b04e91d-c548-4188-8b5d-af540e99300b", "lastUsedAt": "2022-11-24T09:20:14", "permissionGrantedMap": { "permissionGranted": { "97a38140-bfa4-4630-b156-2cd9e6c3a230": true } }, "outsideSid": "d15b21d2-ed33-4a88-a983-ede9c6c49293", "id": "43fb9f27-11de-4feb-b13c-bf5a9a70df97", "state": "authenticated", "sessionAttributes": { "opbs": "4a991f48-6c8e-4654-9ba7-44d6ed2a48e6", "response_type": "token id_token", "session_id": "43fb9f27-11de-4feb-b13c-bf5a9a70df97", "nonce": "f3a36426-4f5b-4476-8750-6a027fd43874", "client_id": "97a38140-bfa4-4630-b156-2cd9e6c3a230", "sid": "d15b21d2-ed33-4a88-a983-ede9c6c49293", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "35246f56-3a15-4220-aa74-4f0f572247c3", "old_session_id": "9aa52e2a-df94-4726-992a-ac89c7186f8b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:14" }, { "isJwt": false, "opbrowserState": "886e4c7c-1777-4a13-8ae9-0374d6745ff1", "deletable": true, "dn": "jansId=3616956e-fb35-4e56-9a73-8dd6def64e6c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:14", "creationDate": "2022-11-24T09:20:13", "ttl": 0, "sessionState": "8791d0508a3c6c3eeee3891010220ecc59244687775933868c62a3dad8e1e9ca.3c2f84ec-b398-4a77-bcdd-7a7cf4702dc1", "lastUsedAt": "2022-11-24T09:20:14", "permissionGrantedMap": { "permissionGranted": { "f17b03a5-a53c-4be0-bac2-4a35a35d7269": true } }, "outsideSid": "2118bc48-d07c-4956-afb0-80cd4e9c3222", "id": "3616956e-fb35-4e56-9a73-8dd6def64e6c", "state": "authenticated", "sessionAttributes": { "opbs": "886e4c7c-1777-4a13-8ae9-0374d6745ff1", "response_type": "code", "session_id": "3616956e-fb35-4e56-9a73-8dd6def64e6c", "client_id": "f17b03a5-a53c-4be0-bac2-4a35a35d7269", "sid": "2118bc48-d07c-4956-afb0-80cd4e9c3222", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3aa3ecb9-a3d7-4194-b372-70901bae2cdb", "old_session_id": "e238508e-247f-45a6-9169-2f54f5bc206d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:13" }, { "isJwt": false, "opbrowserState": "d3ffce65-c321-483d-a66c-321f539d6ec9", "deletable": true, "dn": "jansId=1d3b4493-2d3d-4d7b-bad2-8ee4ed425954,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:12", "creationDate": "2022-11-24T09:20:11", "ttl": 0, "sessionState": "de7f33afc65a69032ceec4e4b6052f4758afe52c295084002721996070356de5.d7c6ab8a-b96c-42e8-aa90-4786d7efb344", "lastUsedAt": "2022-11-24T09:20:12", "permissionGrantedMap": { "permissionGranted": { "4ff0a4e2-526e-49c6-b76a-4c5dd018a453": true } }, "outsideSid": "8c41ec4d-83e6-4849-a7f9-e2856a666450", "id": "1d3b4493-2d3d-4d7b-bad2-8ee4ed425954", "state": "authenticated", "sessionAttributes": { "opbs": "d3ffce65-c321-483d-a66c-321f539d6ec9", "response_type": "code", "session_id": "1d3b4493-2d3d-4d7b-bad2-8ee4ed425954", "client_id": "4ff0a4e2-526e-49c6-b76a-4c5dd018a453", "sid": "8c41ec4d-83e6-4849-a7f9-e2856a666450", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "65372538-3048-4649-9731-7c51d9162241", "old_session_id": "2178bad4-9119-4549-b735-fb582e52d160" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:11" }, { "isJwt": false, "opbrowserState": "83008988-116e-44c6-bf50-68b26174806a", "deletable": true, "dn": "jansId=8c7cce20-ee0b-4156-91b4-99af9b9a0790,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:10", "creationDate": "2022-11-24T09:20:10", "ttl": 0, "sessionState": "61170093edaac1cd48e7e8b2c5950d82dc4d8ae86cd2d12e8a211cff3c6059fd.cea111e9-1ae4-458a-b577-15d3703afb83", "lastUsedAt": "2022-11-24T09:20:10", "permissionGrantedMap": { "permissionGranted": { "bcabb1e1-176b-4ca1-952e-fbbc0af952ba": true } }, "outsideSid": "a412c185-ae39-4ef2-9a77-160cc148377f", "id": "8c7cce20-ee0b-4156-91b4-99af9b9a0790", "state": "authenticated", "sessionAttributes": { "opbs": "83008988-116e-44c6-bf50-68b26174806a", "response_type": "code", "session_id": "8c7cce20-ee0b-4156-91b4-99af9b9a0790", "client_id": "bcabb1e1-176b-4ca1-952e-fbbc0af952ba", "sid": "a412c185-ae39-4ef2-9a77-160cc148377f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b3518892-dafe-4746-9383-5bcaee2b35f0", "old_session_id": "5c91459f-538d-43fd-bdfe-04196929ad52" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:10" }, { "isJwt": false, "opbrowserState": "8a244946-b992-44f3-b4ce-84126bb14369", "deletable": true, "dn": "jansId=8f05d6db-ce28-49a8-aa3e-5c6bd7fc69e3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:09", "creationDate": "2022-11-24T09:20:08", "ttl": 0, "sessionState": "64f5ab8307041322ff87bfc88e34c9c6d8411582643c07f6e86a4370593b75e1.19154390-5d64-470e-bb97-e645f927876e", "lastUsedAt": "2022-11-24T09:20:09", "permissionGrantedMap": { "permissionGranted": { "105ab948-9d92-4e4c-ae3f-b0ff8308b332": true } }, "outsideSid": "3a76cba1-7863-4bf9-92fa-f993dc483a45", "id": "8f05d6db-ce28-49a8-aa3e-5c6bd7fc69e3", "state": "authenticated", "sessionAttributes": { "opbs": "8a244946-b992-44f3-b4ce-84126bb14369", "response_type": "code", "session_id": "8f05d6db-ce28-49a8-aa3e-5c6bd7fc69e3", "client_id": "105ab948-9d92-4e4c-ae3f-b0ff8308b332", "sid": "3a76cba1-7863-4bf9-92fa-f993dc483a45", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9c1b039b-edc6-48bc-a54e-18fd506b2538", "old_session_id": "71cb5530-d83d-4604-a69c-ecd259b64cb7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:08" }, { "isJwt": false, "opbrowserState": "f0aa6ef7-86e4-4d2c-8cc8-fbc94e2f04f5", "deletable": true, "dn": "jansId=b10008c9-7449-4050-b775-a38dd8c7c943,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:07", "creationDate": "2022-11-24T09:20:06", "ttl": 0, "sessionState": "6dfce10541a3123011658479b8a7b63be3fce932be8536be31792e847aa133d0.ed694746-b24c-4591-b41d-0ddfd22d9a1d", "lastUsedAt": "2022-11-24T09:20:07", "permissionGrantedMap": { "permissionGranted": { "dda2a428-34ce-49c5-afd9-aa51f3790b98": true } }, "outsideSid": "e612c3aa-f506-4b97-b97f-26f489699c59", "id": "b10008c9-7449-4050-b775-a38dd8c7c943", "state": "authenticated", "sessionAttributes": { "opbs": "f0aa6ef7-86e4-4d2c-8cc8-fbc94e2f04f5", "response_type": "code", "session_id": "b10008c9-7449-4050-b775-a38dd8c7c943", "client_id": "dda2a428-34ce-49c5-afd9-aa51f3790b98", "sid": "e612c3aa-f506-4b97-b97f-26f489699c59", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f94b3e65-1d82-4d11-a527-631a956f29ba", "old_session_id": "8c1254bb-92de-4c07-8451-ab9678f154ad" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:06" }, { "isJwt": false, "opbrowserState": "7af34f7a-6812-432e-bec9-4f67e05b1b07", "deletable": true, "dn": "jansId=29adf8df-694b-48fc-ad6c-b92b43013f1d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:05", "creationDate": "2022-11-24T09:20:04", "ttl": 0, "sessionState": "bbb4860693300b395e9e4e4f0a2862181e4f5a7e1a2fb9cb1779984497a45338.7c4e7db1-2b63-423f-9124-7e49dad39139", "lastUsedAt": "2022-11-24T09:20:05", "permissionGrantedMap": { "permissionGranted": { "6ee00d96-fef4-4a26-bf37-7582c051dfcc": true } }, "outsideSid": "89a42b6e-bf91-4330-a2e4-13284a014509", "id": "29adf8df-694b-48fc-ad6c-b92b43013f1d", "state": "authenticated", "sessionAttributes": { "opbs": "7af34f7a-6812-432e-bec9-4f67e05b1b07", "response_type": "code", "session_id": "29adf8df-694b-48fc-ad6c-b92b43013f1d", "client_id": "6ee00d96-fef4-4a26-bf37-7582c051dfcc", "sid": "89a42b6e-bf91-4330-a2e4-13284a014509", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "21e5d60e-6f4f-4f3a-bbe4-1bf489b360cc", "old_session_id": "74c64ae7-f198-444e-bc36-b4918f5f1560" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:04" }, { "isJwt": false, "opbrowserState": "f55c4916-b835-442f-8be8-0f0b42b9cdba", "deletable": true, "dn": "jansId=6bd7edcf-78fa-4562-b1b3-bd4a2a401c1d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:03", "creationDate": "2022-11-24T09:20:02", "ttl": 0, "sessionState": "b99933517c9a24405f70abb75324f9d15aca2563dc6f715ce58cee1e7224a7b5.e25451ed-3efb-4e1c-b81c-222db3168a47", "lastUsedAt": "2022-11-24T09:20:03", "permissionGrantedMap": { "permissionGranted": { "eec965ac-dc39-43e5-baa6-db5104ca5d3d": true } }, "outsideSid": "5979e5a6-d20a-483b-a9f0-34fe3ed73103", "id": "6bd7edcf-78fa-4562-b1b3-bd4a2a401c1d", "state": "authenticated", "sessionAttributes": { "opbs": "f55c4916-b835-442f-8be8-0f0b42b9cdba", "response_type": "code", "session_id": "6bd7edcf-78fa-4562-b1b3-bd4a2a401c1d", "client_id": "eec965ac-dc39-43e5-baa6-db5104ca5d3d", "sid": "5979e5a6-d20a-483b-a9f0-34fe3ed73103", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7fe9d66b-9b1f-4521-8979-3a722ed89eeb", "old_session_id": "b059013e-3760-481f-96c5-fa23aebb5f9f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:02" }, { "isJwt": false, "opbrowserState": "e4153f3d-55b3-4db0-9911-fcb8f0d1732a", "deletable": true, "dn": "jansId=9573810e-0242-44ba-9f42-40b30e71f113,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:01", "creationDate": "2022-11-24T09:20:00", "ttl": 0, "sessionState": "20f7c565ef61c08db0dfe143437c9275d35ba5a4982a456ddf0dcea3604ad51c.53eac9d6-a051-488a-bf3c-71a9ae37cdb5", "lastUsedAt": "2022-11-24T09:20:01", "permissionGrantedMap": { "permissionGranted": { "48fcadc8-c882-4a25-99ac-da66789463ca": true } }, "outsideSid": "9bf7c554-bb26-4d32-b58b-6b30b9366ef8", "id": "9573810e-0242-44ba-9f42-40b30e71f113", "state": "authenticated", "sessionAttributes": { "opbs": "e4153f3d-55b3-4db0-9911-fcb8f0d1732a", "response_type": "code", "session_id": "9573810e-0242-44ba-9f42-40b30e71f113", "client_id": "48fcadc8-c882-4a25-99ac-da66789463ca", "sid": "9bf7c554-bb26-4d32-b58b-6b30b9366ef8", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a8a72660-e96f-4e30-8956-2b599a813d35", "old_session_id": "bd8d2c78-4722-477f-840f-08d0fa10a232" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:00" }, { "isJwt": false, "opbrowserState": "11a2a1cb-7b1c-4754-9143-e8610fa730db", "deletable": true, "dn": "jansId=2347ff95-7a3d-4ff6-be59-446b5e519191,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:00", "creationDate": "2022-11-24T09:20:00", "ttl": 0, "sessionState": "adf2f42e757b7be63b028efa3ec3c05fe9c1436a412a063027e51daf531d81cc.21ba477c-f921-4d08-a9a8-5288cb1a1762", "lastUsedAt": "2022-11-24T09:20:00", "permissionGrantedMap": { "permissionGranted": { "2a83c363-fe73-468f-b6b8-e2c96fa62ba4": true } }, "outsideSid": "15b2a8ce-5399-458a-9f48-8ee67dc39230", "id": "2347ff95-7a3d-4ff6-be59-446b5e519191", "state": "authenticated", "sessionAttributes": { "opbs": "11a2a1cb-7b1c-4754-9143-e8610fa730db", "response_type": "token id_token", "session_id": "2347ff95-7a3d-4ff6-be59-446b5e519191", "nonce": "ebe2baea-db0c-4aa4-aa7c-cbe4c8395982", "client_id": "2a83c363-fe73-468f-b6b8-e2c96fa62ba4", "sid": "15b2a8ce-5399-458a-9f48-8ee67dc39230", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a541e1d1-7b75-4ba2-afac-7f3419046e97", "old_session_id": "b5301ed4-6ebb-4243-9698-ddc8eb17159c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:20:00" }, { "isJwt": false, "opbrowserState": "a34c4b94-1d5c-4696-8202-93606f8a4a7d", "deletable": true, "dn": "jansId=b46d2aba-5047-4eab-b855-f2f3aa0f42ac,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:20:00", "creationDate": "2022-11-24T09:19:59", "ttl": 0, "sessionState": "81274e6b1b9918e0609de6f3351923bf5e8165d0d40821964e4dca26b0654f4f.569f6afd-4574-4120-b552-ed0f3cb247e6", "lastUsedAt": "2022-11-24T09:20:00", "permissionGrantedMap": { "permissionGranted": { "f3fb460f-70ba-42a1-98c3-ad0ee1190d0d": true } }, "outsideSid": "99046f10-390f-4ee7-8473-61e4eb4ac3f7", "id": "b46d2aba-5047-4eab-b855-f2f3aa0f42ac", "state": "authenticated", "sessionAttributes": { "opbs": "a34c4b94-1d5c-4696-8202-93606f8a4a7d", "response_type": "token id_token", "session_id": "b46d2aba-5047-4eab-b855-f2f3aa0f42ac", "nonce": "2261e186-70b1-4073-9cbe-45d60b8b5570", "client_id": "f3fb460f-70ba-42a1-98c3-ad0ee1190d0d", "sid": "99046f10-390f-4ee7-8473-61e4eb4ac3f7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9b1481dd-11e6-44f9-aada-c71edc7b8c91", "old_session_id": "b1fdf7da-cfb6-466a-b185-5681460dd964" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:59" }, { "isJwt": false, "opbrowserState": "8ac7730c-a16b-4bad-a01f-99f3d73c846d", "deletable": true, "dn": "jansId=27a84d6c-efa1-40ae-877a-f8dd067215b8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:59", "creationDate": "2022-11-24T09:19:59", "ttl": 0, "sessionState": "00598611077afd45a49b6666d41936e84364de0a28893473192bb569dd172f81.4e691efe-e2c1-4cf9-82f8-db5f6da592d9", "lastUsedAt": "2022-11-24T09:19:59", "permissionGrantedMap": { "permissionGranted": { "1e110dc3-414e-4443-9bc3-27a6d19c6716": true } }, "outsideSid": "2edcc847-26f3-4126-8af6-c0e3775d117b", "id": "27a84d6c-efa1-40ae-877a-f8dd067215b8", "state": "authenticated", "sessionAttributes": { "opbs": "8ac7730c-a16b-4bad-a01f-99f3d73c846d", "response_type": "code", "session_id": "27a84d6c-efa1-40ae-877a-f8dd067215b8", "client_id": "1e110dc3-414e-4443-9bc3-27a6d19c6716", "sid": "2edcc847-26f3-4126-8af6-c0e3775d117b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1fc0469b-9a99-4cdf-b0ed-5216767e61ce", "old_session_id": "72f786ca-6ce5-4c97-a10c-bf98930a9f74" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:59" }, { "isJwt": false, "opbrowserState": "0b50ce33-e5f5-4b29-9dae-778577d25ea7", "deletable": true, "dn": "jansId=2e921e80-afed-4169-b353-dc92843864e3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:59", "creationDate": "2022-11-24T09:19:58", "ttl": 0, "sessionState": "66162aedc25752a3841bf4abeccbb4a14bedc499f831605fa28e6898911f6ab6.90c5485c-d42d-4662-988a-2332431416a6", "lastUsedAt": "2022-11-24T09:19:59", "permissionGrantedMap": { "permissionGranted": { "0ce42114-5976-4d9d-a870-05ab228613b7": true } }, "outsideSid": "023bf29e-7413-4291-9c38-ebc8cc749304", "id": "2e921e80-afed-4169-b353-dc92843864e3", "state": "authenticated", "sessionAttributes": { "opbs": "0b50ce33-e5f5-4b29-9dae-778577d25ea7", "response_type": "token id_token", "session_id": "2e921e80-afed-4169-b353-dc92843864e3", "nonce": "3e068ed2-88fb-4cde-98d4-e85124001efe", "client_id": "0ce42114-5976-4d9d-a870-05ab228613b7", "sid": "023bf29e-7413-4291-9c38-ebc8cc749304", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8a8cc9fb-a196-4b1b-83fe-bfdb0381efc5", "old_session_id": "59c0284a-cdac-4e09-a1cb-e132c86fd135" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:58" }, { "isJwt": false, "opbrowserState": "57fe8a4a-f89b-4464-ba51-03f730a96402", "deletable": true, "dn": "jansId=0a015a35-23bb-4fbc-a095-05963fe290ed,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:59", "creationDate": "2022-11-24T09:19:58", "ttl": 0, "sessionState": "e9e780bb3b2996cd493e67a39e194ad7515bcd58a1defa6ce56dbada70fec8b9.847a6da1-6524-4d8e-a223-ad879a5b51eb", "lastUsedAt": "2022-11-24T09:19:59", "permissionGrantedMap": { "permissionGranted": { "53d8271d-b754-4a5b-8e69-7a71b91418dd": true } }, "outsideSid": "4be0fe90-d360-4b89-b097-5afaa32d5556", "id": "0a015a35-23bb-4fbc-a095-05963fe290ed", "state": "authenticated", "sessionAttributes": { "opbs": "57fe8a4a-f89b-4464-ba51-03f730a96402", "response_type": "token id_token", "session_id": "0a015a35-23bb-4fbc-a095-05963fe290ed", "nonce": "ef8ef637-b569-49a2-a65c-8f48fe0b9377", "client_id": "53d8271d-b754-4a5b-8e69-7a71b91418dd", "sid": "4be0fe90-d360-4b89-b097-5afaa32d5556", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f87e0319-558a-4055-b7b3-59f76cea1d31", "old_session_id": "cc3a4628-102f-4723-a917-d1eccc30d49a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:58" }, { "isJwt": false, "opbrowserState": "f02dad51-6d7d-4873-a253-e42b892cada6", "deletable": true, "dn": "jansId=40cfbd80-49ad-4929-aeb9-e45d6422a88f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:57", "creationDate": "2022-11-24T09:19:57", "ttl": 0, "sessionState": "492216170bb010f9ce0dc94e16e3457aa1b567f71875b89c19c8b178af8558e3.e347e012-90a7-410b-a3c8-c940e97777ab", "lastUsedAt": "2022-11-24T09:19:57", "permissionGrantedMap": { "permissionGranted": { "04559f65-c2d5-4375-b33f-9420daf2fe46": true } }, "outsideSid": "327096d0-1f56-492a-aa6c-324c1b1bf181", "id": "40cfbd80-49ad-4929-aeb9-e45d6422a88f", "state": "authenticated", "sessionAttributes": { "opbs": "f02dad51-6d7d-4873-a253-e42b892cada6", "response_type": "token id_token", "session_id": "40cfbd80-49ad-4929-aeb9-e45d6422a88f", "nonce": "799ef7ca-8c07-4bb5-bcfd-d9ae148d0b8e", "client_id": "04559f65-c2d5-4375-b33f-9420daf2fe46", "sid": "327096d0-1f56-492a-aa6c-324c1b1bf181", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3c94124b-64c4-4826-a700-2fe498ac5d95", "old_session_id": "5283c164-0fa9-4a37-9ccd-ca7cf26174e9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:57" }, { "isJwt": false, "opbrowserState": "51346a2e-f0a8-4f26-b7da-fabceb11cf6c", "deletable": true, "dn": "jansId=1da6eadd-5c21-4045-9a25-a6bd4ba73ac0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:56", "creationDate": "2022-11-24T09:19:56", "ttl": 0, "sessionState": "a44f8969054554879183176186621c84d10489c9211ade80e13bac26fde7d898.78edb31b-f039-4485-82a5-895e63686705", "lastUsedAt": "2022-11-24T09:19:56", "permissionGrantedMap": { "permissionGranted": { "afd8c548-bb57-41f2-b0e0-4364c7d80083": true } }, "outsideSid": "262693d5-54fe-4a3f-a51f-dbdf44999077", "id": "1da6eadd-5c21-4045-9a25-a6bd4ba73ac0", "state": "authenticated", "sessionAttributes": { "opbs": "51346a2e-f0a8-4f26-b7da-fabceb11cf6c", "response_type": "code", "session_id": "1da6eadd-5c21-4045-9a25-a6bd4ba73ac0", "client_id": "afd8c548-bb57-41f2-b0e0-4364c7d80083", "sid": "262693d5-54fe-4a3f-a51f-dbdf44999077", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2c31d43c-291f-40ee-b9cf-53de2580506e", "old_session_id": "af5b67d6-bc8c-4908-8574-4557589b95f4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:56" }, { "isJwt": false, "opbrowserState": "7f3b3a84-1f39-4f6d-970d-c09b1554bbdc", "deletable": true, "dn": "jansId=10597298-d80d-4b08-8163-3f29af60db7e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:56", "creationDate": "2022-11-24T09:19:56", "ttl": 0, "sessionState": "e4e36d89d5e63bab19a7b7b829b7d2cb58ff774d791f96b717300a42cba3c6d8.33d82165-abb8-4a02-a447-e3d1854f468d", "lastUsedAt": "2022-11-24T09:19:56", "permissionGrantedMap": { "permissionGranted": { "c20c92ef-1268-4e68-a578-ed03828442f6": true } }, "outsideSid": "5b5e85df-89ff-4cbe-837b-96c1823e250b", "id": "10597298-d80d-4b08-8163-3f29af60db7e", "state": "authenticated", "sessionAttributes": { "opbs": "7f3b3a84-1f39-4f6d-970d-c09b1554bbdc", "response_type": "token id_token", "session_id": "10597298-d80d-4b08-8163-3f29af60db7e", "nonce": "d7a0bcf7-58a7-4440-a115-a985d90c33af", "client_id": "c20c92ef-1268-4e68-a578-ed03828442f6", "sid": "5b5e85df-89ff-4cbe-837b-96c1823e250b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f0664f77-f72b-476a-bb61-983e98fc4d4f", "old_session_id": "c2adf220-b2ec-4096-975c-d56916bf61c9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:56" }, { "isJwt": false, "opbrowserState": "36835cda-c0b6-49ea-ab69-ee5ae127e490", "deletable": true, "dn": "jansId=2d28409e-5319-40a8-9b4c-f28cf4c8bca9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:56", "creationDate": "2022-11-24T09:19:56", "ttl": 0, "sessionState": "d86a14df16c746148f7630ddad781cb741c230c3c6923d543e4df34e2ece3fe3.509e43b9-aa01-4274-bf8f-63b9962453d6", "lastUsedAt": "2022-11-24T09:19:56", "permissionGrantedMap": { "permissionGranted": { "98642caf-653f-4c9a-9bc6-aca5058d8457": true } }, "outsideSid": "3e83e610-1fc9-4047-a58e-ce3355a85d17", "id": "2d28409e-5319-40a8-9b4c-f28cf4c8bca9", "state": "authenticated", "sessionAttributes": { "opbs": "36835cda-c0b6-49ea-ab69-ee5ae127e490", "response_type": "token id_token", "session_id": "2d28409e-5319-40a8-9b4c-f28cf4c8bca9", "nonce": "2c48b879-32ee-4b28-bace-e7eab0a295cf", "client_id": "98642caf-653f-4c9a-9bc6-aca5058d8457", "sid": "3e83e610-1fc9-4047-a58e-ce3355a85d17", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a30cb8d8-f8e7-4048-bc2c-6b81f1df45c4", "old_session_id": "348d6bed-7d94-4cdc-a339-03c7d98dd97d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:56" }, { "isJwt": false, "opbrowserState": "e9eaab9c-c739-43d7-8b18-4d90be181566", "deletable": true, "dn": "jansId=6dc9bed4-9f0e-4010-98d7-13c531edbbb3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:55", "creationDate": "2022-11-24T09:19:54", "ttl": 0, "sessionState": "9294fada8edc04f8a6094f269e79afd2a2659aee6bd65ea4b0318755cd232a9a.5ea30d10-ecee-4944-9d50-6e6f1feafeff", "lastUsedAt": "2022-11-24T09:19:55", "permissionGrantedMap": { "permissionGranted": { "50a92061-2210-478b-a7f3-d952ef5d0d12": true } }, "outsideSid": "4f499960-ee1c-488c-9796-622959e0c59a", "id": "6dc9bed4-9f0e-4010-98d7-13c531edbbb3", "state": "authenticated", "sessionAttributes": { "opbs": "e9eaab9c-c739-43d7-8b18-4d90be181566", "response_type": "code", "session_id": "6dc9bed4-9f0e-4010-98d7-13c531edbbb3", "client_id": "50a92061-2210-478b-a7f3-d952ef5d0d12", "sid": "4f499960-ee1c-488c-9796-622959e0c59a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "63ff2d26-639c-4b20-a513-60da2e8ac8d7", "old_session_id": "9bac3802-f193-4aee-8ee1-c51146c4c29c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:54" }, { "isJwt": false, "opbrowserState": "397560a8-a4ff-4c0e-ae76-a94529fbec70", "deletable": true, "dn": "jansId=a2a87895-1937-4cb5-9ddc-e7d462d57f99,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:55", "creationDate": "2022-11-24T09:19:54", "ttl": 0, "sessionState": "0c82ca9dabf63a26001fd29b73acb699c73d6ae671b81993872a901c3b2a091b.009dbe00-8987-4140-a533-83fb06fcb3d9", "lastUsedAt": "2022-11-24T09:19:55", "permissionGrantedMap": { "permissionGranted": { "4f513339-7eeb-408b-a7f2-1a6a3cdb0f12": true } }, "outsideSid": "36f8a454-cb95-4a7d-bb78-eaff75f96eb5", "id": "a2a87895-1937-4cb5-9ddc-e7d462d57f99", "state": "authenticated", "sessionAttributes": { "opbs": "397560a8-a4ff-4c0e-ae76-a94529fbec70", "response_type": "token id_token", "session_id": "a2a87895-1937-4cb5-9ddc-e7d462d57f99", "nonce": "0191a141-c504-4c2b-b288-b9046640894b", "client_id": "4f513339-7eeb-408b-a7f2-1a6a3cdb0f12", "sid": "36f8a454-cb95-4a7d-bb78-eaff75f96eb5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "90cebfa4-35f9-4d9f-8896-cad9ca7fade2", "old_session_id": "6a021b66-b4aa-4dbf-94ae-16798a7726a2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:54" }, { "isJwt": false, "opbrowserState": "4466f0f7-c598-4b33-97e6-fe248ed036ac", "deletable": true, "dn": "jansId=6fbaa20f-86d0-4a35-816f-212e9210ceb1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:53", "creationDate": "2022-11-24T09:19:53", "ttl": 0, "sessionState": "20ab7d4d8169045629e7fb71013063377f6b0dc6190ce90b6db1a94384d294e5.25edf817-21de-4304-bf7d-424186f3273f", "lastUsedAt": "2022-11-24T09:19:53", "permissionGrantedMap": { "permissionGranted": { "0ed42aa2-9165-4544-9deb-e48ec5b92f19": true } }, "outsideSid": "de5f889f-db0a-4b8c-83cc-f709140a71d7", "id": "6fbaa20f-86d0-4a35-816f-212e9210ceb1", "state": "authenticated", "sessionAttributes": { "opbs": "4466f0f7-c598-4b33-97e6-fe248ed036ac", "response_type": "token id_token", "session_id": "6fbaa20f-86d0-4a35-816f-212e9210ceb1", "nonce": "dbec2be6-ddf9-482e-b698-b9130482d8f2", "client_id": "0ed42aa2-9165-4544-9deb-e48ec5b92f19", "sid": "de5f889f-db0a-4b8c-83cc-f709140a71d7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9b356712-0452-4105-a78a-427a1feadfb0", "old_session_id": "ac591c1c-ffa8-4eb1-b0a7-0c981d4e39eb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:53" }, { "isJwt": false, "opbrowserState": "7e4a3bd3-4575-4a7d-8f90-830fb7257dc4", "deletable": true, "dn": "jansId=132ed6ec-9990-4a11-9097-c20c660c013e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:53", "creationDate": "2022-11-24T09:19:53", "ttl": 0, "sessionState": "c60887f9cca8d31cee70c3018a7a043f278654f02b204ec8e714ef696fb05188.ca338693-f15c-4f5a-a1a0-caf067b0000f", "lastUsedAt": "2022-11-24T09:19:53", "permissionGrantedMap": { "permissionGranted": { "665784b4-a5e8-4432-a25f-2de197a1bd09": true } }, "outsideSid": "4d4ae168-655e-488b-848f-2f33a8196aa9", "id": "132ed6ec-9990-4a11-9097-c20c660c013e", "state": "authenticated", "sessionAttributes": { "opbs": "7e4a3bd3-4575-4a7d-8f90-830fb7257dc4", "response_type": "token id_token", "session_id": "132ed6ec-9990-4a11-9097-c20c660c013e", "nonce": "e20f7612-427c-4edf-958e-7c7bad8df5d2", "client_id": "665784b4-a5e8-4432-a25f-2de197a1bd09", "sid": "4d4ae168-655e-488b-848f-2f33a8196aa9", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ce47a348-9db2-4ab8-99a9-df309e17ea72", "old_session_id": "cea79fce-9626-45f4-90ba-52da73beb11a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:53" }, { "isJwt": false, "opbrowserState": "26175d0e-6e2d-40ff-a00a-325c5f099b6a", "deletable": true, "dn": "jansId=8cc78a3f-c073-45d1-b20a-96d5dcc9a186,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:53", "creationDate": "2022-11-24T09:19:52", "ttl": 0, "sessionState": "4e6ceb2ed1195e954fe90597d28617a6bc1e6e8616fa6a32a228d6c3349031b5.673c9d72-4085-4517-adcc-589cbca80ddf", "lastUsedAt": "2022-11-24T09:19:53", "permissionGrantedMap": { "permissionGranted": { "0a63d2df-e506-4c44-a9ee-84b07be1b857": true } }, "outsideSid": "8095921b-aaa5-450d-aa22-d38ecbf9f95f", "id": "8cc78a3f-c073-45d1-b20a-96d5dcc9a186", "state": "authenticated", "sessionAttributes": { "opbs": "26175d0e-6e2d-40ff-a00a-325c5f099b6a", "response_type": "code", "session_id": "8cc78a3f-c073-45d1-b20a-96d5dcc9a186", "client_id": "0a63d2df-e506-4c44-a9ee-84b07be1b857", "sid": "8095921b-aaa5-450d-aa22-d38ecbf9f95f", "max_age": "30", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1e9f2681-ec23-4fb7-a7e7-89ae9b8e5205", "old_session_id": "cfe90090-ce9d-4031-8719-6d585d84dbbd" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:52" }, { "isJwt": false, "opbrowserState": "a117b4be-8610-4166-bda4-b3408a12d121", "deletable": true, "dn": "jansId=5e3abcee-b2b0-4393-a60d-60fd75dd96e7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:52", "creationDate": "2022-11-24T09:19:52", "ttl": 0, "sessionState": "6b013c3da3245bb4a1a474b83f6eecdb37bd0b4cef0071bf8e8b4cdb0c8229d4.1156c080-e16b-45f5-a792-3ad4bfda5afe", "lastUsedAt": "2022-11-24T09:19:52", "permissionGrantedMap": { "permissionGranted": { "ea973c3d-5792-4c7c-b4ab-d3dde8d3bd55": true } }, "outsideSid": "c9b01d3d-40a9-4be9-9714-4700baecc47e", "id": "5e3abcee-b2b0-4393-a60d-60fd75dd96e7", "state": "authenticated", "sessionAttributes": { "opbs": "a117b4be-8610-4166-bda4-b3408a12d121", "response_type": "token id_token", "session_id": "5e3abcee-b2b0-4393-a60d-60fd75dd96e7", "nonce": "6fd98a6a-b2e8-4edb-9434-e8bea5204b0e", "client_id": "ea973c3d-5792-4c7c-b4ab-d3dde8d3bd55", "sid": "c9b01d3d-40a9-4be9-9714-4700baecc47e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ece6edc0-56d4-4f63-bec0-99be8d78ec3c", "old_session_id": "5ca643a3-d263-4c5a-a3cf-1d51d740accc" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:52" }, { "isJwt": false, "opbrowserState": "c1830425-8096-4f0d-92c4-5dd691048ff3", "deletable": true, "dn": "jansId=4e44d66a-b66e-4c26-aa1a-142e72fc60f7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:52", "creationDate": "2022-11-24T09:19:52", "ttl": 0, "sessionState": "bb8586d3deef8fd244630beb822f793f04e44dd70610638f37eb151c134febe6.d0a27f08-0e3c-45c6-bd3e-d755c1f73fd5", "lastUsedAt": "2022-11-24T09:19:52", "permissionGrantedMap": { "permissionGranted": { "9da254fa-f6c7-4c56-8f81-31454e8b6c43": true } }, "outsideSid": "5055fe24-3f5b-45e7-b927-0d007bfb8bbf", "id": "4e44d66a-b66e-4c26-aa1a-142e72fc60f7", "state": "authenticated", "sessionAttributes": { "opbs": "c1830425-8096-4f0d-92c4-5dd691048ff3", "response_type": "token id_token", "session_id": "4e44d66a-b66e-4c26-aa1a-142e72fc60f7", "nonce": "5ff4098b-d922-45dd-a1df-ba97a676565f", "client_id": "9da254fa-f6c7-4c56-8f81-31454e8b6c43", "sid": "5055fe24-3f5b-45e7-b927-0d007bfb8bbf", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2105cf8a-8340-46a2-a76c-dda9d7f3f7e8", "old_session_id": "5d370c5f-a5ea-45d6-9fe9-a0c8a33d2c14" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:52" }, { "isJwt": false, "opbrowserState": "f248f538-0fbe-485f-9eaa-b25c6f18f600", "deletable": true, "dn": "jansId=0df4b6be-b5a8-483d-93db-23e0529401c1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:52", "creationDate": "2022-11-24T09:19:51", "ttl": 0, "sessionState": "d69704d342c99657a71c770a5b1095ab88e67d4c9e50fba4887f52ba45452961.3ab76580-9223-4303-bfe8-9641edb3c738", "lastUsedAt": "2022-11-24T09:19:52", "permissionGrantedMap": { "permissionGranted": { "0e115640-3356-4569-95c7-da6c7dc76908": true } }, "outsideSid": "f14b95f2-eb40-46e0-aac0-4ce23693de0f", "id": "0df4b6be-b5a8-483d-93db-23e0529401c1", "state": "authenticated", "sessionAttributes": { "opbs": "f248f538-0fbe-485f-9eaa-b25c6f18f600", "response_type": "code", "session_id": "0df4b6be-b5a8-483d-93db-23e0529401c1", "client_id": "0e115640-3356-4569-95c7-da6c7dc76908", "sid": "f14b95f2-eb40-46e0-aac0-4ce23693de0f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9415adb5-3752-49fc-bd11-b6c9ace7eafc", "old_session_id": "d0721fed-c3bd-40de-b057-d70f365d5952" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:51" }, { "isJwt": false, "opbrowserState": "6531b72e-b5b4-4d87-a811-12fc17f9fb38", "deletable": true, "dn": "jansId=8a1dfd35-830f-45eb-bf05-7b6f2108f1fc,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:51", "creationDate": "2022-11-24T09:19:50", "ttl": 0, "sessionState": "e4e47b91f123e0ea6865929b16c34de3bf9c3022ff3f18651e0d96db1be1e752.6753f4e1-e509-4b35-9af8-090501736569", "lastUsedAt": "2022-11-24T09:19:51", "permissionGrantedMap": { "permissionGranted": { "74b52b42-4441-45e9-af6c-afab493ac2e2": true } }, "outsideSid": "dea5ed17-fdce-408a-b551-49cbcc4c4188", "id": "8a1dfd35-830f-45eb-bf05-7b6f2108f1fc", "state": "authenticated", "sessionAttributes": { "opbs": "6531b72e-b5b4-4d87-a811-12fc17f9fb38", "response_type": "code", "session_id": "8a1dfd35-830f-45eb-bf05-7b6f2108f1fc", "client_id": "74b52b42-4441-45e9-af6c-afab493ac2e2", "sid": "dea5ed17-fdce-408a-b551-49cbcc4c4188", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e30f083b-a1d5-48e0-93a4-18530293fd19", "old_session_id": "fd8a8241-4855-4607-a4a8-f47845a74190" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:50" }, { "isJwt": false, "opbrowserState": "b3e25606-cac3-42f7-b780-5c6b5d1e9934", "deletable": true, "dn": "jansId=6eed379f-cb4f-4f43-bb64-b95670a4ac2e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:50", "creationDate": "2022-11-24T09:19:49", "ttl": 0, "sessionState": "8d6faff9c226b283e106327eed46d236e0523e06b8e3fcb132ee7ad92f2ec6de.5b728402-9b52-4955-bc20-e53327a298f9", "lastUsedAt": "2022-11-24T09:19:50", "permissionGrantedMap": { "permissionGranted": { "104e19ab-1fcb-4cd5-8d4a-c62405b36556": true } }, "outsideSid": "835afdf9-8e94-4835-a24f-9d9d28d91440", "id": "6eed379f-cb4f-4f43-bb64-b95670a4ac2e", "state": "authenticated", "sessionAttributes": { "opbs": "b3e25606-cac3-42f7-b780-5c6b5d1e9934", "response_type": "code", "session_id": "6eed379f-cb4f-4f43-bb64-b95670a4ac2e", "client_id": "104e19ab-1fcb-4cd5-8d4a-c62405b36556", "sid": "835afdf9-8e94-4835-a24f-9d9d28d91440", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9a57e957-9caf-49b5-8ea5-8a9dcbf62be8", "old_session_id": "ad03350a-7dba-4a5f-affe-f46f26932d7b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:49" }, { "isJwt": false, "opbrowserState": "6937e362-1a4c-4091-a4b9-d8a4b8618800", "deletable": true, "dn": "jansId=15fcf6b1-5ddb-4435-9ee6-251f475f82d2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:49", "creationDate": "2022-11-24T09:19:48", "ttl": 0, "sessionState": "4abc3618b38f680c21dcf5ddd729f9fb489d3409332d41df96b324e3fa4718ab.bb6e41f6-c03d-482c-b3d7-ef10980d9700", "lastUsedAt": "2022-11-24T09:19:49", "permissionGrantedMap": { "permissionGranted": { "0f93f1e6-3aac-42b1-814a-46849e481ffb": true } }, "outsideSid": "e01a127f-d42e-49fb-ab4e-7c40faa10367", "id": "15fcf6b1-5ddb-4435-9ee6-251f475f82d2", "state": "authenticated", "sessionAttributes": { "opbs": "6937e362-1a4c-4091-a4b9-d8a4b8618800", "response_type": "token id_token", "session_id": "15fcf6b1-5ddb-4435-9ee6-251f475f82d2", "nonce": "8e2198a3-d429-499a-85a3-ffbea92cea1d", "client_id": "0f93f1e6-3aac-42b1-814a-46849e481ffb", "sid": "e01a127f-d42e-49fb-ab4e-7c40faa10367", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "aae2c039-63a6-45b4-b079-c375e36a5ffa", "old_session_id": "3a988b9b-2b4a-4943-bbe9-18d86f1f4be0" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:48" }, { "isJwt": false, "opbrowserState": "d0d09134-f261-433a-9d97-be8444bab662", "deletable": true, "dn": "jansId=67b305e5-0eab-4a8a-841d-e143485cec5b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:48", "creationDate": "2022-11-24T09:19:48", "ttl": 0, "sessionState": "679fb233138164c7fa641b403f7f7b1e4686f56c740357bdf17e8c57e2d62551.88defacd-8d75-417a-97d9-8f218e38c3cd", "lastUsedAt": "2022-11-24T09:19:48", "permissionGrantedMap": { "permissionGranted": { "45084f1c-ee46-4fd4-ab92-942a17ff68d2": true } }, "outsideSid": "3ec665b0-d89c-4555-8f73-07dbc9d0f94f", "id": "67b305e5-0eab-4a8a-841d-e143485cec5b", "state": "authenticated", "sessionAttributes": { "opbs": "d0d09134-f261-433a-9d97-be8444bab662", "response_type": "token id_token", "session_id": "67b305e5-0eab-4a8a-841d-e143485cec5b", "nonce": "38af3142-066d-4f10-bd71-8b944d0c0092", "client_id": "45084f1c-ee46-4fd4-ab92-942a17ff68d2", "sid": "3ec665b0-d89c-4555-8f73-07dbc9d0f94f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8d6e9ea8-9eca-4077-9af1-d317b843bd35", "old_session_id": "08f9a67b-7089-4b03-badd-3b76ccce28ad" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:48" }, { "isJwt": false, "opbrowserState": "9b027131-d651-40ce-9515-dc936bdaef2c", "deletable": true, "dn": "jansId=7f459a15-17d5-4a1c-972b-c1f65e9b266e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:48", "creationDate": "2022-11-24T09:19:47", "ttl": 0, "sessionState": "376009e30d4b6d2fae4c9e8bd5090457b33244f6a2cfa66e6c35ac0e35b81492.088895ee-d1ad-432b-94ea-283575af3e68", "lastUsedAt": "2022-11-24T09:19:48", "permissionGrantedMap": { "permissionGranted": { "3036bc86-d4f8-41f5-aeae-5ee179f393d6": true } }, "outsideSid": "21feee7a-7580-4a3f-9984-109920f84cdb", "id": "7f459a15-17d5-4a1c-972b-c1f65e9b266e", "state": "authenticated", "sessionAttributes": { "opbs": "9b027131-d651-40ce-9515-dc936bdaef2c", "response_type": "code", "session_id": "7f459a15-17d5-4a1c-972b-c1f65e9b266e", "client_id": "3036bc86-d4f8-41f5-aeae-5ee179f393d6", "sid": "21feee7a-7580-4a3f-9984-109920f84cdb", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "702bbce1-8862-4a83-9cf7-c05bb47e7ff1", "old_session_id": "90087081-f432-42d1-989b-20939510b00a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:47" }, { "isJwt": false, "opbrowserState": "8022ba0d-fc5d-48d9-bbfb-586e1794543b", "deletable": true, "dn": "jansId=1d7885a0-ac6b-464a-bf67-c6f6550e5445,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:48", "creationDate": "2022-11-24T09:19:47", "ttl": 0, "sessionState": "d1bf635e845e82743968e9f942af8d1726798208c6434c9d91f6487e6beecf63.14ba8ec4-24b0-492d-a8f0-d36e71854728", "lastUsedAt": "2022-11-24T09:19:48", "permissionGrantedMap": { "permissionGranted": { "96294e8a-0536-4c1f-b344-ce49375caeae": true } }, "outsideSid": "9a342933-8be6-4b95-8caf-b7f667cf27f5", "id": "1d7885a0-ac6b-464a-bf67-c6f6550e5445", "state": "authenticated", "sessionAttributes": { "opbs": "8022ba0d-fc5d-48d9-bbfb-586e1794543b", "response_type": "token id_token", "session_id": "1d7885a0-ac6b-464a-bf67-c6f6550e5445", "nonce": "a3107a2f-3103-4e70-a79e-187fb23990ce", "client_id": "96294e8a-0536-4c1f-b344-ce49375caeae", "sid": "9a342933-8be6-4b95-8caf-b7f667cf27f5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0ba8d481-4ed2-43f5-a6b5-8de825682212", "old_session_id": "240791d5-2960-4967-8e17-4afe57382485" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:47" }, { "isJwt": false, "opbrowserState": "15ac2986-a360-4843-9c4b-be1f45501ae1", "deletable": true, "dn": "jansId=b8e6cc76-3305-4bed-8aab-9c65591b4b4c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:47", "creationDate": "2022-11-24T09:19:46", "ttl": 0, "sessionState": "50498dc8c9f56457868cdd103bd9e4fdd9d69835386e534b7511eb06d9b7c017.f0fa3e27-1887-4ae6-8e96-563185225207", "lastUsedAt": "2022-11-24T09:19:47", "permissionGrantedMap": { "permissionGranted": { "c4e823d3-f5fb-4b1e-bdaf-df3c64543463": true } }, "outsideSid": "8a01e55d-d237-440c-8c7c-4d06a9f7afa7", "id": "b8e6cc76-3305-4bed-8aab-9c65591b4b4c", "state": "authenticated", "sessionAttributes": { "opbs": "15ac2986-a360-4843-9c4b-be1f45501ae1", "response_type": "code", "session_id": "b8e6cc76-3305-4bed-8aab-9c65591b4b4c", "client_id": "c4e823d3-f5fb-4b1e-bdaf-df3c64543463", "sid": "8a01e55d-d237-440c-8c7c-4d06a9f7afa7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a8178974-1ccd-4949-81f8-3ee4e9314390", "old_session_id": "fc1e051b-7ffb-40dc-a62e-43321a7c17cc" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:46" }, { "isJwt": false, "opbrowserState": "4d852422-cc48-42cb-9ca2-c8ccc193028d", "deletable": true, "dn": "jansId=71754cae-8eb1-4b14-8fc5-133061b9f005,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:46", "creationDate": "2022-11-24T09:19:46", "ttl": 0, "sessionState": "696c558d329ab9a75ed279dbb3ffff1c9bb403fa3260f7ebe137c63c215c2929.43e7478b-5a87-4340-8235-818668a62405", "lastUsedAt": "2022-11-24T09:19:46", "permissionGrantedMap": { "permissionGranted": { "42f44375-a8a2-466a-9a75-892efefd728f": true } }, "outsideSid": "da87d9fb-14ec-44f7-9d03-1dcab585b768", "id": "71754cae-8eb1-4b14-8fc5-133061b9f005", "state": "authenticated", "sessionAttributes": { "opbs": "4d852422-cc48-42cb-9ca2-c8ccc193028d", "response_type": "token id_token", "session_id": "71754cae-8eb1-4b14-8fc5-133061b9f005", "nonce": "05697cdc-0a79-4824-94f8-6eb3ff9989c8", "client_id": "42f44375-a8a2-466a-9a75-892efefd728f", "sid": "da87d9fb-14ec-44f7-9d03-1dcab585b768", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2d5dcd25-df3f-42bf-b897-acbfbe3575be", "old_session_id": "e1ba4db2-33cc-4b97-83e8-6505bb7858aa" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:46" }, { "isJwt": false, "opbrowserState": "35922b43-f14f-4c26-80be-e6e4fd68b874", "deletable": true, "dn": "jansId=38d6940a-9637-422f-80b2-e5b2a9cc1ff9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:46", "creationDate": "2022-11-24T09:19:46", "ttl": 0, "sessionState": "ae85dc235e913b2c4711bfa7b0a7c32c0a17adebd40de9494dc175b0e5c5b63c.e8eccc15-7e2e-4e22-b207-30c087311be1", "lastUsedAt": "2022-11-24T09:19:46", "permissionGrantedMap": { "permissionGranted": { "72a24578-4952-42d5-adbb-9752a1b85ce2": true } }, "outsideSid": "dcf276a5-301f-4f74-8a0a-cd8b17b87980", "id": "38d6940a-9637-422f-80b2-e5b2a9cc1ff9", "state": "authenticated", "sessionAttributes": { "opbs": "35922b43-f14f-4c26-80be-e6e4fd68b874", "response_type": "token id_token", "session_id": "38d6940a-9637-422f-80b2-e5b2a9cc1ff9", "nonce": "5fc323f1-a338-40b0-8fc5-bae9e85cbd32", "client_id": "72a24578-4952-42d5-adbb-9752a1b85ce2", "sid": "dcf276a5-301f-4f74-8a0a-cd8b17b87980", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1aac712a-6696-497c-9423-e613687a6828", "old_session_id": "1c3960b5-7b1a-4a00-993d-d23f12bf6eed" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:46" }, { "isJwt": false, "opbrowserState": "d4c4488d-0ef4-4a90-ba0e-f03ae0a13414", "deletable": true, "dn": "jansId=ba98beb9-924d-48c7-a365-c70248f9af02,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:46", "creationDate": "2022-11-24T09:19:45", "ttl": 0, "sessionState": "ab85c95638fd4f942d90d869d666634658c8eb3f3c7b95b5667d1bffaa1abd8f.53989dd6-a898-404f-9159-8609f492aeff", "lastUsedAt": "2022-11-24T09:19:46", "permissionGrantedMap": { "permissionGranted": { "e3c4d7d1-fe4b-4e80-b952-6126a9814efe": true } }, "outsideSid": "d390afe6-80b1-4b58-a930-6cf98e967ac7", "id": "ba98beb9-924d-48c7-a365-c70248f9af02", "state": "authenticated", "sessionAttributes": { "opbs": "d4c4488d-0ef4-4a90-ba0e-f03ae0a13414", "response_type": "code", "session_id": "ba98beb9-924d-48c7-a365-c70248f9af02", "client_id": "e3c4d7d1-fe4b-4e80-b952-6126a9814efe", "sid": "d390afe6-80b1-4b58-a930-6cf98e967ac7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7d142200-79ed-40ca-b4d5-59ef71cdd924", "old_session_id": "4a1036fc-47d4-4394-b8b0-16fed09d6d6d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:45" }, { "isJwt": false, "opbrowserState": "c77204e1-f616-4f03-a652-9da9b61fc838", "deletable": true, "dn": "jansId=979fc18c-c802-46ec-81bd-83a8a59a2e84,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:45", "creationDate": "2022-11-24T09:19:44", "ttl": 0, "sessionState": "92878422785345b8911c51eda4804205227a4a0b556eb60f18b68d489a67789a.1a24aabf-d8ca-4705-8693-a98c3ae2f19b", "lastUsedAt": "2022-11-24T09:19:45", "permissionGrantedMap": { "permissionGranted": { "8e89483e-dfb1-4fe6-bf2f-c76a87f60abd": true } }, "outsideSid": "ddb28b70-3de2-4445-841e-b4b8336ffcf1", "id": "979fc18c-c802-46ec-81bd-83a8a59a2e84", "state": "authenticated", "sessionAttributes": { "opbs": "c77204e1-f616-4f03-a652-9da9b61fc838", "response_type": "token id_token", "session_id": "979fc18c-c802-46ec-81bd-83a8a59a2e84", "nonce": "5c5ab919-eb6f-4844-9f8c-6fc36c812588", "client_id": "8e89483e-dfb1-4fe6-bf2f-c76a87f60abd", "sid": "ddb28b70-3de2-4445-841e-b4b8336ffcf1", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "af1c7516-347a-4030-89b8-e45e945fb4a0", "old_session_id": "bdaa9ec3-a81e-4dbb-9d2e-964878ae12df" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:44" }, { "isJwt": false, "opbrowserState": "3df573f2-68b9-49a3-ad73-8f51cc2921bc", "deletable": true, "dn": "jansId=86ba8b34-c52f-4a3e-8872-169dacedc69e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:44", "creationDate": "2022-11-24T09:19:44", "ttl": 0, "sessionState": "d2127f4d7e48df857fb7a6671d45f9380d6ad1f986b798799baa2285944fe219.9b2584ae-64b3-4f30-a35b-edb9c1c42a6e", "lastUsedAt": "2022-11-24T09:19:44", "permissionGrantedMap": { "permissionGranted": { "438f58d5-3a20-432a-abbd-c1a7092f6b00": true } }, "outsideSid": "9aeecbfd-9edd-4d12-9a7c-583c664a8d80", "id": "86ba8b34-c52f-4a3e-8872-169dacedc69e", "state": "authenticated", "sessionAttributes": { "opbs": "3df573f2-68b9-49a3-ad73-8f51cc2921bc", "response_type": "code", "session_id": "86ba8b34-c52f-4a3e-8872-169dacedc69e", "client_id": "438f58d5-3a20-432a-abbd-c1a7092f6b00", "sid": "9aeecbfd-9edd-4d12-9a7c-583c664a8d80", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a0f23c97-acd4-4014-9b5c-afea8ed6509f", "old_session_id": "ea4eb307-6637-4989-869a-af6586376fca" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:44" }, { "isJwt": false, "opbrowserState": "e18e19d3-7cd3-4adc-8341-9565f3f2f198", "deletable": true, "dn": "jansId=95c5c9fc-2f1b-48be-9155-0933a2a2cf58,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:43", "creationDate": "2022-11-24T09:19:43", "ttl": 0, "sessionState": "b3ffe75a914a36d6fe97b12332175a07e06ac59d3e83aa1554acf3bcbf3d6fec.389be2eb-68a9-4a77-b7f3-f2df96acf13f", "lastUsedAt": "2022-11-24T09:19:43", "permissionGrantedMap": { "permissionGranted": { "ec23dccc-43c4-477d-bf9a-84d29f0c0bb0": true } }, "outsideSid": "628dc52c-5298-4d2a-b333-afb7ed326567", "id": "95c5c9fc-2f1b-48be-9155-0933a2a2cf58", "state": "authenticated", "sessionAttributes": { "opbs": "e18e19d3-7cd3-4adc-8341-9565f3f2f198", "response_type": "token id_token", "session_id": "95c5c9fc-2f1b-48be-9155-0933a2a2cf58", "nonce": "12338096-dd74-447d-8021-1a60f674bd13", "client_id": "ec23dccc-43c4-477d-bf9a-84d29f0c0bb0", "sid": "628dc52c-5298-4d2a-b333-afb7ed326567", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f8eb9078-a9fd-4e6f-b4b6-3e7e9db34c24", "old_session_id": "b90453af-5843-41bc-a900-b2ffaa226899" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:43" }, { "isJwt": false, "opbrowserState": "121fd42d-ea98-47bc-a79b-1fdce1e705d1", "deletable": true, "dn": "jansId=b3df2907-9e7a-4b5f-b39b-13b8144d4f52,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:43", "creationDate": "2022-11-24T09:19:43", "ttl": 0, "sessionState": "b02a111b877e1473c17c1ce2c23d51699e250e2fc48d87e84ab9382b182e5460.cfa7f32b-a870-4fd1-af93-2b81b36f64e0", "lastUsedAt": "2022-11-24T09:19:43", "permissionGrantedMap": { "permissionGranted": { "5ebd0b16-0497-47db-b028-9e930b90da99": true } }, "outsideSid": "2f1c42f9-2abd-42a4-8090-0158552202f5", "id": "b3df2907-9e7a-4b5f-b39b-13b8144d4f52", "state": "authenticated", "sessionAttributes": { "opbs": "121fd42d-ea98-47bc-a79b-1fdce1e705d1", "response_type": "code", "session_id": "b3df2907-9e7a-4b5f-b39b-13b8144d4f52", "client_id": "5ebd0b16-0497-47db-b028-9e930b90da99", "sid": "2f1c42f9-2abd-42a4-8090-0158552202f5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "60af7e84-bbf9-4f24-abb1-8c8150b0f111", "old_session_id": "47895c54-ebf3-4547-94d8-bb8dd197588b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:43" }, { "isJwt": false, "opbrowserState": "484e714a-7b5e-4e42-9656-b1ac74e5b053", "deletable": true, "dn": "jansId=8a4605fa-99f4-4ea8-95d4-8b4ddd19e1f8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:42", "creationDate": "2022-11-24T09:19:41", "ttl": 0, "sessionState": "64c1e574d45947bdaf258962b1771888ad413908df3a846da5d6a3ac5a33cf7d.d0a99da6-fb46-4ea0-ba81-fc29a07d3b7d", "lastUsedAt": "2022-11-24T09:19:42", "permissionGrantedMap": { "permissionGranted": { "dc67bcc5-7457-403e-8462-e0a427cb0156": true } }, "outsideSid": "b3c0a98a-9e19-4143-ba9e-862b229ab567", "id": "8a4605fa-99f4-4ea8-95d4-8b4ddd19e1f8", "state": "authenticated", "sessionAttributes": { "opbs": "484e714a-7b5e-4e42-9656-b1ac74e5b053", "response_type": "code", "session_id": "8a4605fa-99f4-4ea8-95d4-8b4ddd19e1f8", "client_id": "dc67bcc5-7457-403e-8462-e0a427cb0156", "sid": "b3c0a98a-9e19-4143-ba9e-862b229ab567", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7cdae317-2be9-4918-9165-b07096997bd8", "old_session_id": "bb68834d-88f8-4d2c-9429-ecb143d087aa" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:41" }, { "isJwt": false, "opbrowserState": "ff4d80f7-4290-491a-a84f-34a32cfe2c1a", "deletable": true, "dn": "jansId=5fd59d85-edfb-4dac-b3e6-722e6c87a578,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:41", "creationDate": "2022-11-24T09:19:40", "ttl": 0, "sessionState": "34a457ac45a6aef3e27384fefbd4331353dfa501ea75e6df19dac61ec58890d5.6ce08dc0-a568-4da5-aab6-ed754b76b0ff", "lastUsedAt": "2022-11-24T09:19:41", "permissionGrantedMap": { "permissionGranted": { "5f3b0f0c-e1c1-49cd-a5b3-2b977d6b48ff": true } }, "outsideSid": "2c8fbd1a-b1bd-4712-9719-59bb86499c9b", "id": "5fd59d85-edfb-4dac-b3e6-722e6c87a578", "state": "authenticated", "sessionAttributes": { "opbs": "ff4d80f7-4290-491a-a84f-34a32cfe2c1a", "response_type": "code", "session_id": "5fd59d85-edfb-4dac-b3e6-722e6c87a578", "client_id": "5f3b0f0c-e1c1-49cd-a5b3-2b977d6b48ff", "sid": "2c8fbd1a-b1bd-4712-9719-59bb86499c9b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "884bf38a-ee0a-47bc-8cb3-4420a9387e53", "old_session_id": "dae47a39-427c-49e7-b0d2-b2c2eb28f89f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:40" }, { "isJwt": false, "opbrowserState": "c0d9ea1c-b0d5-4940-9e13-c4d42bb87cf9", "deletable": true, "dn": "jansId=30069656-9237-4311-bcef-149caa7e45b5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:40", "creationDate": "2022-11-24T09:19:40", "ttl": 0, "sessionState": "b195a3c7dd9fd7bcb2aa836bb0c36517d4f449c4a6c3c24d855598f672ac549b.8229e893-1b59-4d01-928d-7a12853d8b75", "lastUsedAt": "2022-11-24T09:19:40", "permissionGrantedMap": { "permissionGranted": { "d1f05aaa-faf3-445c-895d-45250f04b163": true } }, "outsideSid": "54f84fe0-0bfd-48d1-89fb-94df9653da30", "id": "30069656-9237-4311-bcef-149caa7e45b5", "state": "authenticated", "sessionAttributes": { "opbs": "c0d9ea1c-b0d5-4940-9e13-c4d42bb87cf9", "response_type": "id_token", "session_id": "30069656-9237-4311-bcef-149caa7e45b5", "nonce": "8b82df0c-c300-45b8-bd40-d284afd4532f", "client_id": "d1f05aaa-faf3-445c-895d-45250f04b163", "sid": "54f84fe0-0bfd-48d1-89fb-94df9653da30", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "185bacaa-7781-46df-8593-2fd2aa9dd6bf", "old_session_id": "fbacc8c3-d392-41ba-8d61-57c03b02c921" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:40" }, { "isJwt": false, "opbrowserState": "1904b65c-1fce-43eb-bb52-f89bab6a7446", "deletable": true, "dn": "jansId=363e4708-5b47-4155-a781-2f4e0da76d03,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:39", "creationDate": "2022-11-24T09:19:39", "ttl": 0, "sessionState": "bacdbc5bd5d33dd2d651414c4308d2a1ba796feb17d57d1e3add9741d0a372de.8849253f-ad5d-4632-8956-7e1d658b9574", "lastUsedAt": "2022-11-24T09:19:39", "permissionGrantedMap": { "permissionGranted": { "5f7e86cf-05b1-47d4-933f-263e42c02f2c": true } }, "outsideSid": "9cc0f670-ab13-4a3d-be8e-3d0605188cf0", "id": "363e4708-5b47-4155-a781-2f4e0da76d03", "state": "authenticated", "sessionAttributes": { "opbs": "1904b65c-1fce-43eb-bb52-f89bab6a7446", "response_type": "code", "session_id": "363e4708-5b47-4155-a781-2f4e0da76d03", "client_id": "5f7e86cf-05b1-47d4-933f-263e42c02f2c", "sid": "9cc0f670-ab13-4a3d-be8e-3d0605188cf0", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "aa5b88e2-e07e-49ed-87e5-def6257c0a7f", "old_session_id": "81ce033f-7d2c-42db-8e11-68bb02211329" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:39" }, { "isJwt": false, "opbrowserState": "49d129b9-e1df-4e71-80f5-7badf6f1a797", "deletable": true, "dn": "jansId=417476ba-982b-491f-8603-5472384ac08c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:39", "creationDate": "2022-11-24T09:19:39", "ttl": 0, "sessionState": "8c9c160d86beda6ec73d444337d78bd7196357b6c4b59d6207cb4face9efc5e5.55b6375c-e538-40a2-82f3-1800b9d60581", "lastUsedAt": "2022-11-24T09:19:39", "permissionGrantedMap": { "permissionGranted": { "82e78da3-37ea-4f13-89f5-3ce5c667f2ff": true } }, "outsideSid": "a62c81b2-31ae-4dd8-8c32-df00e92aa091", "id": "417476ba-982b-491f-8603-5472384ac08c", "state": "authenticated", "sessionAttributes": { "opbs": "49d129b9-e1df-4e71-80f5-7badf6f1a797", "response_type": "id_token", "session_id": "417476ba-982b-491f-8603-5472384ac08c", "nonce": "6428546c-9fd7-41c4-a048-ac44489d2de8", "client_id": "82e78da3-37ea-4f13-89f5-3ce5c667f2ff", "sid": "a62c81b2-31ae-4dd8-8c32-df00e92aa091", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "cb6f8e48-1d35-4119-9855-4189023f5b72", "old_session_id": "8f32d441-ff29-44a7-8d1c-12482c54e476" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:39" }, { "isJwt": false, "opbrowserState": "6a77addc-2856-4dea-bbf4-35cb85d9ac87", "deletable": true, "dn": "jansId=9f079508-7b9e-42e5-a806-f8c1716e5c0b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:38", "creationDate": "2022-11-24T09:19:37", "ttl": 0, "sessionState": "f7eda566d3b4fbc81c6968015d5966263add1a0574ad4df497b9c84f49954e42.18da8f94-bf59-4ffd-9ef8-b89832c23b0d", "lastUsedAt": "2022-11-24T09:19:38", "permissionGrantedMap": { "permissionGranted": { "e5c607d4-2ee0-4426-a784-202716e5c249": true } }, "outsideSid": "f4aac66a-7289-4b85-a2f2-29523e6b5284", "id": "9f079508-7b9e-42e5-a806-f8c1716e5c0b", "state": "authenticated", "sessionAttributes": { "opbs": "6a77addc-2856-4dea-bbf4-35cb85d9ac87", "response_type": "id_token", "session_id": "9f079508-7b9e-42e5-a806-f8c1716e5c0b", "nonce": "3788bb61-7b6b-4648-8d75-8fff10bdb234", "client_id": "e5c607d4-2ee0-4426-a784-202716e5c249", "sid": "f4aac66a-7289-4b85-a2f2-29523e6b5284", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f4273db2-8a44-4e97-bb8b-2e670a912881", "old_session_id": "e4c3726b-4943-4738-8c34-b13e6d0ab8e4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:37" }, { "isJwt": false, "opbrowserState": "50bfb3f2-7fa0-40ac-825e-f3c9473f9f43", "deletable": true, "dn": "jansId=650c7133-dd88-4ba9-ab80-72b6c2592000,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:38", "creationDate": "2022-11-24T09:19:37", "ttl": 0, "sessionState": "e796f6d4f8b2b556969db8dad1a52a6c64883a7b9d3e30fed3920ff567bcfa47.fbbb44bf-efac-460d-81b8-261645c288c9", "lastUsedAt": "2022-11-24T09:19:38", "permissionGrantedMap": { "permissionGranted": { "a1e91465-31ea-4993-887a-c2e2f57a6006": true } }, "outsideSid": "0f9725e2-3e99-425b-b162-beedba477e47", "id": "650c7133-dd88-4ba9-ab80-72b6c2592000", "state": "authenticated", "sessionAttributes": { "opbs": "50bfb3f2-7fa0-40ac-825e-f3c9473f9f43", "response_type": "token id_token", "session_id": "650c7133-dd88-4ba9-ab80-72b6c2592000", "nonce": "384518dd-2a36-4c23-ba67-5f81abc04982", "client_id": "a1e91465-31ea-4993-887a-c2e2f57a6006", "sid": "0f9725e2-3e99-425b-b162-beedba477e47", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3bc74de2-8ba7-4854-b1a8-7133443e69a5", "old_session_id": "916b826f-4557-4638-82ad-b0fe849bcc25" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:37" }, { "isJwt": false, "opbrowserState": "4a47fe89-4efe-4625-9d82-0fb09b99c373", "deletable": true, "dn": "jansId=7298944c-78ad-4760-a464-52e4cb729b25,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:38", "creationDate": "2022-11-24T09:19:37", "ttl": 0, "sessionState": "bc1ad62f19cdb81a9149afb3da54739fdc0da9c8354ef569d27777e310381ec0.524838d5-d1e7-4ca2-9f36-4c4663e2b09c", "lastUsedAt": "2022-11-24T09:19:38", "permissionGrantedMap": { "permissionGranted": { "33633feb-262b-43e5-b359-3f3a45a7fb58": true } }, "outsideSid": "1c74187f-a636-4a81-88ad-5ee1993f85d5", "id": "7298944c-78ad-4760-a464-52e4cb729b25", "state": "authenticated", "sessionAttributes": { "opbs": "4a47fe89-4efe-4625-9d82-0fb09b99c373", "response_type": "code", "session_id": "7298944c-78ad-4760-a464-52e4cb729b25", "client_id": "33633feb-262b-43e5-b359-3f3a45a7fb58", "sid": "1c74187f-a636-4a81-88ad-5ee1993f85d5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "291f4264-77ba-4c69-a3c1-6ba42c250a21", "old_session_id": "1957870f-59fc-4392-85c7-7c53e06b5e12" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:37" }, { "isJwt": false, "opbrowserState": "34500396-7f25-4b04-9310-842a538efb4b", "deletable": true, "dn": "jansId=23958a14-0b7e-4846-a72d-5638d8987193,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:37", "creationDate": "2022-11-24T09:19:36", "ttl": 0, "sessionState": "e666d1925725f311f5b5ebd287226d44f49bc5ca27dd81787308bff9653d6b1e.9814177e-5a17-41fd-a7eb-8c0257e9b72b", "lastUsedAt": "2022-11-24T09:19:37", "permissionGrantedMap": { "permissionGranted": { "971dc35d-e13a-4d17-8980-ea0522f6a532": true } }, "outsideSid": "1a36c63f-3a23-41d7-bd14-5e5c80e52ed9", "id": "23958a14-0b7e-4846-a72d-5638d8987193", "state": "authenticated", "sessionAttributes": { "opbs": "34500396-7f25-4b04-9310-842a538efb4b", "response_type": "id_token", "session_id": "23958a14-0b7e-4846-a72d-5638d8987193", "nonce": "665f222f-c8b0-4b95-9e41-0175a6e1f6db", "client_id": "971dc35d-e13a-4d17-8980-ea0522f6a532", "sid": "1a36c63f-3a23-41d7-bd14-5e5c80e52ed9", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ad2e81fa-9ea8-4abd-bc19-c542ffe28a3f", "old_session_id": "36797ff6-6049-48c2-81ba-d5fe2818f71c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:36" }, { "isJwt": false, "opbrowserState": "47947450-4d92-4195-b07d-73e50d7b35b9", "deletable": true, "dn": "jansId=0ba4fc90-e7a6-4256-9d05-631430a5b239,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:37", "creationDate": "2022-11-24T09:19:36", "ttl": 0, "sessionState": "f350a66486f673d9b84e6bcbf4dcde95d8c8924e7209f469daa5e38a52e559b0.9d04dccc-8974-407c-87e1-e1a85c16baf8", "lastUsedAt": "2022-11-24T09:19:37", "permissionGrantedMap": { "permissionGranted": { "ea2c6dc2-f241-49f6-8c6f-bdce20a490b4": true } }, "outsideSid": "14b24041-54ec-47a6-98fd-7513868204bf", "id": "0ba4fc90-e7a6-4256-9d05-631430a5b239", "state": "authenticated", "sessionAttributes": { "opbs": "47947450-4d92-4195-b07d-73e50d7b35b9", "response_type": "id_token", "session_id": "0ba4fc90-e7a6-4256-9d05-631430a5b239", "nonce": "3de785b0-b36c-4ab7-95dc-9c494fee3a39", "client_id": "ea2c6dc2-f241-49f6-8c6f-bdce20a490b4", "sid": "14b24041-54ec-47a6-98fd-7513868204bf", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7d5fb36e-8d52-4413-b64e-8b9768d9ddc1", "old_session_id": "ec27cd77-94c4-4bc1-bdb2-9e3725514a16" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:36" }, { "isJwt": false, "opbrowserState": "d3959167-9e43-40da-a31d-dae18d1850d8", "deletable": true, "dn": "jansId=6b5d7038-541f-4370-8201-d823116d4e3c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:35", "creationDate": "2022-11-24T09:19:35", "ttl": 0, "sessionState": "bc14f81cedd161b61194ec34be4a65c54a0e0d8fc0aef6c6c72b715fc6b7683b.2c5ce31e-1ac8-4972-85a6-e86f5d5631e1", "lastUsedAt": "2022-11-24T09:19:35", "permissionGrantedMap": { "permissionGranted": { "7d51d194-02e8-4fdb-b721-c3d770bdf7e7": true } }, "outsideSid": "d698c45c-fcae-422c-a69e-2489d02ee12b", "id": "6b5d7038-541f-4370-8201-d823116d4e3c", "state": "authenticated", "sessionAttributes": { "opbs": "d3959167-9e43-40da-a31d-dae18d1850d8", "response_type": "id_token", "session_id": "6b5d7038-541f-4370-8201-d823116d4e3c", "nonce": "4fdd81c3-d260-4ea6-bac9-9bc7d9d75f14", "client_id": "7d51d194-02e8-4fdb-b721-c3d770bdf7e7", "sid": "d698c45c-fcae-422c-a69e-2489d02ee12b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ea00c25e-59ea-4f20-8f64-ff939efe1482", "old_session_id": "9bb834a0-e28e-4dec-9b49-3962166d1311" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:35" }, { "isJwt": false, "opbrowserState": "642dd560-3ef5-4f9b-9a22-0e878cd3cb30", "deletable": true, "dn": "jansId=bd67b056-153c-4524-b1bf-a0b6d3d8e2cd,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:35", "creationDate": "2022-11-24T09:19:35", "ttl": 0, "sessionState": "f474f8223543e7d56b935526e5c21b8cf76a5dff1012161e02f1f9ea1d7b7eb5.896053ad-9081-4de5-a89e-b4df50284ec6", "lastUsedAt": "2022-11-24T09:19:35", "permissionGrantedMap": { "permissionGranted": { "3d8e6747-0d29-4764-a3cf-b98d07e7f849": true } }, "outsideSid": "de632275-7525-473b-a1cb-31b8cd5e286a", "id": "bd67b056-153c-4524-b1bf-a0b6d3d8e2cd", "state": "authenticated", "sessionAttributes": { "opbs": "642dd560-3ef5-4f9b-9a22-0e878cd3cb30", "response_type": "id_token", "session_id": "bd67b056-153c-4524-b1bf-a0b6d3d8e2cd", "nonce": "c2184b72-7ca2-49ff-99e2-8acf4fc794a8", "client_id": "3d8e6747-0d29-4764-a3cf-b98d07e7f849", "sid": "de632275-7525-473b-a1cb-31b8cd5e286a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1835cd80-29d4-4cca-87fe-d1eb6c40787c", "old_session_id": "fb624782-8af8-4f64-b8bc-d95c3a51a2cb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:35" }, { "isJwt": false, "opbrowserState": "6c8989e7-515e-4209-b5bf-bca5b9d61f44", "deletable": true, "dn": "jansId=261b913c-ed94-4dd2-9524-08f29705ffe5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:35", "creationDate": "2022-11-24T09:19:34", "ttl": 0, "sessionState": "4315ae091ccceca95b89c920707007e58c5cde79ed7dd4ae7a6ad424426a9b0d.5d9af7ff-0c3f-451f-af1e-092c78d19464", "lastUsedAt": "2022-11-24T09:19:35", "permissionGrantedMap": { "permissionGranted": { "59971928-70ef-4f14-8129-2a15d16968f1": true } }, "outsideSid": "cbea0ce3-5350-4fa2-b297-9c491117d8ae", "id": "261b913c-ed94-4dd2-9524-08f29705ffe5", "state": "authenticated", "sessionAttributes": { "opbs": "6c8989e7-515e-4209-b5bf-bca5b9d61f44", "response_type": "code", "session_id": "261b913c-ed94-4dd2-9524-08f29705ffe5", "client_id": "59971928-70ef-4f14-8129-2a15d16968f1", "sid": "cbea0ce3-5350-4fa2-b297-9c491117d8ae", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "bfc7c1da-0c72-4d6d-9c94-cc0f4ffa313b", "old_session_id": "2435cb39-80c0-4728-aa27-4ed05cfcba1b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:34" }, { "isJwt": false, "opbrowserState": "ab17cae5-733f-4dcd-9510-008c6ee1204a", "deletable": true, "dn": "jansId=3df6614e-aba4-4b50-b4dc-9083f9281e1a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:34", "creationDate": "2022-11-24T09:19:33", "ttl": 0, "sessionState": "332e80152148cf09ae3baa503055fdc49f6f9a2f9302237dbf23f344f90e5b90.dcea3f4c-b81e-4404-b4e0-ecd1f16c5204", "lastUsedAt": "2022-11-24T09:19:34", "permissionGrantedMap": { "permissionGranted": { "7717e736-acf0-40f3-ac92-bc35becbb38a": true } }, "outsideSid": "0c1c60ea-6f23-496d-aacc-fe8976d078cc", "id": "3df6614e-aba4-4b50-b4dc-9083f9281e1a", "state": "authenticated", "sessionAttributes": { "opbs": "ab17cae5-733f-4dcd-9510-008c6ee1204a", "response_type": "id_token", "session_id": "3df6614e-aba4-4b50-b4dc-9083f9281e1a", "nonce": "572d2648-47f1-4c07-938a-e9073851d114", "client_id": "7717e736-acf0-40f3-ac92-bc35becbb38a", "sid": "0c1c60ea-6f23-496d-aacc-fe8976d078cc", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "de4949e8-0e1a-49fe-90b9-d5f7b07afa67", "old_session_id": "d48a5f07-78bc-4e6a-b958-6ad15da2ac9c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:33" }, { "isJwt": false, "opbrowserState": "3dbb61c9-a927-42a7-b197-4dfc9b41dd38", "deletable": true, "dn": "jansId=0b032031-e738-43b9-9f35-75b80eda6bd7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:34", "creationDate": "2022-11-24T09:19:33", "ttl": 0, "sessionState": "26cc31b4a3d03b3fe6940f416b15228510f5a231dff64ef79082b35eeb64be01.97df8078-ddbb-4487-bac4-6f2170755553", "lastUsedAt": "2022-11-24T09:19:34", "permissionGrantedMap": { "permissionGranted": { "23a858b4-013a-4507-bd2a-7a511be09e2f": true } }, "outsideSid": "53c82cb9-27ab-4619-b01a-0f586d5a3106", "id": "0b032031-e738-43b9-9f35-75b80eda6bd7", "state": "authenticated", "sessionAttributes": { "opbs": "3dbb61c9-a927-42a7-b197-4dfc9b41dd38", "response_type": "code", "session_id": "0b032031-e738-43b9-9f35-75b80eda6bd7", "client_id": "23a858b4-013a-4507-bd2a-7a511be09e2f", "sid": "53c82cb9-27ab-4619-b01a-0f586d5a3106", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2d3f39db-e682-4226-a03e-21ec9ea0d9a1", "old_session_id": "4c50b91f-79a4-4003-970d-cf4af9402a41" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:33" }, { "isJwt": false, "opbrowserState": "91f85e81-6201-4695-8936-def9c3dde7f9", "deletable": true, "dn": "jansId=b8ee04e7-9d00-4671-af1a-d6e648ba5ffc,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:32", "creationDate": "2022-11-24T09:19:31", "ttl": 0, "sessionState": "b8c688827ab233f36bd9c99a1435bd0a2cff4c2d8b8c2259476a9138967ba079.3ac693ec-c028-4578-8efa-3d2f9da842ef", "lastUsedAt": "2022-11-24T09:19:32", "permissionGrantedMap": { "permissionGranted": { "0a6f7c33-4f17-49eb-9a80-1d8b4cc4371a": true } }, "outsideSid": "38086a83-7c83-4bb5-aa3b-981179cf945f", "id": "b8ee04e7-9d00-4671-af1a-d6e648ba5ffc", "state": "authenticated", "sessionAttributes": { "opbs": "91f85e81-6201-4695-8936-def9c3dde7f9", "response_type": "code", "session_id": "b8ee04e7-9d00-4671-af1a-d6e648ba5ffc", "client_id": "0a6f7c33-4f17-49eb-9a80-1d8b4cc4371a", "sid": "38086a83-7c83-4bb5-aa3b-981179cf945f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1a8d4bca-e5b8-4455-a3fa-b7287f31df30", "old_session_id": "7f988e10-3a7f-4102-943c-36ed5776d9df" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:31" }, { "isJwt": false, "opbrowserState": "25e653ba-821f-46ec-8670-a9cefdb7f157", "deletable": true, "dn": "jansId=b9687308-3c54-4c28-85ab-ff741b85a59d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:31", "creationDate": "2022-11-24T09:19:30", "ttl": 0, "sessionState": "85c3267c7b9e57cf4a76cc6f5f1c3911c31d295b83b510c3ca6a1cc7e625f060.ee6ae1e3-5f58-4be5-b68d-ef3160d7b27b", "lastUsedAt": "2022-11-24T09:19:31", "permissionGrantedMap": { "permissionGranted": { "80b59d08-bad6-41dc-927e-eea61d55177a": true } }, "outsideSid": "62e3c207-cd3c-46f1-844d-c7e1b5455b68", "id": "b9687308-3c54-4c28-85ab-ff741b85a59d", "state": "authenticated", "sessionAttributes": { "opbs": "25e653ba-821f-46ec-8670-a9cefdb7f157", "response_type": "token", "session_id": "b9687308-3c54-4c28-85ab-ff741b85a59d", "nonce": "8d1e9a86-d872-4c63-b42a-74d742adb8e7", "client_id": "80b59d08-bad6-41dc-927e-eea61d55177a", "sid": "62e3c207-cd3c-46f1-844d-c7e1b5455b68", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4fd597a2-444b-41b4-9689-0535bd5e6798", "old_session_id": "df9b4529-a967-4a68-8d7f-c6cc7f6cbe3c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:30" }, { "isJwt": false, "opbrowserState": "fc31048f-931b-445f-9ef5-3bd0af1b45c3", "deletable": true, "dn": "jansId=403055db-a4ab-44a1-a5fc-f5d85fbe465d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:31", "creationDate": "2022-11-24T09:19:30", "ttl": 0, "sessionState": "76af5ef473a38352e68a9727f10afd018eba04f9558d959880bd42928ef69f8a.a3ef349c-47cd-4b51-8f91-0dc3b49c5c98", "lastUsedAt": "2022-11-24T09:19:31", "permissionGrantedMap": { "permissionGranted": { "4932ff27-c3f5-42d5-8307-cdd05a263b5e": true } }, "outsideSid": "c08c9b59-b6e1-4441-ae26-6686a54f87a8", "id": "403055db-a4ab-44a1-a5fc-f5d85fbe465d", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFMyNTYiCn0.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwKICAgIH0sCiAgICAidXNlcmluZm8iIDogewogICAgICAiZ2l2ZW5fbmFtZSIgOiBudWxsLAogICAgICAiZmFtaWx5X25hbWUiIDogbnVsbAogICAgfQogIH0sCiAgInJlc3BvbnNlX3R5cGUiIDogWyAidG9rZW4iLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIzMWY3N2U0ZS1mMmFlLTQxZDEtOTZhMi0yOWI1YjBiN2UwODQiLAogICJub25jZSIgOiAiNTQ5OTk4OGEtODY0NC00NjRkLWFhZmYtYTZlZGJjOGRlNGY0IiwKICAiY2xpZW50X2lkIiA6ICI0OTMyZmYyNy1jM2Y1LTQyZDUtODMwNy1jZGQwNWEyNjNiNWUiCn0.poYsXRzTEQlyCt3zkanefQEVfF9NV5458jJ49kuHA54", "opbs": "fc31048f-931b-445f-9ef5-3bd0af1b45c3", "response_type": "token id_token", "session_id": "403055db-a4ab-44a1-a5fc-f5d85fbe465d", "nonce": "5499988a-8644-464d-aaff-a6edbc8de4f4", "client_id": "4932ff27-c3f5-42d5-8307-cdd05a263b5e", "sid": "c08c9b59-b6e1-4441-ae26-6686a54f87a8", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "31f77e4e-f2ae-41d1-96a2-29b5b0b7e084", "old_session_id": "64ef20bd-cffb-4e7f-ad7b-739094974a14" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:30" }, { "isJwt": false, "opbrowserState": "ca92acf7-933d-44fd-80db-2489e9134eb3", "deletable": true, "dn": "jansId=8d1102e4-622c-40b3-bc05-99b682cc2ea6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:29", "creationDate": "2022-11-24T09:19:29", "ttl": 0, "sessionState": "f5c8829c82770f1309c21a6f9b04971f7ca406298c8f43bd9f491ac8859bcecf.3344efae-9487-45c8-bf24-34f6f6a1da0f", "lastUsedAt": "2022-11-24T09:19:29", "permissionGrantedMap": { "permissionGranted": { "3bb9ab9e-6c09-42d5-92b8-f6a2017d357f": true } }, "outsideSid": "f11e094f-6b4b-4d41-84a3-2c42456bae9a", "id": "8d1102e4-622c-40b3-bc05-99b682cc2ea6", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFMyNTYiCn0.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwKICAgIH0sCiAgICAidXNlcmluZm8iIDogeyB9CiAgfSwKICAicmVzcG9uc2VfdHlwZSIgOiBbICJ0b2tlbiIsICJpZF90b2tlbiIgXSwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjI4ODkzYjA1LTM0ZTEtNGJkNC05NDQ0LTY3YzY4NTgzOTY1OSIsCiAgIm5vbmNlIiA6ICI5ZWZhZjIxNy01MmU5LTRhNWQtYjEzNy01MGZjMmZjN2VlMjgiLAogICJjbGllbnRfaWQiIDogIjNiYjlhYjllLTZjMDktNDJkNS05MmI4LWY2YTIwMTdkMzU3ZiIKfQ.dTo63dirIKgRNvEVO4H0QDMP2H8xCMN8M2tSPjMfIWk", "opbs": "ca92acf7-933d-44fd-80db-2489e9134eb3", "response_type": "token id_token", "session_id": "8d1102e4-622c-40b3-bc05-99b682cc2ea6", "nonce": "9efaf217-52e9-4a5d-b137-50fc2fc7ee28", "client_id": "3bb9ab9e-6c09-42d5-92b8-f6a2017d357f", "sid": "f11e094f-6b4b-4d41-84a3-2c42456bae9a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "28893b05-34e1-4bd4-9444-67c685839659", "old_session_id": "6c8b508e-f33e-4967-92b4-aef3c574b424" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:29" }, { "isJwt": false, "opbrowserState": "b3e4a149-e35f-4143-b180-84efcc172a87", "deletable": true, "dn": "jansId=a112c984-41b8-4aa5-ae5e-ec5da8e6a102,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:29", "creationDate": "2022-11-24T09:19:29", "ttl": 0, "sessionState": "17daeedbaf8cd7b2a5da9657d7670b09c9f7b3d48386be6ef345fde5a94d7600.23150fb6-3711-445d-b441-5db1521de5b4", "lastUsedAt": "2022-11-24T09:19:29", "permissionGrantedMap": { "permissionGranted": { "89604a19-71ad-40d1-ba48-371ac0fe3476": true } }, "outsideSid": "9d3d465c-2c7f-49ec-a964-5583574544b8", "id": "a112c984-41b8-4aa5-ae5e-ec5da8e6a102", "state": "authenticated", "sessionAttributes": { "opbs": "b3e4a149-e35f-4143-b180-84efcc172a87", "response_type": "code", "session_id": "a112c984-41b8-4aa5-ae5e-ec5da8e6a102", "client_id": "89604a19-71ad-40d1-ba48-371ac0fe3476", "sid": "9d3d465c-2c7f-49ec-a964-5583574544b8", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c2497b9a-bffc-4252-96ed-f1b98897417e", "old_session_id": "59244f45-742e-4e5a-ab0c-7528ad9d929a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:29" }, { "isJwt": false, "opbrowserState": "e57abb9b-736a-43ac-88c5-bdc53596ff2a", "deletable": true, "dn": "jansId=8409172a-ca56-41d1-91e1-2d3fd06f1a92,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:28", "creationDate": "2022-11-24T09:19:27", "ttl": 0, "sessionState": "35990229850a91ca4eb6e6bac7ad7f25e2b134c7cf33a73d0edffe5615572a8b.ff8d361e-18af-49a4-87af-cd17f6a9f720", "lastUsedAt": "2022-11-24T09:19:28", "permissionGrantedMap": { "permissionGranted": { "ed2b2c7d-7f07-4d06-83a9-48e50daf3839": true } }, "outsideSid": "93bb0ae7-b778-48b1-af0f-57f4591d1094", "id": "8409172a-ca56-41d1-91e1-2d3fd06f1a92", "state": "authenticated", "sessionAttributes": { "opbs": "e57abb9b-736a-43ac-88c5-bdc53596ff2a", "response_type": "code", "session_id": "8409172a-ca56-41d1-91e1-2d3fd06f1a92", "nonce": "deb48ed9-1107-4fc7-9f5c-001ed4dc79b8", "client_id": "ed2b2c7d-7f07-4d06-83a9-48e50daf3839", "sid": "93bb0ae7-b778-48b1-af0f-57f4591d1094", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid phone", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a09d8165-6e70-460e-a2a5-4613ee8b7e84", "old_session_id": "0dc5fd91-adc8-4153-b9e9-fba32a0445e9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:27" }, { "isJwt": false, "opbrowserState": "6d3aeece-de9e-4a7d-b95f-82ae5f5e6ecf", "deletable": true, "dn": "jansId=85db169c-2c12-4724-a951-027f7b7016aa,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:27", "creationDate": "2022-11-24T09:19:26", "ttl": 0, "sessionState": "ee88c4e7c43e7c6b936a2ebe069af064dfdb5f2ee770087028b6cdcfbe102047.aefac8fa-7616-485e-9f96-ea6a1b6d9e68", "lastUsedAt": "2022-11-24T09:19:27", "permissionGrantedMap": { "permissionGranted": { "fe8f2e06-7560-4e71-9e69-53739e989f67": true } }, "outsideSid": "94f4013d-f402-4142-84f2-7f69b4e83b27", "id": "85db169c-2c12-4724-a951-027f7b7016aa", "state": "authenticated", "sessionAttributes": { "opbs": "6d3aeece-de9e-4a7d-b95f-82ae5f5e6ecf", "response_type": "code", "session_id": "85db169c-2c12-4724-a951-027f7b7016aa", "nonce": "6eff3426-dd2e-4a88-8bb9-a2f4633d8bae", "client_id": "fe8f2e06-7560-4e71-9e69-53739e989f67", "sid": "94f4013d-f402-4142-84f2-7f69b4e83b27", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "24d7b115-912f-4a38-b2a6-223c440d102f", "old_session_id": "7bbb58df-85ce-49ec-82f8-faa580061cf1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:26" }, { "isJwt": false, "opbrowserState": "b34f0045-40ee-4111-adb5-8eca374fbeab", "deletable": true, "dn": "jansId=9a826c34-ea72-48f4-a531-32f0a855e5b0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:25", "creationDate": "2022-11-24T09:19:25", "ttl": 0, "sessionState": "1fd01d90d8369311897ddce2a7e189a759defbee2811bc60a618ed41ed309196.746c37db-6610-400e-a90f-7d072caacd80", "lastUsedAt": "2022-11-24T09:19:26", "permissionGrantedMap": { "permissionGranted": { "6fb7259b-d4da-44fc-888b-151f902f413d": true } }, "outsideSid": "43209461-e9c6-4a9d-af4d-2431833e1793", "id": "9a826c34-ea72-48f4-a531-32f0a855e5b0", "state": "authenticated", "sessionAttributes": { "opbs": "b34f0045-40ee-4111-adb5-8eca374fbeab", "response_type": "code", "session_id": "9a826c34-ea72-48f4-a531-32f0a855e5b0", "nonce": "51e5bfef-da1e-4dde-af6d-94810abe6b62", "client_id": "6fb7259b-d4da-44fc-888b-151f902f413d", "sid": "43209461-e9c6-4a9d-af4d-2431833e1793", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3d10096d-bbbd-4652-bf17-12dc5917ea01", "old_session_id": "da87dd42-ceaf-4f85-88c8-e92eb64c24c0" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:25" }, { "isJwt": false, "opbrowserState": "ab56fa90-38ef-4512-8051-7a6e0f4b3fbd", "deletable": true, "dn": "jansId=a3070bc6-11c4-486d-ac61-5cb0f510ee49,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:26", "creationDate": "2022-11-24T09:19:25", "ttl": 0, "sessionState": "4bd3f3701847eb768a917915e4ead0033225d2f3f04167dd4b1f2a4e724564d2.69300cfa-779e-483d-b85f-1c55772c8019", "lastUsedAt": "2022-11-24T09:19:26", "permissionGrantedMap": { "permissionGranted": { "12eec083-bcc1-4727-a85a-ab76cb41a67b": true } }, "outsideSid": "dfacd014-9f65-4319-974a-51e78262611a", "id": "a3070bc6-11c4-486d-ac61-5cb0f510ee49", "state": "authenticated", "sessionAttributes": { "opbs": "ab56fa90-38ef-4512-8051-7a6e0f4b3fbd", "response_type": "code", "session_id": "a3070bc6-11c4-486d-ac61-5cb0f510ee49", "client_id": "12eec083-bcc1-4727-a85a-ab76cb41a67b", "sid": "dfacd014-9f65-4319-974a-51e78262611a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3aa7a9d7-9de1-4473-97de-545f4d947515", "old_session_id": "cc9c8822-c93a-462a-8d04-d0fe4c4ad618" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:25" }, { "isJwt": false, "opbrowserState": "b37ea1dc-7e44-466c-bb30-08175f70169a", "deletable": true, "dn": "jansId=408ebec7-1393-44b5-8c33-e927ecf0cf99,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:25", "creationDate": "2022-11-24T09:19:24", "ttl": 0, "sessionState": "d86dcc8308f81e8a4e5aab2d9c8474bf89e72ce7b0f3b530fbeb10f412a89b73.4a5518b9-70b8-4211-9d1b-9982bf1c106b", "lastUsedAt": "2022-11-24T09:19:26", "permissionGrantedMap": { "permissionGranted": { "2e0da4d0-7fd0-4756-b68a-35f8e4d0a56e": true } }, "outsideSid": "c022c6e8-1c9a-47d9-9c2f-ccb21d1fdb26", "id": "408ebec7-1393-44b5-8c33-e927ecf0cf99", "state": "authenticated", "sessionAttributes": { "opbs": "b37ea1dc-7e44-466c-bb30-08175f70169a", "response_type": "code", "session_id": "408ebec7-1393-44b5-8c33-e927ecf0cf99", "nonce": "860b7357-d790-489b-9785-0aeecc5a7efe", "client_id": "2e0da4d0-7fd0-4756-b68a-35f8e4d0a56e", "sid": "c022c6e8-1c9a-47d9-9c2f-ccb21d1fdb26", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile email address phone", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "69533c01-eea7-423f-919c-969f4c7fa825", "old_session_id": "2e405b16-a6e4-4355-b331-ae69539cdf32" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:24" }, { "isJwt": false, "opbrowserState": "33d18024-70b8-447b-8603-fc6861b8e3f5", "deletable": true, "dn": "jansId=abdd27a2-d3c4-48a8-8dc0-3c6270805434,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:23", "creationDate": "2022-11-24T09:19:23", "ttl": 0, "sessionState": "d11d270fde9b74e2ba76bb66590a54762cfca325deb8340655505024fc80e35f.7a06de90-58f4-41df-9661-3f32f115f2e0", "lastUsedAt": "2022-11-24T09:19:24", "permissionGrantedMap": { "permissionGranted": { "7a22d8ee-d55b-438a-9441-fb345aafbefb": true } }, "outsideSid": "3cce6e05-ab87-4903-ad78-ef6c5b663e61", "id": "abdd27a2-d3c4-48a8-8dc0-3c6270805434", "state": "authenticated", "sessionAttributes": { "opbs": "33d18024-70b8-447b-8603-fc6861b8e3f5", "response_type": "code", "session_id": "abdd27a2-d3c4-48a8-8dc0-3c6270805434", "client_id": "7a22d8ee-d55b-438a-9441-fb345aafbefb", "sid": "3cce6e05-ab87-4903-ad78-ef6c5b663e61", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "14f57b64-8935-489b-bd57-378b581db361", "old_session_id": "007c05dc-abed-426b-b13e-e61ac92bf0cf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:23" }, { "isJwt": false, "opbrowserState": "698b9447-d5a1-440a-9a90-a63aee48e77a", "deletable": true, "dn": "jansId=82e41d75-59e9-4381-802b-cdda2212bc73,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:23", "creationDate": "2022-11-24T09:19:22", "ttl": 0, "sessionState": "ecd422aa719683c723dc5fee5716b128d000e5e9037669963a85817be601e6dc.0e7b6149-fbed-4d60-bcec-a7a7508ef623", "lastUsedAt": "2022-11-24T09:19:24", "permissionGrantedMap": { "permissionGranted": { "96696a82-4481-47ad-a74a-59c2121b3075": true } }, "outsideSid": "8428f33a-36b0-4b96-89d0-6171b0912433", "id": "82e41d75-59e9-4381-802b-cdda2212bc73", "state": "authenticated", "sessionAttributes": { "opbs": "698b9447-d5a1-440a-9a90-a63aee48e77a", "response_type": "code", "session_id": "82e41d75-59e9-4381-802b-cdda2212bc73", "nonce": "438c9dc3-8fa5-4445-9cc1-1331188b01b8", "client_id": "96696a82-4481-47ad-a74a-59c2121b3075", "sid": "8428f33a-36b0-4b96-89d0-6171b0912433", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid address", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8adf2c19-1c11-4835-9cbd-f4fe002d3646", "old_session_id": "bef40bfe-5be6-439c-9552-6a15c40d946b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:22" }, { "isJwt": false, "opbrowserState": "04707cb7-af53-4336-a2b2-c0ac6c3e9e26", "deletable": true, "dn": "jansId=3fd6bea1-eef8-44f3-a9ed-1d2770599280,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:21", "creationDate": "2022-11-24T09:19:20", "ttl": 0, "sessionState": "a57155e1382eceaeeb3edb152dfc96d9ec1adb91f68b3600aed439ab8e0e367e.f24a3eba-553a-4b39-b3f0-5023029d1837", "lastUsedAt": "2022-11-24T09:19:21", "permissionGrantedMap": { "permissionGranted": { "6837a9f6-62dc-4291-86a2-ea415e65de21": true } }, "outsideSid": "3f6bc0cc-3538-433d-a96e-98a4740d67b1", "id": "3fd6bea1-eef8-44f3-a9ed-1d2770599280", "state": "authenticated", "sessionAttributes": { "opbs": "04707cb7-af53-4336-a2b2-c0ac6c3e9e26", "response_type": "code", "session_id": "3fd6bea1-eef8-44f3-a9ed-1d2770599280", "client_id": "6837a9f6-62dc-4291-86a2-ea415e65de21", "sid": "3f6bc0cc-3538-433d-a96e-98a4740d67b1", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "45d79595-f807-4417-a7a9-ddcf1cd7856d", "old_session_id": "534de514-afd3-4d0d-b970-441b0e8977d1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:20" }, { "isJwt": false, "opbrowserState": "2197dcb9-386b-4ee5-873a-6b3a8b74da8b", "deletable": true, "dn": "jansId=aa2c0ad4-f85e-4075-84dc-ff131612225d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:21", "creationDate": "2022-11-24T09:19:20", "ttl": 0, "sessionState": "5d883be6747ef3207d0a3e87a7e1c94239c55ee1ab82d962cb6a0be6ab4023ee.c11c6c11-0523-452c-a650-46b9d8fd450a", "lastUsedAt": "2022-11-24T09:19:21", "permissionGrantedMap": { "permissionGranted": { "dc40d483-ebb9-48f5-ab51-f49333604165": true } }, "outsideSid": "4e3a8fdf-5305-4722-a1e8-fa0cd203324a", "id": "aa2c0ad4-f85e-4075-84dc-ff131612225d", "state": "authenticated", "sessionAttributes": { "opbs": "2197dcb9-386b-4ee5-873a-6b3a8b74da8b", "response_type": "token id_token", "session_id": "aa2c0ad4-f85e-4075-84dc-ff131612225d", "nonce": "87fa3c91-22ee-479b-9336-9bf754af6a00", "client_id": "dc40d483-ebb9-48f5-ab51-f49333604165", "sid": "4e3a8fdf-5305-4722-a1e8-fa0cd203324a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "2", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2aed6b3d-4385-420e-88ab-73a1496db4d3", "old_session_id": "8a279910-1be7-47e8-9aff-d1d6ce369186" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:20" }, { "isJwt": false, "opbrowserState": "fdc61a05-77b5-40cc-b4c9-455fae53f58d", "deletable": true, "dn": "jansId=4bdc676e-9ef8-4fe6-a4ae-e0c018b60db7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:16", "creationDate": "2022-11-24T09:19:15", "ttl": 0, "sessionState": "91893d588d393f6b79455a3b026a436b1df82e8a5c4aeec8a210bd56571d2a11.316ae518-bba2-4cc3-82d6-34d0832ec60a", "lastUsedAt": "2022-11-24T09:19:17", "permissionGrantedMap": { "permissionGranted": { "f86f4d51-4630-4e4b-8fcf-47eb59246e16": true } }, "outsideSid": "22d356c1-a3d0-4e9b-a226-60c67557c7ce", "id": "4bdc676e-9ef8-4fe6-a4ae-e0c018b60db7", "state": "authenticated", "sessionAttributes": { "opbs": "fdc61a05-77b5-40cc-b4c9-455fae53f58d", "response_type": "code", "session_id": "4bdc676e-9ef8-4fe6-a4ae-e0c018b60db7", "nonce": "a704ada3-02e4-42db-b5dc-17b057ecdfc4", "client_id": "f86f4d51-4630-4e4b-8fcf-47eb59246e16", "sid": "22d356c1-a3d0-4e9b-a226-60c67557c7ce", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "2", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "cacbafea-a151-4284-8a8d-e1f9a72930e6", "old_session_id": "e53cea02-0cca-43a9-ae3d-7500158b88c4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:15" }, { "isJwt": false, "opbrowserState": "e41dce0f-5d69-4c17-a9dd-29035b54f32f", "deletable": true, "dn": "jansId=9a1fe2a0-03ed-49ad-8918-7272c889f3ab,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:16", "creationDate": "2022-11-24T09:19:15", "ttl": 0, "sessionState": "b78a6fde09d428d04b0b1cb5e6be477662adf573ec7f2b4f337decbbe8c94b91.c7839152-b580-4206-8ca4-da5c9368d818", "lastUsedAt": "2022-11-24T09:19:16", "permissionGrantedMap": { "permissionGranted": { "37c1f1c0-c5d6-473c-b345-78f4e3ac6f2f": true } }, "outsideSid": "5b4ea9b7-e4f5-4707-89a2-62292dfe2557", "id": "9a1fe2a0-03ed-49ad-8918-7272c889f3ab", "state": "authenticated", "sessionAttributes": { "opbs": "e41dce0f-5d69-4c17-a9dd-29035b54f32f", "response_type": "code", "session_id": "9a1fe2a0-03ed-49ad-8918-7272c889f3ab", "client_id": "37c1f1c0-c5d6-473c-b345-78f4e3ac6f2f", "sid": "5b4ea9b7-e4f5-4707-89a2-62292dfe2557", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ada77302-435e-4be6-8e36-c0c619864ae1", "old_session_id": "8b13dff1-d9d7-43ea-b3f5-67ec872753bf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:15" }, { "isJwt": false, "opbrowserState": "e6c1f2bc-789d-4c7e-b5a9-14f077b9497f", "deletable": true, "dn": "jansId=93b94e66-f64d-42ab-a259-75a89c47b06a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:14", "creationDate": "2022-11-24T09:19:14", "ttl": 0, "sessionState": "25c38989754f7b6e2d46524f531dad27d081e3734c913c76a93069e8dcf6b624.5de56ee8-6f99-4d80-b226-d9ed74ed9d1a", "lastUsedAt": "2022-11-24T09:19:14", "permissionGrantedMap": { "permissionGranted": { "01ce5729-b545-4f3a-ae88-5c31ac723d2e": true } }, "outsideSid": "aa404d9b-446c-4dfe-8921-2505900b4858", "id": "93b94e66-f64d-42ab-a259-75a89c47b06a", "state": "authenticated", "sessionAttributes": { "opbs": "e6c1f2bc-789d-4c7e-b5a9-14f077b9497f", "response_type": "id_token", "session_id": "93b94e66-f64d-42ab-a259-75a89c47b06a", "nonce": "ab58853d-f0a3-4d6e-a9fa-6ede8d8c3ef2", "client_id": "01ce5729-b545-4f3a-ae88-5c31ac723d2e", "sid": "aa404d9b-446c-4dfe-8921-2505900b4858", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "616cb9e4-c0e7-4a51-a87e-96077e796653", "old_session_id": "36575a73-1de7-40e3-b6a8-9be41195b373" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:14" }, { "isJwt": false, "opbrowserState": "bc7755ea-f9bd-4610-a60a-629a1d96ac84", "deletable": true, "dn": "jansId=1a99c821-c3bf-470f-ae37-d7341d620476,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:14", "creationDate": "2022-11-24T09:19:14", "ttl": 0, "sessionState": "9d90f33d8e05e55f2dead62d39c12306b7b87a919f235fd62016536ea2bda2a3.d781b27f-1f2d-41fb-823c-2d6ff7e68779", "lastUsedAt": "2022-11-24T09:19:14", "permissionGrantedMap": { "permissionGranted": { "a4c8c896-fbfb-4012-acc8-314fedf966bf": true } }, "outsideSid": "311cc6b4-1900-43ca-9d39-11711bc86da2", "id": "1a99c821-c3bf-470f-ae37-d7341d620476", "state": "authenticated", "sessionAttributes": { "opbs": "bc7755ea-f9bd-4610-a60a-629a1d96ac84", "response_type": "code", "session_id": "1a99c821-c3bf-470f-ae37-d7341d620476", "client_id": "a4c8c896-fbfb-4012-acc8-314fedf966bf", "sid": "311cc6b4-1900-43ca-9d39-11711bc86da2", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "886db636-c622-4a16-b62b-c21d6fc7df54", "old_session_id": "663c23cd-5a46-4059-a0fc-06475e6c4631" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:14" }, { "isJwt": false, "opbrowserState": "733ce98f-4c30-476a-892c-e417dae5ba30", "deletable": true, "dn": "jansId=7fcdd1a7-24c4-4e1f-8243-d9d13d04cd2f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:14", "creationDate": "2022-11-24T09:19:13", "ttl": 0, "sessionState": "55be31283db991f39a2d8f2596a7d94d6644b634237dbb3ff92b5baf7e28a3a7.1b4b1d40-c01c-47e7-8e70-a39d2429afa4", "lastUsedAt": "2022-11-24T09:19:14", "permissionGrantedMap": { "permissionGranted": { "2f819988-aa49-48f4-b8c4-fe8e09edea8a": true } }, "outsideSid": "058a286c-2ff4-440c-99c2-dcd94d543fdc", "id": "7fcdd1a7-24c4-4e1f-8243-d9d13d04cd2f", "state": "authenticated", "sessionAttributes": { "opbs": "733ce98f-4c30-476a-892c-e417dae5ba30", "display": "popup", "response_type": "code", "session_id": "7fcdd1a7-24c4-4e1f-8243-d9d13d04cd2f", "nonce": "0d562e4b-fe0a-4b34-ac52-dbd4bce8c4b3", "client_id": "2f819988-aa49-48f4-b8c4-fe8e09edea8a", "sid": "058a286c-2ff4-440c-99c2-dcd94d543fdc", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "90a386c5-1116-4b24-9338-8e325c2762bd", "old_session_id": "eba971d3-9b34-45f4-88e2-30c183fb2273" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:13" }, { "isJwt": false, "opbrowserState": "57c1827a-4f34-4ef0-b7cf-067a99a3981b", "deletable": true, "dn": "jansId=90f5fea7-19ae-4427-ae6d-a5c8c714921b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:13", "creationDate": "2022-11-24T09:19:13", "ttl": 0, "sessionState": "50a7c6ecb6759615895b5e10f2cc5f2a5aede0290870d2b2d5781cb228d52b05.11f59570-268b-4f2e-b32b-e6aa5d3c4ef6", "lastUsedAt": "2022-11-24T09:19:13", "permissionGrantedMap": { "permissionGranted": { "dd13b051-492b-4b21-a588-d46287252080": true } }, "outsideSid": "4f5c2263-b8ca-4096-a87c-8d75093c1203", "id": "90f5fea7-19ae-4427-ae6d-a5c8c714921b", "state": "authenticated", "sessionAttributes": { "opbs": "57c1827a-4f34-4ef0-b7cf-067a99a3981b", "display": "page", "response_type": "code", "session_id": "90f5fea7-19ae-4427-ae6d-a5c8c714921b", "nonce": "9725579b-99ea-4bba-a188-a77936fd5fcd", "client_id": "dd13b051-492b-4b21-a588-d46287252080", "sid": "4f5c2263-b8ca-4096-a87c-8d75093c1203", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e342d77e-7875-43ff-8519-b556f6e3c8b2", "old_session_id": "6395689a-376e-4a22-b330-2db1d2d00193" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:13" }, { "isJwt": false, "opbrowserState": "71da407e-2e17-47d7-8d5d-338b499a50d6", "deletable": true, "dn": "jansId=370771dd-df8c-40a0-90d3-226b0e6b2db9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:12", "creationDate": "2022-11-24T09:19:11", "ttl": 0, "sessionState": "05e21b8cb8dc936898786f88fd3ebd122effdab5856a7b5ef5a944c39be2aa33.0b6b97dc-6e8f-4f62-b7a4-0f9f3fd65e7f", "lastUsedAt": "2022-11-24T09:19:13", "permissionGrantedMap": { "permissionGranted": { "a58fda47-6983-4094-a282-19a37b08c6a3": true } }, "outsideSid": "af04b738-1698-440a-9cfc-9e85aed1f5a6", "id": "370771dd-df8c-40a0-90d3-226b0e6b2db9", "state": "authenticated", "sessionAttributes": { "opbs": "71da407e-2e17-47d7-8d5d-338b499a50d6", "response_type": "id_token token", "session_id": "370771dd-df8c-40a0-90d3-226b0e6b2db9", "nonce": "69bab67b-31e4-4655-adcf-d3a45d0400c1", "client_id": "a58fda47-6983-4094-a282-19a37b08c6a3", "sid": "af04b738-1698-440a-9cfc-9e85aed1f5a6", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "edc816a6-f252-4d6b-a1a2-ef68cd8125f7", "old_session_id": "ac244b3d-de13-49b0-a9ce-9541908543eb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:11" }, { "isJwt": false, "opbrowserState": "b5949b47-66a8-45e1-ac10-cb64f84ff38e", "deletable": true, "dn": "jansId=6fcb3f3d-83f0-470f-a2e6-e7def9eaa70c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:11", "creationDate": "2022-11-24T09:19:10", "ttl": 0, "sessionState": "1b2f91682bd1003d7d3a72e620e283a24ee530a2ec849ebf061894d7b38bac54.182a57a0-5654-496a-a6f4-615cbcafd8ef", "lastUsedAt": "2022-11-24T09:19:11", "permissionGrantedMap": { "permissionGranted": { "00c59314-3174-4546-ab17-8574793a5618": true } }, "outsideSid": "b78cb3c7-fee9-4fd0-add2-b634ebcedf93", "id": "6fcb3f3d-83f0-470f-a2e6-e7def9eaa70c", "state": "authenticated", "sessionAttributes": { "opbs": "b5949b47-66a8-45e1-ac10-cb64f84ff38e", "response_type": "code", "session_id": "6fcb3f3d-83f0-470f-a2e6-e7def9eaa70c", "client_id": "00c59314-3174-4546-ab17-8574793a5618", "sid": "b78cb3c7-fee9-4fd0-add2-b634ebcedf93", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7e6f355c-2635-4c44-84c8-500d6516bc24", "old_session_id": "ed3bf99c-6ba4-4f52-bc7a-016b7d7d91da" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:10" }, { "isJwt": false, "opbrowserState": "ad4c1d08-8aa8-4246-ae4b-64bcd1890c1a", "deletable": true, "dn": "jansId=586c26cf-6667-457a-b7de-29f8c300e9f5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:10", "creationDate": "2022-11-24T09:19:09", "ttl": 0, "sessionState": "7712f758c6fcce56515b2f39e6d4119840020828d5e2605d2f8a08cb194bc8b1.22525a8c-9819-40b6-8e55-7d4585c26177", "lastUsedAt": "2022-11-24T09:19:10", "permissionGrantedMap": { "permissionGranted": { "8ac88504-65a6-4c7d-aefd-1d4bd5ce9df5": true } }, "outsideSid": "d9e624f9-1afd-46c2-b61d-76211ae02ee8", "id": "586c26cf-6667-457a-b7de-29f8c300e9f5", "state": "authenticated", "sessionAttributes": { "opbs": "ad4c1d08-8aa8-4246-ae4b-64bcd1890c1a", "response_type": "code token", "session_id": "586c26cf-6667-457a-b7de-29f8c300e9f5", "nonce": "dba1e23e-e977-4043-ac06-e2f8e1479713", "client_id": "8ac88504-65a6-4c7d-aefd-1d4bd5ce9df5", "sid": "d9e624f9-1afd-46c2-b61d-76211ae02ee8", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0e3f4206-8d4d-45ea-8744-4bdb90f80734", "old_session_id": "c9bd4dbc-cae9-43fb-998a-a9575b5c03b8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:09" }, { "isJwt": false, "opbrowserState": "830192a4-9e78-4211-891e-916b91baad76", "deletable": true, "dn": "jansId=b3eaf1fe-445f-49c6-8c8c-6ba1d3f8dbbd,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:09", "creationDate": "2022-11-24T09:19:08", "ttl": 0, "sessionState": "dd232e0beb44f00162dab4982b1908304ba979997815f8461571f3937cd8dff2.057477fa-47c0-4a7e-b5ec-6005f0e2e836", "lastUsedAt": "2022-11-24T09:19:09", "permissionGrantedMap": { "permissionGranted": { "c2bfd56c-a97a-4a4c-8656-b2613ac9e66e": true } }, "outsideSid": "9c755f62-7db5-4905-9f89-d4fba8bf17ee", "id": "b3eaf1fe-445f-49c6-8c8c-6ba1d3f8dbbd", "state": "authenticated", "sessionAttributes": { "opbs": "830192a4-9e78-4211-891e-916b91baad76", "response_type": "code", "session_id": "b3eaf1fe-445f-49c6-8c8c-6ba1d3f8dbbd", "client_id": "c2bfd56c-a97a-4a4c-8656-b2613ac9e66e", "sid": "9c755f62-7db5-4905-9f89-d4fba8bf17ee", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "fb67edf0-4dc4-4c92-a2e9-ed074ec22193", "old_session_id": "f45d1f51-7179-4c39-83c5-631fae2160c7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:08" }, { "isJwt": false, "opbrowserState": "88b8c567-3014-45f0-bfb6-7c333cb0b4f6", "deletable": true, "dn": "jansId=782fdb20-1888-4bb6-8235-0abd4fc1e53b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:07", "creationDate": "2022-11-24T09:19:06", "ttl": 0, "sessionState": "22d1a73d2dc5eb2ae996196bc2e878a7ad2634dd9af85a8bd576fffdadd15237.e5e540c7-4a76-4ff3-8cef-bd35928b95f0", "lastUsedAt": "2022-11-24T09:19:07", "permissionGrantedMap": { "permissionGranted": { "9a196223-3b19-4924-b58d-1e6cdf1e7b23": true } }, "outsideSid": "7a27a5c4-6f01-4d25-afc3-1f7338c6f56e", "id": "782fdb20-1888-4bb6-8235-0abd4fc1e53b", "state": "authenticated", "sessionAttributes": { "opbs": "88b8c567-3014-45f0-bfb6-7c333cb0b4f6", "response_type": "code", "session_id": "782fdb20-1888-4bb6-8235-0abd4fc1e53b", "client_id": "9a196223-3b19-4924-b58d-1e6cdf1e7b23", "sid": "7a27a5c4-6f01-4d25-afc3-1f7338c6f56e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a210c587-bf1a-4ec9-ac93-44e338d45c2d", "old_session_id": "c01cb9a9-5336-49eb-b1b3-985885c820f3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:06" }, { "isJwt": false, "opbrowserState": "0b876e93-c80b-42b2-8ab8-35b9024ce861", "deletable": true, "dn": "jansId=10bc91a0-54ce-4b2d-acc5-45440ef012a6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:06", "creationDate": "2022-11-24T09:19:06", "ttl": 0, "sessionState": "26359fe89d3d2cb0e5f43358a198a6be49c34154f419c96c69d2f1e2694ddfb1.93c1a452-5f37-418b-b481-b18a2345b605", "lastUsedAt": "2022-11-24T09:19:07", "permissionGrantedMap": { "permissionGranted": { "3adbf829-ae35-480a-98af-d3236cd5b677": true } }, "outsideSid": "c73c5bb2-3b2f-4d22-bb2a-a43aeba1a493", "id": "10bc91a0-54ce-4b2d-acc5-45440ef012a6", "state": "authenticated", "sessionAttributes": { "opbs": "0b876e93-c80b-42b2-8ab8-35b9024ce861", "response_type": "code", "session_id": "10bc91a0-54ce-4b2d-acc5-45440ef012a6", "client_id": "3adbf829-ae35-480a-98af-d3236cd5b677", "sid": "c73c5bb2-3b2f-4d22-bb2a-a43aeba1a493", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "aa0f1ee9-36a3-4e8e-9971-7fc8480445ff", "old_session_id": "65838fbc-ca54-46ad-af83-18b320c2f764" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:06" }, { "isJwt": false, "opbrowserState": "acaca16e-1d3b-427f-b3b3-616d4de2c99b", "deletable": true, "dn": "jansId=794f8a74-b968-4789-be93-3e2480570e44,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:05", "creationDate": "2022-11-24T09:19:05", "ttl": 0, "sessionState": "dfa015ecd39555a6d3d92d1b87a0149644fd8fbe19f29fdf88f3c6e23e8fc89a.505ab25a-e42a-4f64-9da0-ab3f8513a1a3", "lastUsedAt": "2022-11-24T09:19:05", "permissionGrantedMap": { "permissionGranted": { "905cf660-7327-437e-81e5-9c06eda30332": true } }, "outsideSid": "ef58fd2b-baa0-4277-8fbf-92c95946727c", "id": "794f8a74-b968-4789-be93-3e2480570e44", "state": "authenticated", "sessionAttributes": { "opbs": "acaca16e-1d3b-427f-b3b3-616d4de2c99b", "response_type": "code", "session_id": "794f8a74-b968-4789-be93-3e2480570e44", "client_id": "905cf660-7327-437e-81e5-9c06eda30332", "sid": "ef58fd2b-baa0-4277-8fbf-92c95946727c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "10076819-5b70-47ba-9aec-e4232aabfbde", "old_session_id": "3a697a46-7965-49b5-b965-0f1c7f071675" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:05" }, { "isJwt": false, "opbrowserState": "e59274f4-246e-4277-ae80-89321fc51a4d", "deletable": true, "dn": "jansId=811b76d9-7eb2-4a62-ae68-e7ed005090f5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:05", "creationDate": "2022-11-24T09:19:05", "ttl": 0, "sessionState": "af1e282660afb149ef5758883f327171cbf468c65292523f10cc873cd4cafd4a.95a70bbd-23d3-4ec9-9bfc-43730add6c57", "lastUsedAt": "2022-11-24T09:19:05", "permissionGrantedMap": { "permissionGranted": { "9271dcd1-fda0-4a7a-a228-a8b7455d15f4": true } }, "outsideSid": "055732a7-8e28-4620-bbe4-45f535aee694", "id": "811b76d9-7eb2-4a62-ae68-e7ed005090f5", "state": "authenticated", "sessionAttributes": { "opbs": "e59274f4-246e-4277-ae80-89321fc51a4d", "response_type": "code", "session_id": "811b76d9-7eb2-4a62-ae68-e7ed005090f5", "client_id": "9271dcd1-fda0-4a7a-a228-a8b7455d15f4", "sid": "055732a7-8e28-4620-bbe4-45f535aee694", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e73aba02-ccfe-4331-98a3-0984e2423dde", "old_session_id": "a551980d-246e-432e-8aee-5d6b0662f814" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:05" }, { "isJwt": false, "opbrowserState": "d4f5be03-628b-46b0-9573-3ece45d7636e", "deletable": true, "dn": "jansId=701ddf7f-3227-47c7-a1a6-1eed0221344a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:05", "creationDate": "2022-11-24T09:19:04", "ttl": 0, "sessionState": "147396e5c56af12a8797ec7333762ad933c69e4dc0bd64f3aaab8b66b21b6d6e.be67098c-0c89-4689-b781-1e505df3dc8c", "lastUsedAt": "2022-11-24T09:19:05", "permissionGrantedMap": { "permissionGranted": { "3e6e772c-7a04-452b-89cb-8413dcb3a75e": true } }, "outsideSid": "3ad0074f-f05d-474f-98d4-002830253dfc", "id": "701ddf7f-3227-47c7-a1a6-1eed0221344a", "state": "authenticated", "sessionAttributes": { "opbs": "d4f5be03-628b-46b0-9573-3ece45d7636e", "response_type": "code", "session_id": "701ddf7f-3227-47c7-a1a6-1eed0221344a", "client_id": "3e6e772c-7a04-452b-89cb-8413dcb3a75e", "sid": "3ad0074f-f05d-474f-98d4-002830253dfc", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "462354cc-fb66-4431-93d0-4474a2326469", "old_session_id": "94ad5fc4-1db7-4016-ba98-e5b331e3e3d1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:04" }, { "isJwt": false, "opbrowserState": "a394de49-c622-409e-b0a9-b11a542615d7", "deletable": true, "dn": "jansId=1dca3cd4-7174-4817-aee6-65f163f8b3af,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:04", "creationDate": "2022-11-24T09:19:03", "ttl": 0, "sessionState": "bffcab4d2621fa7e5e289db6fa98aebc5b2bdc76aaeb1e293c8d86c0fdbcfdfe.7f078181-6744-4433-b3ac-cf554dc74610", "lastUsedAt": "2022-11-24T09:19:04", "permissionGrantedMap": { "permissionGranted": { "2292e26e-c6f7-439a-b5c5-a3364bd9d8dd": true } }, "outsideSid": "0a1b0404-5f87-4fb0-bd8e-1b7ad44b3845", "id": "1dca3cd4-7174-4817-aee6-65f163f8b3af", "state": "authenticated", "sessionAttributes": { "opbs": "a394de49-c622-409e-b0a9-b11a542615d7", "response_type": "code", "session_id": "1dca3cd4-7174-4817-aee6-65f163f8b3af", "client_id": "2292e26e-c6f7-439a-b5c5-a3364bd9d8dd", "sid": "0a1b0404-5f87-4fb0-bd8e-1b7ad44b3845", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9b65424c-abe6-4993-8b5d-40f8e9fa0b30", "old_session_id": "68949fda-1087-4373-b6b3-801d4083d34b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:03" }, { "isJwt": false, "opbrowserState": "d0a0f305-8ffd-435b-b925-2c8b5abd4097", "deletable": true, "dn": "jansId=93391949-a776-4383-b7e6-44c5fac17fa4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:04", "creationDate": "2022-11-24T09:19:03", "ttl": 0, "sessionState": "e7adebd30ac63a7269f2380d91815c6e164f33ac8d13268923909aa1cc0616af.eb01f674-33f5-47d3-8cef-4d6c092f694a", "lastUsedAt": "2022-11-24T09:19:04", "permissionGrantedMap": { "permissionGranted": { "b3f427dc-0185-4a2f-a895-6bb1b0f57cc7": true } }, "outsideSid": "085b8fe6-92f8-4174-b591-b1503b78a32b", "id": "93391949-a776-4383-b7e6-44c5fac17fa4", "state": "authenticated", "sessionAttributes": { "opbs": "d0a0f305-8ffd-435b-b925-2c8b5abd4097", "response_type": "code", "session_id": "93391949-a776-4383-b7e6-44c5fac17fa4", "client_id": "b3f427dc-0185-4a2f-a895-6bb1b0f57cc7", "sid": "085b8fe6-92f8-4174-b591-b1503b78a32b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7ddf8b70-bfb6-4bd9-a2b9-c47036a07e54", "old_session_id": "ba81155d-ce49-4e6f-8b8a-78ce6417663a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:03" }, { "isJwt": false, "opbrowserState": "f523216f-01f4-4f9a-9cd2-9e3a2915ca8b", "deletable": true, "dn": "jansId=1d2dda52-bc88-4503-a725-692f71bc5427,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:02", "creationDate": "2022-11-24T09:19:01", "ttl": 0, "sessionState": "31431bfa56e9e62115c2096e8b394a3c69a8d7c564661bb2f654970a37b91318.72838390-7830-4f67-8331-6aca0ecc2451", "lastUsedAt": "2022-11-24T09:19:02", "permissionGrantedMap": { "permissionGranted": { "217e4535-92b4-4993-8cfc-b4d18592ccfa": true } }, "outsideSid": "d409612b-7ede-40fa-929d-475669a5521e", "id": "1d2dda52-bc88-4503-a725-692f71bc5427", "state": "authenticated", "sessionAttributes": { "opbs": "f523216f-01f4-4f9a-9cd2-9e3a2915ca8b", "response_type": "code", "session_id": "1d2dda52-bc88-4503-a725-692f71bc5427", "client_id": "217e4535-92b4-4993-8cfc-b4d18592ccfa", "sid": "d409612b-7ede-40fa-929d-475669a5521e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "eb6e7a34-5f4d-4ed7-ab35-3f6031963cdf", "old_session_id": "14fc03d2-5e77-4768-a3ef-423ba7c50247" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:01" }, { "isJwt": false, "opbrowserState": "b30b71e6-27c7-4e3a-8b73-09f045a0cc59", "deletable": true, "dn": "jansId=b93ccfc1-b9f8-4ebd-8d4e-ef702632f7ba,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:02", "creationDate": "2022-11-24T09:19:01", "ttl": 0, "sessionState": "0770fdcd8b56afae45a5feb4da0ce5a8b7269e25c6e99a847f7e7477449e4437.4fa4c9ad-c944-4f97-9341-3c295c631742", "lastUsedAt": "2022-11-24T09:19:02", "permissionGrantedMap": { "permissionGranted": { "c559b5b8-d8a1-4b42-90f8-61e4c5f177dc": true } }, "outsideSid": "b6359a42-09b4-4734-b4de-b56c5e2400c3", "id": "b93ccfc1-b9f8-4ebd-8d4e-ef702632f7ba", "state": "authenticated", "sessionAttributes": { "opbs": "b30b71e6-27c7-4e3a-8b73-09f045a0cc59", "response_type": "code", "session_id": "b93ccfc1-b9f8-4ebd-8d4e-ef702632f7ba", "client_id": "c559b5b8-d8a1-4b42-90f8-61e4c5f177dc", "sid": "b6359a42-09b4-4734-b4de-b56c5e2400c3", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1b9e58a2-3ab9-44ea-adb0-5323b472e70f", "old_session_id": "b3f0233a-e7a1-44ca-890a-36bcb1598174" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:01" }, { "isJwt": false, "opbrowserState": "a299b772-4fc9-43d1-a706-54bd26e44b34", "deletable": true, "dn": "jansId=631f2861-6bf7-41f9-9b9e-c917a7a3bd29,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:01", "creationDate": "2022-11-24T09:19:00", "ttl": 0, "sessionState": "9b164dc00618be6f9a5e4904de0f88c397e2e55b4c9bfba70ca65d62c5d2eee9.d7a09b83-e7c3-4c2d-bc1b-a6bc7ca89a48", "lastUsedAt": "2022-11-24T09:19:01", "permissionGrantedMap": { "permissionGranted": { "53394b4e-e631-4c3b-8f97-8dbacafed432": true } }, "outsideSid": "e57e847e-97c4-471a-b993-71ee9e89ea30", "id": "631f2861-6bf7-41f9-9b9e-c917a7a3bd29", "state": "authenticated", "sessionAttributes": { "opbs": "a299b772-4fc9-43d1-a706-54bd26e44b34", "response_type": "code", "session_id": "631f2861-6bf7-41f9-9b9e-c917a7a3bd29", "client_id": "53394b4e-e631-4c3b-8f97-8dbacafed432", "sid": "e57e847e-97c4-471a-b993-71ee9e89ea30", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7329a011-ac70-4079-85b0-ed246d15a163", "old_session_id": "1428b459-a2f0-40ef-a253-9385ae2c602c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:00" }, { "isJwt": false, "opbrowserState": "95334c2a-571c-48a9-919f-d3f1a5f1ef8e", "deletable": true, "dn": "jansId=44995c15-e5cf-49dc-827a-732affb60e17,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:00", "creationDate": "2022-11-24T09:19:00", "ttl": 0, "sessionState": "28bfbe4867b39098cb10837779f7e56ba8bbf7594a71905265d554eaa16472cb.ff3e2508-b5c6-47c5-9c5b-4fa1dba6f3f3", "lastUsedAt": "2022-11-24T09:19:00", "permissionGrantedMap": { "permissionGranted": { "f671052f-a689-4334-89d0-dfe44e70bb93": true } }, "outsideSid": "15742d1b-122b-45df-a824-069d7f9b9455", "id": "44995c15-e5cf-49dc-827a-732affb60e17", "state": "authenticated", "sessionAttributes": { "opbs": "95334c2a-571c-48a9-919f-d3f1a5f1ef8e", "response_type": "code", "session_id": "44995c15-e5cf-49dc-827a-732affb60e17", "client_id": "f671052f-a689-4334-89d0-dfe44e70bb93", "sid": "15742d1b-122b-45df-a824-069d7f9b9455", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5692e579-9f82-437f-826a-a8089fe3b394", "old_session_id": "b427aa88-28c1-4290-9538-ca55c081db24" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:19:00" }, { "isJwt": false, "opbrowserState": "b7a42ff5-23d1-4ff4-99d7-b54b7be13827", "deletable": true, "dn": "jansId=1629ba3c-9778-43e7-99e9-6e5c19715950,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:00", "creationDate": "2022-11-24T09:18:59", "ttl": 0, "sessionState": "6adbefceabaf065d54b41cb9f24cb157cee730dcbc1dd95523b58e0816316cc8.57455a71-ce79-44e3-bc23-3e3a247d1b10", "lastUsedAt": "2022-11-24T09:19:00", "permissionGrantedMap": { "permissionGranted": { "3f28bb17-6d3e-4a3d-9168-fedeef8ea977": true } }, "outsideSid": "80d03b90-872a-431e-b9e8-1cd5252d9996", "id": "1629ba3c-9778-43e7-99e9-6e5c19715950", "state": "authenticated", "sessionAttributes": { "opbs": "b7a42ff5-23d1-4ff4-99d7-b54b7be13827", "response_type": "code", "session_id": "1629ba3c-9778-43e7-99e9-6e5c19715950", "client_id": "3f28bb17-6d3e-4a3d-9168-fedeef8ea977", "sid": "80d03b90-872a-431e-b9e8-1cd5252d9996", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "aaf6a59d-7c53-4db1-a7d4-6612d27bf76f", "old_session_id": "3d931c00-ff56-4336-9716-617d630f458b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:59" }, { "isJwt": false, "opbrowserState": "c1cd9e8a-af46-4157-adb0-6e4e993e0b6f", "deletable": true, "dn": "jansId=acc20186-462a-4e7e-a7af-f1763076783e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:19:00", "creationDate": "2022-11-24T09:18:59", "ttl": 0, "sessionState": "0cc0ab8a6afe561b7be13434c46004ae32cc9d2563adad45baccf019a7e8508d.dfcb7e2f-239a-4dee-90ee-9055c38283c9", "lastUsedAt": "2022-11-24T09:19:00", "permissionGrantedMap": { "permissionGranted": { "12644e42-f46f-4232-9d75-ea404b66e1ee": true } }, "outsideSid": "1a6bd0df-00f7-4d02-acf5-77768690fa99", "id": "acc20186-462a-4e7e-a7af-f1763076783e", "state": "authenticated", "sessionAttributes": { "opbs": "c1cd9e8a-af46-4157-adb0-6e4e993e0b6f", "response_type": "code", "session_id": "acc20186-462a-4e7e-a7af-f1763076783e", "client_id": "12644e42-f46f-4232-9d75-ea404b66e1ee", "sid": "1a6bd0df-00f7-4d02-acf5-77768690fa99", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8ab2c3a8-b1a0-4914-a326-b91725502ead", "old_session_id": "08100297-aee9-44e5-a4a0-535beef1f806" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:59" }, { "isJwt": false, "opbrowserState": "0dcef0d2-b1b3-435e-80c3-43072400b885", "deletable": true, "dn": "jansId=7a35e54f-f42d-49c8-b4a5-89e9193718e5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:58", "creationDate": "2022-11-24T09:18:58", "ttl": 0, "sessionState": "24202f4fe98306a69e6e64bbffb77ba260ea24515fd44c88c8e6bb4b246eab4b.34c93af2-1c39-4742-b788-207dfc6a0d72", "lastUsedAt": "2022-11-24T09:18:58", "permissionGrantedMap": { "permissionGranted": { "59e85764-7db8-481d-8b4f-2fdf8a35837f": true } }, "outsideSid": "88f2d941-5a4c-4411-af68-3ad7725094f9", "id": "7a35e54f-f42d-49c8-b4a5-89e9193718e5", "state": "authenticated", "sessionAttributes": { "opbs": "0dcef0d2-b1b3-435e-80c3-43072400b885", "response_type": "code id_token", "session_id": "7a35e54f-f42d-49c8-b4a5-89e9193718e5", "nonce": "f7ae0c98-2f43-472c-a964-a9e6adc4ef8f", "client_id": "59e85764-7db8-481d-8b4f-2fdf8a35837f", "sid": "88f2d941-5a4c-4411-af68-3ad7725094f9", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "82fc3b48-3fdc-4701-8fc4-e6ab0bd569cf", "old_session_id": "ff64895d-c1e4-4a27-9de0-cab9f9f4be37" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:58" }, { "isJwt": false, "opbrowserState": "1097bc3c-539d-4535-a95a-814f8c7d355a", "deletable": true, "dn": "jansId=95ac6ce2-18f2-4bc2-a603-837fc8eedf6e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:58", "creationDate": "2022-11-24T09:18:58", "ttl": 0, "sessionState": "b46993afb3579cf2b69cf43d0c696209c2eb7eeed7c6563d8cc27e23947cca7a.57d11bbc-fba8-4270-9160-49751c7fc2ef", "lastUsedAt": "2022-11-24T09:18:58", "permissionGrantedMap": { "permissionGranted": { "41c2e19e-3f07-4554-a285-40ed5b02694c": true } }, "outsideSid": "30bb51d2-f812-4832-84d1-b6a67d78ac5e", "id": "95ac6ce2-18f2-4bc2-a603-837fc8eedf6e", "state": "authenticated", "sessionAttributes": { "opbs": "1097bc3c-539d-4535-a95a-814f8c7d355a", "response_type": "token id_token", "session_id": "95ac6ce2-18f2-4bc2-a603-837fc8eedf6e", "nonce": "e5076a7f-6866-4a2c-9989-c83ee7fb7dc8", "client_id": "41c2e19e-3f07-4554-a285-40ed5b02694c", "sid": "30bb51d2-f812-4832-84d1-b6a67d78ac5e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2a3c8eae-b76a-42c6-bac9-b45af3cf7a71", "old_session_id": "35b03d56-a1d4-44c8-a070-a875e2c663a5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:58" }, { "isJwt": false, "opbrowserState": "c3f3f069-572b-4b58-802a-82e9cb9086e8", "deletable": true, "dn": "jansId=b7576531-c8c1-4b31-b7a7-b16944e23b51,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:58", "creationDate": "2022-11-24T09:18:58", "ttl": 0, "sessionState": "307f2e36930e9add3add5e0265de4285e358c578a542d971ad4c9e788a93f896.e2588ff1-afd2-4e08-af5b-f7c0d156f85f", "lastUsedAt": "2022-11-24T09:18:58", "permissionGrantedMap": { "permissionGranted": { "109321ea-66ca-4fdc-9ac6-b34d07485e1d": true } }, "outsideSid": "b2e76c66-dd20-4f87-945c-7aa94b4e1ff5", "id": "b7576531-c8c1-4b31-b7a7-b16944e23b51", "state": "authenticated", "sessionAttributes": { "opbs": "c3f3f069-572b-4b58-802a-82e9cb9086e8", "response_type": "code", "session_id": "b7576531-c8c1-4b31-b7a7-b16944e23b51", "client_id": "109321ea-66ca-4fdc-9ac6-b34d07485e1d", "sid": "b2e76c66-dd20-4f87-945c-7aa94b4e1ff5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9479c08b-5316-489a-9024-9718fb08bf8c", "old_session_id": "50e7b1e2-84e2-4588-88e5-ff7bc99dbd1e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:58" }, { "isJwt": false, "opbrowserState": "d7981e05-1881-425f-ace1-acc029ec78be", "deletable": true, "dn": "jansId=1c12adf5-170f-40f1-a09c-8df6d1d5ffb7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:57", "creationDate": "2022-11-24T09:18:57", "ttl": 0, "sessionState": "e0962fff5692bf9d45b0591616128c50383faf08a6b26959741e72a8a91eab04.7dd23823-e9f3-4653-aeb5-f8473b2316be", "lastUsedAt": "2022-11-24T09:18:57", "permissionGrantedMap": { "permissionGranted": { "2f112825-42cf-4208-b30c-224e29edf26b": true } }, "outsideSid": "63aa731a-325e-4da3-b590-b2d9eaa3042f", "id": "1c12adf5-170f-40f1-a09c-8df6d1d5ffb7", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFMyNTYiCn0.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiNjU4MDFmOGQtY2QyMC00M2M2LWFmODAtNjMyODg2MjMwNDI4IiwKICAibm9uY2UiIDogIjQ0Nzk3ZWYzLWNiZTUtNGZkZS1iNzg0LTBkYjc2NjM3NzgxOSIsCiAgImNsaWVudF9pZCIgOiAiMmYxMTI4MjUtNDJjZi00MjA4LWIzMGMtMjI0ZTI5ZWRmMjZiIgp9.BwiIKwDO0SBUxecUNeQII7Y7Kb5IxNBOLL5B8z7S668", "opbs": "d7981e05-1881-425f-ace1-acc029ec78be", "response_type": "token id_token", "session_id": "1c12adf5-170f-40f1-a09c-8df6d1d5ffb7", "nonce": "44797ef3-cbe5-4fde-b784-0db766377819", "client_id": "2f112825-42cf-4208-b30c-224e29edf26b", "sid": "63aa731a-325e-4da3-b590-b2d9eaa3042f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "65801f8d-cd20-43c6-af80-632886230428", "old_session_id": "2e505382-f363-4604-a01d-c021903cfe81" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:57" }, { "isJwt": false, "opbrowserState": "efc1cd54-68f9-4332-862f-372ab25b5949", "deletable": true, "dn": "jansId=2b1beabb-e6f2-4d7b-a35d-18d1fdf4df68,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:57", "creationDate": "2022-11-24T09:18:56", "ttl": 0, "sessionState": "13903a300d93e75b281f573cf3448d08e19558197809624f6d0b604c2c0add3e.194c5e12-ab6c-4384-99d9-841525931af1", "lastUsedAt": "2022-11-24T09:18:57", "permissionGrantedMap": { "permissionGranted": { "f29eb47f-6bf7-4081-8441-1d29009e6950": true } }, "outsideSid": "d794215b-bf43-4562-96c6-6079d17a5c17", "id": "2b1beabb-e6f2-4d7b-a35d-18d1fdf4df68", "state": "authenticated", "sessionAttributes": { "opbs": "efc1cd54-68f9-4332-862f-372ab25b5949", "response_type": "code", "session_id": "2b1beabb-e6f2-4d7b-a35d-18d1fdf4df68", "client_id": "f29eb47f-6bf7-4081-8441-1d29009e6950", "sid": "d794215b-bf43-4562-96c6-6079d17a5c17", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "380b5f5a-77c6-40ed-9d85-f7ce9f71d31f", "old_session_id": "4540aa32-1f05-4f4f-9c2c-82fe963e69f3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:56" }, { "isJwt": false, "opbrowserState": "d829ab6f-d90e-4ae2-a6d4-3a2ce3436c9e", "deletable": true, "dn": "jansId=51dcd68c-cd84-489f-8817-a1f038f04a30,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:57", "creationDate": "2022-11-24T09:18:56", "ttl": 0, "sessionState": "14ef24253f1e5cf3416aa4b6d4a29c8a37f69af5938680f862e90a6c56765514.bf027776-de20-4a5a-b2e0-2c0f79f929ea", "lastUsedAt": "2022-11-24T09:18:57", "permissionGrantedMap": { "permissionGranted": { "b1187d9f-753e-48eb-8dbd-a09937a36f83": true } }, "outsideSid": "a0072a70-7b42-41b1-8d53-652719cf3811", "id": "51dcd68c-cd84-489f-8817-a1f038f04a30", "state": "authenticated", "sessionAttributes": { "opbs": "d829ab6f-d90e-4ae2-a6d4-3a2ce3436c9e", "response_type": "code id_token", "session_id": "51dcd68c-cd84-489f-8817-a1f038f04a30", "nonce": "08fa738b-9788-4103-9ad9-0723b44fe948", "client_id": "b1187d9f-753e-48eb-8dbd-a09937a36f83", "sid": "a0072a70-7b42-41b1-8d53-652719cf3811", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2ec3b7ef-64b0-4f7e-ae25-f5a5073ed0f7", "old_session_id": "72f4b104-fbb5-47bc-a361-9aa793124bcf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:56" }, { "isJwt": false, "opbrowserState": "caba3003-fceb-4695-9c06-ea80837bf2c1", "deletable": true, "dn": "jansId=a2e82af0-1799-421b-8b51-2ced084234a8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:56", "creationDate": "2022-11-24T09:18:55", "ttl": 0, "sessionState": "17a872fb33c5611211a561516ffa0a3fb753e6c59de3a869d04c265ca56f05b2.95974de9-c9af-4169-98f4-23937bb06530", "lastUsedAt": "2022-11-24T09:18:56", "permissionGrantedMap": { "permissionGranted": { "b2c5b147-702a-42b1-91fc-53adc5b8f041": true } }, "outsideSid": "2f415567-2fd0-4533-935f-176a3ef189da", "id": "a2e82af0-1799-421b-8b51-2ced084234a8", "state": "authenticated", "sessionAttributes": { "opbs": "caba3003-fceb-4695-9c06-ea80837bf2c1", "response_type": "code", "session_id": "a2e82af0-1799-421b-8b51-2ced084234a8", "client_id": "b2c5b147-702a-42b1-91fc-53adc5b8f041", "sid": "2f415567-2fd0-4533-935f-176a3ef189da", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "decaad38-2fed-48fe-8e92-517ec15914f0", "old_session_id": "d6f1a39c-cb88-45a8-b2bb-f1ca959b5dfe" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:55" }, { "isJwt": false, "opbrowserState": "bd220f6e-6316-45cf-a65e-6f8792beecbb", "deletable": true, "dn": "jansId=4479ca74-8d0f-4368-b60b-69cc734c9829,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:54", "creationDate": "2022-11-24T09:18:54", "ttl": 0, "sessionState": "4a269950bf8c89cc4dacc0df23bfaeb8831ef2f3df51b45804fdbc51cce96af7.bd91e605-372f-404d-8852-6557e48978c6", "lastUsedAt": "2022-11-24T09:18:54", "permissionGrantedMap": { }, "outsideSid": "a34fa3b5-b32f-48ac-8afa-cce7faae5ba7", "id": "4479ca74-8d0f-4368-b60b-69cc734c9829", "state": "authenticated", "sessionAttributes": { "opbs": "bd220f6e-6316-45cf-a65e-6f8792beecbb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:54" }, { "isJwt": false, "opbrowserState": "b47f24de-07ae-4a04-99d8-2228a18d6d53", "deletable": true, "dn": "jansId=21a7b3b1-68d9-45b4-9179-45579cd3ea63,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:55", "creationDate": "2022-11-24T09:18:54", "ttl": 0, "sessionState": "ce41137c60d867c413ba568ba1524bc2e42486f46fad30283932847fce064cc4.c87ede33-efc9-4bfb-805f-8880e9628edd", "lastUsedAt": "2022-11-24T09:18:55", "permissionGrantedMap": { "permissionGranted": { "3699989d-6f7c-44b1-90ca-82ff108d7e8c": true } }, "outsideSid": "855b8b1f-97bb-47ab-9bae-b59bc82cf38d", "id": "21a7b3b1-68d9-45b4-9179-45579cd3ea63", "state": "authenticated", "sessionAttributes": { "opbs": "b47f24de-07ae-4a04-99d8-2228a18d6d53", "response_type": "code", "session_id": "21a7b3b1-68d9-45b4-9179-45579cd3ea63", "client_id": "3699989d-6f7c-44b1-90ca-82ff108d7e8c", "sid": "855b8b1f-97bb-47ab-9bae-b59bc82cf38d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c40db521-d3ed-489a-9951-29edfb5d9bcc", "old_session_id": "754f6708-af42-452f-a7c7-1e34348b6dfa" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:54" }, { "isJwt": false, "opbrowserState": "dd85eac4-966a-4de3-9307-00859c5f9a81", "deletable": true, "dn": "jansId=0cd755cb-17d9-4576-92b7-153993221222,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:53", "creationDate": "2022-11-24T09:18:53", "ttl": 0, "sessionState": "5fffab85a3e9c495889b7bd879b252cfb10f6cf2083de18489fb77db76e6b52e.fb320e3d-b57f-4eab-98f1-47404cabd70b", "lastUsedAt": "2022-11-24T09:18:53", "permissionGrantedMap": { "permissionGranted": { "65143d86-35d5-408a-83c6-b0802b3782a9": true } }, "outsideSid": "baa85ffc-39ec-4f9d-9dd4-51b023d6c5d9", "id": "0cd755cb-17d9-4576-92b7-153993221222", "state": "authenticated", "sessionAttributes": { "opbs": "dd85eac4-966a-4de3-9307-00859c5f9a81", "response_type": "id_token", "session_id": "0cd755cb-17d9-4576-92b7-153993221222", "nonce": "a1c8ab1a-c477-4507-b4b5-6260e048a137", "client_id": "65143d86-35d5-408a-83c6-b0802b3782a9", "sid": "baa85ffc-39ec-4f9d-9dd4-51b023d6c5d9", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "47ee7288-2105-4f5d-9e59-bb6429525d54", "old_session_id": "31167686-b13b-4fde-b3ef-b349e712b145" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:53" }, { "isJwt": false, "opbrowserState": "b0a7fdce-d1ba-4414-bc8f-95042e17a28e", "deletable": true, "dn": "jansId=394738a1-323e-4851-a1b0-836535e0f3d5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:53", "creationDate": "2022-11-24T09:18:53", "ttl": 0, "sessionState": "e422081179feaf9d7ec2a830d6368590902c29719c43055fb8a1f1f63eb21d5e.4182876c-8e4f-40fe-9e68-6f3da5895488", "lastUsedAt": "2022-11-24T09:18:53", "permissionGrantedMap": { "permissionGranted": { "4826fe20-4a22-4927-bb5f-faae578a5d6b": true } }, "outsideSid": "41525641-8092-40b8-a68c-abc3b8e8519b", "id": "394738a1-323e-4851-a1b0-836535e0f3d5", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFMyNTYiCn0.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJlbWFpbCIgOiBudWxsLAogICAgICAicGljdHVyZSIgOiBudWxsCiAgICB9LAogICAgInVzZXJpbmZvIiA6IHsKICAgICAgImVtYWlsIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IG51bGwKICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiYWQ3MTVlNmItMzM2Zi00OWMxLTkxYWYtNDlhMDAwZjgxODBkIiwKICAibm9uY2UiIDogImQzYzM4OGY3LWNmMmUtNDYxMS04MDNiLTA5NGQ0NTczMzEyMCIsCiAgImNsaWVudF9pZCIgOiAiNDgyNmZlMjAtNGEyMi00OTI3LWJiNWYtZmFhZTU3OGE1ZDZiIgp9.da-bpv0KPxNAnVZmSbXkBAv3pMsIkX1sJeq1sF51VGc", "opbs": "b0a7fdce-d1ba-4414-bc8f-95042e17a28e", "response_type": "token id_token", "session_id": "394738a1-323e-4851-a1b0-836535e0f3d5", "nonce": "d3c388f7-cf2e-4611-803b-094d45733120", "client_id": "4826fe20-4a22-4927-bb5f-faae578a5d6b", "sid": "41525641-8092-40b8-a68c-abc3b8e8519b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ad715e6b-336f-49c1-91af-49a000f8180d", "old_session_id": "b813d6ed-cce1-4f83-a04c-2574b6fafca8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:53" }, { "isJwt": false, "opbrowserState": "b425e5db-0d50-4200-887d-ab1712708fec", "deletable": true, "dn": "jansId=0d3ef4d5-9500-4366-b1c0-995610f75294,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:53", "creationDate": "2022-11-24T09:18:53", "ttl": 0, "sessionState": "c08ad6ca961259052e33a42b7f1833cd7df47c483ed4c1794852cedc669e4038.8a565411-3086-4c86-8ba9-27afd11d420c", "lastUsedAt": "2022-11-24T09:18:53", "permissionGrantedMap": { "permissionGranted": { "ed3a9bff-2614-4827-aed0-f8f261513862": true } }, "outsideSid": "c072cf78-274e-4f3d-9a84-f12adf18d8c3", "id": "0d3ef4d5-9500-4366-b1c0-995610f75294", "state": "authenticated", "sessionAttributes": { "opbs": "b425e5db-0d50-4200-887d-ab1712708fec", "response_type": "code", "session_id": "0d3ef4d5-9500-4366-b1c0-995610f75294", "client_id": "ed3a9bff-2614-4827-aed0-f8f261513862", "sid": "c072cf78-274e-4f3d-9a84-f12adf18d8c3", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8e252204-e066-4d01-a3f7-73b46b157253", "old_session_id": "6f959551-e173-43a0-895d-61d4883bce71" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:53" }, { "isJwt": false, "opbrowserState": "d5fc605f-2eac-4f37-a1fb-72e48398a46d", "deletable": true, "dn": "jansId=24d73df2-814b-4694-ad04-7870295947f3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:52", "creationDate": "2022-11-24T09:18:51", "ttl": 0, "sessionState": "c5d245ad4b9e15b2c6a4a9a0779dfb202573351c035b3c1562774784b7129799.493a6276-64d8-4a7e-bd8c-3d0488a28483", "lastUsedAt": "2022-11-24T09:18:52", "permissionGrantedMap": { "permissionGranted": { "3638d64e-376a-4071-9323-55ce8325af8d": true } }, "outsideSid": "c1836af6-dedb-4e54-b335-4221ddc74fcb", "id": "24d73df2-814b-4694-ad04-7870295947f3", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFMyNTYiCn0.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfQogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfQogICAgfQogIH0sCiAgInJlc3BvbnNlX3R5cGUiIDogWyAidG9rZW4iLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJiNDc4NWVjMy05NmE3LTQ2Y2EtOWMyZi1mYWNjNjIzMjFjZDciLAogICJub25jZSIgOiAiY2VjOGFhYjQtMzBkZS00ZjM0LWIwODAtYWFmZGQwZTk3ZmYyIiwKICAiY2xpZW50X2lkIiA6ICIzNjM4ZDY0ZS0zNzZhLTQwNzEtOTMyMy01NWNlODMyNWFmOGQiCn0.sskPEXLZe_sceSXOAPHGhxpjfrYX-kyI-kAEySU-SHM", "opbs": "d5fc605f-2eac-4f37-a1fb-72e48398a46d", "response_type": "token id_token", "session_id": "24d73df2-814b-4694-ad04-7870295947f3", "nonce": "cec8aab4-30de-4f34-b080-aafdd0e97ff2", "client_id": "3638d64e-376a-4071-9323-55ce8325af8d", "sid": "c1836af6-dedb-4e54-b335-4221ddc74fcb", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b4785ec3-96a7-46ca-9c2f-facc62321cd7", "old_session_id": "92ce0a62-429a-4375-a94e-07f1ef3b3e81" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:51" }, { "isJwt": false, "opbrowserState": "875ead30-819f-4af3-bdf9-6d4a810f677f", "deletable": true, "dn": "jansId=78d6c3ce-16a0-4844-852e-743fd0b86a5a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:52", "creationDate": "2022-11-24T09:18:51", "ttl": 0, "sessionState": "3bf9769d8fb1291f64a666a4d4d33aa638ba4ed5f264e9f12e32f0c1d787dc14.d5f4e8ff-624d-42af-8002-2adc08bbcada", "lastUsedAt": "2022-11-24T09:18:52", "permissionGrantedMap": { "permissionGranted": { "8ca41d43-b116-4c70-800e-3413fbf2b15a": true } }, "outsideSid": "2dbd485a-06da-4e19-9963-4c583168b477", "id": "78d6c3ce-16a0-4844-852e-743fd0b86a5a", "state": "authenticated", "sessionAttributes": { "opbs": "875ead30-819f-4af3-bdf9-6d4a810f677f", "response_type": "code", "session_id": "78d6c3ce-16a0-4844-852e-743fd0b86a5a", "client_id": "8ca41d43-b116-4c70-800e-3413fbf2b15a", "sid": "2dbd485a-06da-4e19-9963-4c583168b477", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ef6067d3-510e-4d9b-bf5f-d96bb8bd4cb5", "old_session_id": "dc893455-c215-464b-bb43-3586b3843058" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:51" }, { "isJwt": false, "opbrowserState": "3dff82e7-b3f6-4add-923f-118550f379b6", "deletable": true, "dn": "jansId=c006f481-fd8b-4a65-9fc9-b1e134a70695,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:50", "creationDate": "2022-11-24T09:18:50", "ttl": 0, "sessionState": "25ccda3fd5b46cf10df3b67a989922238170c500833cf410d14b49e797333917.80b653fa-d755-40a8-a086-f4778c9b6662", "lastUsedAt": "2022-11-24T09:18:50", "permissionGrantedMap": { "permissionGranted": { "f4526970-b2ee-4286-b859-bb5a3a0f3326": true } }, "outsideSid": "6f39134a-6b41-41e8-8b5c-49669aef8f74", "id": "c006f481-fd8b-4a65-9fc9-b1e134a70695", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFMyNTYiCn0.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJhdXRoX3RpbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9CiAgICB9LAogICAgInVzZXJpbmZvIiA6IHsgfQogIH0sCiAgInJlc3BvbnNlX3R5cGUiIDogWyAidG9rZW4iLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJkMmE4MmQ1Ny1mNTJhLTQ0YWUtOWI3Mi1jMGQ4MzcxMWMzZDEiLAogICJub25jZSIgOiAiNjMzNjc0Y2QtOTk1My00ZTZjLWE4NGYtMzg5YjY3MTI1ODQyIiwKICAiY2xpZW50X2lkIiA6ICJmNDUyNjk3MC1iMmVlLTQyODYtYjg1OS1iYjVhM2EwZjMzMjYiCn0.8TmfqAgrAN3z7oAd6l3E5wv9Mu62uHo2zptRu2WUNiM", "opbs": "3dff82e7-b3f6-4add-923f-118550f379b6", "response_type": "token id_token", "session_id": "c006f481-fd8b-4a65-9fc9-b1e134a70695", "nonce": "633674cd-9953-4e6c-a84f-389b67125842", "client_id": "f4526970-b2ee-4286-b859-bb5a3a0f3326", "sid": "6f39134a-6b41-41e8-8b5c-49669aef8f74", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d2a82d57-f52a-44ae-9b72-c0d83711c3d1", "old_session_id": "fa90ac34-3e0f-431a-b594-6f0858e5c04a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:50" }, { "isJwt": false, "opbrowserState": "32c2ad43-3f74-41ab-a7bc-bd496bf953a0", "deletable": true, "dn": "jansId=512cc9e4-c852-4daa-bbd6-6ea72a06243e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:50", "creationDate": "2022-11-24T09:18:50", "ttl": 0, "sessionState": "bde2152e416ff3cf44f5beb7e44d2f95b11b149873e2994322bdea7f18ca92ef.7be25df5-3206-4281-8362-905dbfc6db85", "lastUsedAt": "2022-11-24T09:18:50", "permissionGrantedMap": { "permissionGranted": { "5eb6b5ff-8bf2-4680-8a81-f78ae5dc07b8": true } }, "outsideSid": "661a4e2a-cba2-4af3-aab5-2e6b362bba49", "id": "512cc9e4-c852-4daa-bbd6-6ea72a06243e", "state": "authenticated", "sessionAttributes": { "opbs": "32c2ad43-3f74-41ab-a7bc-bd496bf953a0", "response_type": "code", "session_id": "512cc9e4-c852-4daa-bbd6-6ea72a06243e", "nonce": "150af20b-bb8b-4c36-b8d0-320deb364fbf", "client_id": "5eb6b5ff-8bf2-4680-8a81-f78ae5dc07b8", "sid": "661a4e2a-cba2-4af3-aab5-2e6b362bba49", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "70af4c89-284a-4ae0-b5cc-864bd0692da5", "old_session_id": "41afb7ef-3698-4d7b-a657-a6ad7b7c376a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:50" }, { "isJwt": false, "opbrowserState": "2390ec1e-6419-4c45-99dc-2c74152959ce", "deletable": true, "dn": "jansId=a51381c9-c889-4d1a-a4c8-d8639362192c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:50", "creationDate": "2022-11-24T09:18:49", "ttl": 0, "sessionState": "bc08e659e2839c9e8fd8a8a40387723d5b41b5eac2f3d6470dd538cc70572407.2953148b-d73c-4095-bc97-55e53ef2d25d", "lastUsedAt": "2022-11-24T09:18:50", "permissionGrantedMap": { "permissionGranted": { "f036fa97-a50a-4010-8be4-d51496270acb": true } }, "outsideSid": "332a0018-a68f-46ce-a350-c68a78e5ed79", "id": "a51381c9-c889-4d1a-a4c8-d8639362192c", "state": "authenticated", "sessionAttributes": { "opbs": "2390ec1e-6419-4c45-99dc-2c74152959ce", "response_type": "token id_token", "session_id": "a51381c9-c889-4d1a-a4c8-d8639362192c", "nonce": "be5c2994-5d96-4f49-85a9-8f03980ebdd5", "client_id": "f036fa97-a50a-4010-8be4-d51496270acb", "sid": "332a0018-a68f-46ce-a350-c68a78e5ed79", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1d1bedd0-9415-419d-85ed-7030a580ccd1", "old_session_id": "81f4383e-bc52-4092-8429-71183f7955a0" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:49" }, { "isJwt": false, "opbrowserState": "342d20ae-7de4-4590-93be-b66f85938549", "deletable": true, "dn": "jansId=62abd9b5-35fe-45a8-aead-e0b8cbbee3e8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:49", "creationDate": "2022-11-24T09:18:49", "ttl": 0, "sessionState": "c46928ef05ccea1cac95089872fa3ff78eaa1f853ff15359227429423746f299.7e544a48-3124-4e81-bc41-f36c5cdb68a2", "lastUsedAt": "2022-11-24T09:18:49", "permissionGrantedMap": { "permissionGranted": { "1cc3881a-af61-44e5-a98b-4255d783f163": true } }, "outsideSid": "58267aab-75a2-4c84-9297-eeeb9abf6eac", "id": "62abd9b5-35fe-45a8-aead-e0b8cbbee3e8", "state": "authenticated", "sessionAttributes": { "opbs": "342d20ae-7de4-4590-93be-b66f85938549", "response_type": "code id_token", "session_id": "62abd9b5-35fe-45a8-aead-e0b8cbbee3e8", "nonce": "ad4475ce-97bd-4d43-aba3-4f01b57e6bea", "client_id": "1cc3881a-af61-44e5-a98b-4255d783f163", "sid": "58267aab-75a2-4c84-9297-eeeb9abf6eac", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1e37c590-fde3-49df-a61c-a919238d78ba", "old_session_id": "1633c9a4-4b75-4891-b835-51a06bc102fb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:49" }, { "isJwt": false, "opbrowserState": "7d8fdae2-d4df-4787-807e-736b39974305", "deletable": true, "dn": "jansId=71631db2-6570-4dde-b506-a1ad0e6531ec,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:49", "creationDate": "2022-11-24T09:18:48", "ttl": 0, "sessionState": "b2a19f7ba08690b91cc110c3ae30d4780e55d64ea7a1415dccf4b6349ff26c6e.41cf3f44-99e6-481d-a4ca-08612eebc492", "lastUsedAt": "2022-11-24T09:18:49", "permissionGrantedMap": { "permissionGranted": { "ec46a407-459d-4fbc-9467-43e0bcbbcd7b": true } }, "outsideSid": "4b852e7a-0fb4-4d95-9b1c-fe205f41da9d", "id": "71631db2-6570-4dde-b506-a1ad0e6531ec", "state": "authenticated", "sessionAttributes": { "opbs": "7d8fdae2-d4df-4787-807e-736b39974305", "response_type": "code", "session_id": "71631db2-6570-4dde-b506-a1ad0e6531ec", "client_id": "ec46a407-459d-4fbc-9467-43e0bcbbcd7b", "sid": "4b852e7a-0fb4-4d95-9b1c-fe205f41da9d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "72700d38-d3b4-42ad-b1ad-f42f2b7346b8", "old_session_id": "033eea94-978c-4f11-9054-6c526452e8bd" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:48" }, { "isJwt": false, "opbrowserState": "ff82fce5-2c66-4d92-81b4-f2d4e7082fd1", "deletable": true, "dn": "jansId=37e2e9c7-ea78-469a-bc0b-f4a58c976038,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:48", "creationDate": "2022-11-24T09:18:47", "ttl": 0, "sessionState": "081560761fda318fa2f81be86f6c9cca6ab5c4a037a9ff595921805019ca0261.f2b4e69d-79ed-4f71-b73e-3720b355f18f", "lastUsedAt": "2022-11-24T09:18:48", "permissionGrantedMap": { "permissionGranted": { "b7447697-ecbc-4447-a566-b5d95204c8ce": true } }, "outsideSid": "25c8cd15-87c4-4832-b3d4-a947e1667f75", "id": "37e2e9c7-ea78-469a-bc0b-f4a58c976038", "state": "authenticated", "sessionAttributes": { "opbs": "ff82fce5-2c66-4d92-81b4-f2d4e7082fd1", "response_type": "code id_token", "session_id": "37e2e9c7-ea78-469a-bc0b-f4a58c976038", "nonce": "1ea86f1f-516d-45e5-a2b0-042e637ecd96", "client_id": "b7447697-ecbc-4447-a566-b5d95204c8ce", "sid": "25c8cd15-87c4-4832-b3d4-a947e1667f75", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e39c4fa0-faff-4334-bf35-07683c08bd49", "old_session_id": "c839720d-a618-4ff6-bbfa-2f8b8a7acc7f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:47" }, { "isJwt": false, "opbrowserState": "06783a97-d859-4800-9479-b7b6af1c4fbc", "deletable": true, "dn": "jansId=ba420642-5d07-4da2-b372-4307f9f89865,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:48", "creationDate": "2022-11-24T09:18:47", "ttl": 0, "sessionState": "1be702c1cf49ab821f9df6d8e366644284a6728b39170c5bc57cfd0eb3d2e5ca.c711697c-5a9b-43e5-a090-c4785ccc8544", "lastUsedAt": "2022-11-24T09:18:48", "permissionGrantedMap": { "permissionGranted": { "2eda0dd3-27b7-4bb7-bee1-62bb1a27b485": true } }, "outsideSid": "c8120acf-a9bd-4013-88c2-1d98ca4ebca5", "id": "ba420642-5d07-4da2-b372-4307f9f89865", "state": "authenticated", "sessionAttributes": { "opbs": "06783a97-d859-4800-9479-b7b6af1c4fbc", "response_type": "token id_token", "session_id": "ba420642-5d07-4da2-b372-4307f9f89865", "nonce": "31352f6e-c36b-4603-981d-e59cba54be94", "client_id": "2eda0dd3-27b7-4bb7-bee1-62bb1a27b485", "sid": "c8120acf-a9bd-4013-88c2-1d98ca4ebca5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e370d171-9907-4b30-b99a-6db50b37dfbd", "old_session_id": "1bdd3cd9-abde-4bfe-b446-4794d15958e6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:47" }, { "isJwt": false, "opbrowserState": "cff55a59-809f-4fcf-a536-225550453bf6", "deletable": true, "dn": "jansId=4313b765-6e3e-4458-be75-df3f0f29b515,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:47", "creationDate": "2022-11-24T09:18:46", "ttl": 0, "sessionState": "81dec72268af9236cd13935ae86b0841c0d8524bda009be2f3a314606f0e8955.bb581d8a-e316-45c9-878d-c2705436d0e5", "lastUsedAt": "2022-11-24T09:18:47", "permissionGrantedMap": { "permissionGranted": { "34340628-ad5c-4f73-8f59-752df4a9295d": true } }, "outsideSid": "544b1211-ab0f-489e-8db2-271742c92151", "id": "4313b765-6e3e-4458-be75-df3f0f29b515", "state": "authenticated", "sessionAttributes": { "opbs": "cff55a59-809f-4fcf-a536-225550453bf6", "response_type": "code", "session_id": "4313b765-6e3e-4458-be75-df3f0f29b515", "client_id": "34340628-ad5c-4f73-8f59-752df4a9295d", "sid": "544b1211-ab0f-489e-8db2-271742c92151", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ee61fa03-01f7-4fc2-81fb-bf5ed69f19be", "old_session_id": "3a87c666-1502-4bc2-9eb3-a49a2e2021b1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:46" }, { "isJwt": false, "opbrowserState": "f12ef48e-b3c3-418b-92ca-ed2931094ac9", "deletable": true, "dn": "jansId=69b6a1ee-cbb3-4264-9692-9042b9b183f0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:46", "creationDate": "2022-11-24T09:18:46", "ttl": 0, "sessionState": "e4b4dd4de0dda0c72f13eff0f35c42e44188afb9e1fd302b78e438207f387f14.0317d8cf-6089-4a47-b96b-4072a68c7e7d", "lastUsedAt": "2022-11-24T09:18:46", "permissionGrantedMap": { "permissionGranted": { "e073cfba-0573-4bcb-8865-1ce5077368e5": true } }, "outsideSid": "144b4412-b264-4d6c-b3fb-c32ce960f309", "id": "69b6a1ee-cbb3-4264-9692-9042b9b183f0", "state": "authenticated", "sessionAttributes": { "opbs": "f12ef48e-b3c3-418b-92ca-ed2931094ac9", "response_type": "code id_token", "session_id": "69b6a1ee-cbb3-4264-9692-9042b9b183f0", "nonce": "22eeaba6-2930-4fc0-be17-bbacd2029e8b", "client_id": "e073cfba-0573-4bcb-8865-1ce5077368e5", "sid": "144b4412-b264-4d6c-b3fb-c32ce960f309", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b957e725-2fa4-4b49-a9ec-988afcb669d9", "old_session_id": "03180bc3-9680-42e1-9f03-8b42048943ca" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:46" }, { "isJwt": false, "opbrowserState": "a9f971e6-d986-4870-b7ce-f09f530ae73b", "deletable": true, "dn": "jansId=6bab8c6d-16ab-4c96-9673-3d369cb18f4a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:45", "creationDate": "2022-11-24T09:18:45", "ttl": 0, "sessionState": "b650a80df5ca802015b1d101e378ab93caf3c358052e1f8a26a2cd69c6441719.d97cc69f-9200-4193-9d17-753186e40af1", "lastUsedAt": "2022-11-24T09:18:45", "permissionGrantedMap": { "permissionGranted": { "691c710b-dc37-45df-81dc-f0d9ccfb1640": true } }, "outsideSid": "baa6c8ff-3e63-448a-b2d4-e18121c887c3", "id": "6bab8c6d-16ab-4c96-9673-3d369cb18f4a", "state": "authenticated", "sessionAttributes": { "opbs": "a9f971e6-d986-4870-b7ce-f09f530ae73b", "response_type": "token id_token", "session_id": "6bab8c6d-16ab-4c96-9673-3d369cb18f4a", "nonce": "591bf478-c061-4c95-b6f6-2640a0edb6d4", "client_id": "691c710b-dc37-45df-81dc-f0d9ccfb1640", "sid": "baa6c8ff-3e63-448a-b2d4-e18121c887c3", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7c3b9bdc-482a-4d7d-8936-9f58691efd6e", "old_session_id": "91a106be-1c24-4c2d-a82a-e04592a90924" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:45" }, { "isJwt": false, "opbrowserState": "a23a1299-e0c3-4aab-94f1-6810c08a431b", "deletable": true, "dn": "jansId=954a789a-33a8-4f87-b654-87a142ed8907,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:45", "creationDate": "2022-11-24T09:18:44", "ttl": 0, "sessionState": "fb30e84466c91baeb9709797066e62d956292125b7453c83de41be575511d956.bb4db89f-af46-4b75-80c7-4e4ecf853e2a", "lastUsedAt": "2022-11-24T09:18:45", "permissionGrantedMap": { "permissionGranted": { "b14602a7-74d9-43ad-ae65-a242017ad7ba": true } }, "outsideSid": "764ca224-93fc-4f95-98a6-e3dfcd130846", "id": "954a789a-33a8-4f87-b654-87a142ed8907", "state": "authenticated", "sessionAttributes": { "opbs": "a23a1299-e0c3-4aab-94f1-6810c08a431b", "response_type": "token id_token", "session_id": "954a789a-33a8-4f87-b654-87a142ed8907", "nonce": "b3662f7e-4c8c-484e-95c1-68c9dc9b91bc", "client_id": "b14602a7-74d9-43ad-ae65-a242017ad7ba", "sid": "764ca224-93fc-4f95-98a6-e3dfcd130846", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email mobile_phone", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "89478acb-f477-4e51-a8fb-715629d6f368", "old_session_id": "22e3984b-6464-4902-ab48-2303abc4af02" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:44" }, { "isJwt": false, "opbrowserState": "ab15662d-9a87-4d23-9aa7-59b6bae3f543", "deletable": true, "dn": "jansId=ad3a398b-f4c2-48bc-abf6-0b1fc31ca3c2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:44", "creationDate": "2022-11-24T09:18:44", "ttl": 0, "sessionState": "9d8db0c04430fcc3463adae02ddf5de819e08dea539ac4ad6a22870ab1c9c126.5570e51c-8745-4a3a-bb5f-40e629068630", "lastUsedAt": "2022-11-24T09:18:44", "permissionGrantedMap": { "permissionGranted": { "e519fb53-270a-4106-bc38-002743045901": true } }, "outsideSid": "d781cab8-0bbf-484b-a188-4d5dc80a19ea", "id": "ad3a398b-f4c2-48bc-abf6-0b1fc31ca3c2", "state": "authenticated", "sessionAttributes": { "opbs": "ab15662d-9a87-4d23-9aa7-59b6bae3f543", "response_type": "token id_token", "session_id": "ad3a398b-f4c2-48bc-abf6-0b1fc31ca3c2", "nonce": "18cd97d5-4ff3-42ea-b129-fde218914425", "client_id": "e519fb53-270a-4106-bc38-002743045901", "sid": "d781cab8-0bbf-484b-a188-4d5dc80a19ea", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b68d0fbb-c511-45ef-87f9-fd2f0ae80908", "old_session_id": "90a6d5d3-0a31-4b56-8990-ffa19f9f2254" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:44" }, { "isJwt": false, "opbrowserState": "b62e1be1-5eeb-4d40-b0c4-9e415d05c5d6", "deletable": true, "dn": "jansId=86ce5f58-3a22-4eb4-8bba-9495edf32e45,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:43", "creationDate": "2022-11-24T09:18:43", "ttl": 0, "sessionState": "6497fd75dda8f5324bf7f44ba4073807b7617bc2d85ccd0a69ca8c0bf18a70f4.ce0a2b59-00b7-42e1-8ec5-e7a333f07f82", "lastUsedAt": "2022-11-24T09:18:43", "permissionGrantedMap": { "permissionGranted": { "58d22e64-f644-4152-9820-31a3a442f7a3": true } }, "outsideSid": "6d43f810-d2b0-42cc-a4e2-2ef414a935eb", "id": "86ce5f58-3a22-4eb4-8bba-9495edf32e45", "state": "authenticated", "sessionAttributes": { "opbs": "b62e1be1-5eeb-4d40-b0c4-9e415d05c5d6", "response_type": "token id_token", "session_id": "86ce5f58-3a22-4eb4-8bba-9495edf32e45", "nonce": "d51ea4ab-4310-49c7-967d-e5d4c074f041", "client_id": "58d22e64-f644-4152-9820-31a3a442f7a3", "sid": "6d43f810-d2b0-42cc-a4e2-2ef414a935eb", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "560820f2-90f3-451b-85df-e7fd175fab92", "old_session_id": "b627ce28-7fdd-4ba5-a4e2-4421deb46467" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:43" }, { "isJwt": false, "opbrowserState": "1a3003dd-e42f-40ef-854c-4522908ade9a", "deletable": true, "dn": "jansId=4c57939f-15ec-4268-b61e-f478373e3198,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:43", "creationDate": "2022-11-24T09:18:43", "ttl": 0, "sessionState": "2418bad732213dcdd2f7f3da1ee81fc538b3ee3cdf081f438758fb1d62ab2403.7be00ae0-4a2d-40be-81ea-87e45dfdccd9", "lastUsedAt": "2022-11-24T09:18:43", "permissionGrantedMap": { "permissionGranted": { "99ec1cc4-75d3-48c6-ad25-a7fe6e0c19d7": true } }, "outsideSid": "34d42d5c-4049-4b47-9ed9-75ab4ed0f8af", "id": "4c57939f-15ec-4268-b61e-f478373e3198", "state": "authenticated", "sessionAttributes": { "opbs": "1a3003dd-e42f-40ef-854c-4522908ade9a", "response_type": "token id_token", "session_id": "4c57939f-15ec-4268-b61e-f478373e3198", "nonce": "afed0c79-273a-4905-bba6-6c3557afca96", "client_id": "99ec1cc4-75d3-48c6-ad25-a7fe6e0c19d7", "sid": "34d42d5c-4049-4b47-9ed9-75ab4ed0f8af", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1f9529f5-757b-4f86-891e-60366f120b18", "old_session_id": "441616a9-16b7-4ac9-b9de-de392cff9cd7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:43" }, { "isJwt": false, "opbrowserState": "bafc7db1-e7f2-44ff-ab71-9ec443affa72", "deletable": true, "dn": "jansId=aff7a7e8-74e6-4a7c-bb84-43acd491af0a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:43", "creationDate": "2022-11-24T09:18:42", "ttl": 0, "sessionState": "8dccbae02dc64e38d567878f392e7573e381d24f11d89e462292f351cc441d89.dccd242d-bac9-4324-a7a6-9631fc6e97d7", "lastUsedAt": "2022-11-24T09:18:43", "permissionGrantedMap": { "permissionGranted": { "f2df366b-c0ae-4cf2-9c82-8cb8a924159e": true } }, "outsideSid": "606d7464-f081-4a47-8e6b-8832d2e1c7e4", "id": "aff7a7e8-74e6-4a7c-bb84-43acd491af0a", "state": "authenticated", "sessionAttributes": { "opbs": "bafc7db1-e7f2-44ff-ab71-9ec443affa72", "response_type": "token id_token", "session_id": "aff7a7e8-74e6-4a7c-bb84-43acd491af0a", "nonce": "a363f1f3-c4a2-4d67-a49e-03928d5099fb", "client_id": "f2df366b-c0ae-4cf2-9c82-8cb8a924159e", "sid": "606d7464-f081-4a47-8e6b-8832d2e1c7e4", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5a3adc64-d82a-4285-890a-8a1261d24711", "old_session_id": "de6ed902-383e-409d-9690-0a6c080981b2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:42" }, { "isJwt": false, "opbrowserState": "023465d2-c9b6-403e-9149-b9971be9c9a5", "deletable": true, "dn": "jansId=73ef916a-6f75-4830-b1da-f1c9b430de88,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:42", "creationDate": "2022-11-24T09:18:42", "ttl": 0, "sessionState": "ec21a8d45859e99c47367b7739c37eb64c04d392f7225bd5fec9253234a5d392.a02bbe04-34dc-489e-a08e-7d44a3631b34", "lastUsedAt": "2022-11-24T09:18:42", "permissionGrantedMap": { "permissionGranted": { "66e66b68-283e-438a-984b-ac40dc2ad72a": true } }, "outsideSid": "beb86a2b-2e4d-4844-8694-28ebf6da5aea", "id": "73ef916a-6f75-4830-b1da-f1c9b430de88", "state": "authenticated", "sessionAttributes": { "opbs": "023465d2-c9b6-403e-9149-b9971be9c9a5", "response_type": "token id_token", "session_id": "73ef916a-6f75-4830-b1da-f1c9b430de88", "nonce": "f733f634-e834-4ae0-921c-411f11daa8f7", "client_id": "66e66b68-283e-438a-984b-ac40dc2ad72a", "sid": "beb86a2b-2e4d-4844-8694-28ebf6da5aea", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "64aa21e8-571c-4007-9813-4071ad66ea6b", "old_session_id": "2a94d0bf-b2b6-439e-ab43-11cb9f637a85" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:42" }, { "isJwt": false, "opbrowserState": "c7fd7585-19d6-486a-a441-876961f3b42b", "deletable": true, "dn": "jansId=9e027f53-81c0-486f-9c9a-1d153455d4ac,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:41", "creationDate": "2022-11-24T09:18:41", "ttl": 0, "sessionState": "c3e8cecd99ee65e18992bb2807e6267ce9bbc5feb6dc475baf302ae38b87139d.d29666e3-6b44-4c45-8d72-728fd83e1a2f", "lastUsedAt": "2022-11-24T09:18:41", "permissionGrantedMap": { "permissionGranted": { "398916e2-a697-4cdb-8572-bc054b952897": true } }, "outsideSid": "377ea44f-2eb1-4296-9daf-ae85574d7ae9", "id": "9e027f53-81c0-486f-9c9a-1d153455d4ac", "state": "authenticated", "sessionAttributes": { "opbs": "c7fd7585-19d6-486a-a441-876961f3b42b", "response_type": "code", "session_id": "9e027f53-81c0-486f-9c9a-1d153455d4ac", "client_id": "398916e2-a697-4cdb-8572-bc054b952897", "sid": "377ea44f-2eb1-4296-9daf-ae85574d7ae9", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "33866c4f-e320-43c3-b6dd-fb5aa8a76afe", "old_session_id": "b1845b05-ff59-4b40-a6a3-02d81b69a54f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:41" }, { "isJwt": false, "opbrowserState": "b988f320-e40b-4655-9ec0-d5bf8bec4707", "deletable": true, "dn": "jansId=93ac7a39-4940-4b9d-ba43-5d515706dbe6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:41", "creationDate": "2022-11-24T09:18:41", "ttl": 0, "sessionState": "2f8d40b2edadb322f69bd8c1b51bd468576e1d4006b20bd8e097f31a5abc0c3d.ad7d41f8-192a-4e78-9008-4ea9b21e01f4", "lastUsedAt": "2022-11-24T09:18:41", "permissionGrantedMap": { "permissionGranted": { "b9c4d985-6821-488f-998e-315e1b2398b3": true } }, "outsideSid": "c26ac95f-0840-4788-8eae-aa6cbb9be403", "id": "93ac7a39-4940-4b9d-ba43-5d515706dbe6", "state": "authenticated", "sessionAttributes": { "opbs": "b988f320-e40b-4655-9ec0-d5bf8bec4707", "response_type": "token id_token", "session_id": "93ac7a39-4940-4b9d-ba43-5d515706dbe6", "nonce": "3c611606-e529-4da8-900b-11a0c225e144", "client_id": "b9c4d985-6821-488f-998e-315e1b2398b3", "sid": "c26ac95f-0840-4788-8eae-aa6cbb9be403", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "58055eca-14d0-4217-b505-8c988eebb86b", "old_session_id": "58ebe913-6220-4f93-9a35-ead13e29950c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:41" }, { "isJwt": false, "opbrowserState": "9de1c7e9-5387-4001-97de-913a2b2372cd", "deletable": true, "dn": "jansId=1af0d10b-da26-4be7-a96f-fc8f47d0cd50,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:41", "creationDate": "2022-11-24T09:18:40", "ttl": 0, "sessionState": "831bb28d8ef0fad46ac30ed1f251ce17137c55722912a3b1914627b4574896b0.30c63de1-ed2d-4779-93c0-c460076b3169", "lastUsedAt": "2022-11-24T09:18:41", "permissionGrantedMap": { "permissionGranted": { "dd90d90d-d68e-485d-acbb-8f01e99dad1a": true } }, "outsideSid": "d0ec2d7d-784d-4ccf-b5a4-c6448306761b", "id": "1af0d10b-da26-4be7-a96f-fc8f47d0cd50", "state": "authenticated", "sessionAttributes": { "opbs": "9de1c7e9-5387-4001-97de-913a2b2372cd", "response_type": "token id_token", "session_id": "1af0d10b-da26-4be7-a96f-fc8f47d0cd50", "nonce": "48690b4d-609c-43ac-8dc6-ce94267b6c3f", "client_id": "dd90d90d-d68e-485d-acbb-8f01e99dad1a", "sid": "d0ec2d7d-784d-4ccf-b5a4-c6448306761b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "29adaf1c-ec18-42ae-9464-b9e9a9dd7635", "old_session_id": "7dd131af-a249-4b1d-9f7d-ac1ae552d68c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:40" }, { "isJwt": false, "opbrowserState": "fced634a-6452-4a9c-b3c7-a567e02cc204", "deletable": true, "dn": "jansId=34a4525a-1c81-46e8-968c-b7a6819a2b61,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:41", "creationDate": "2022-11-24T09:18:40", "ttl": 0, "sessionState": "8bc8819761816e59a44a2b7b785c3b5f35d706b39ac78eb6b63a6b0139341769.043ecdd2-0060-4bca-839b-d594ec891151", "lastUsedAt": "2022-11-24T09:18:41", "permissionGrantedMap": { "permissionGranted": { "d8c3999b-86cd-4aa9-8d6c-d5950a8b5c85": true } }, "outsideSid": "f9baafb2-dfeb-4562-b97b-bf2f6ef79627", "id": "34a4525a-1c81-46e8-968c-b7a6819a2b61", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFMyNTYiCn0.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm5hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAiZW1haWwiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7IH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiMDc3NmVlMzAtNWM5ZS00MTZiLTgzNWYtMTIyYWMzOGI3N2ZkIiwKICAibm9uY2UiIDogIjk3YjM3YmQ1LWIxNmItNDY2YS04YzMwLTYwMTBlZWRjZGIzNCIsCiAgImNsaWVudF9pZCIgOiAiZDhjMzk5OWItODZjZC00YWE5LThkNmMtZDU5NTBhOGI1Yzg1Igp9.cXlySsNBhplWQ2sEcxCgZii4kx4hCCtUruupNhpG5rk", "opbs": "fced634a-6452-4a9c-b3c7-a567e02cc204", "response_type": "token id_token", "session_id": "34a4525a-1c81-46e8-968c-b7a6819a2b61", "nonce": "97b37bd5-b16b-466a-8c30-6010eedcdb34", "client_id": "d8c3999b-86cd-4aa9-8d6c-d5950a8b5c85", "sid": "f9baafb2-dfeb-4562-b97b-bf2f6ef79627", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0776ee30-5c9e-416b-835f-122ac38b77fd", "old_session_id": "30947a05-5e13-4cfa-a781-54c6944f92d9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:40" }, { "isJwt": false, "opbrowserState": "274b1d53-9126-44e4-9a05-94cb11994960", "deletable": true, "dn": "jansId=4f940a1f-bc6c-4ce6-a5fc-160de28785e2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:40", "creationDate": "2022-11-24T09:18:40", "ttl": 0, "sessionState": "1301bda6f44c1b99991184fe732c5864067f0c23e18240397a6e4f7a4abe2e5b.d0f65f3d-89c8-4bc0-a96d-982222994c68", "lastUsedAt": "2022-11-24T09:18:40", "permissionGrantedMap": { "permissionGranted": { "ebb26c61-e697-4b47-9d93-28e4cb287b37": true } }, "outsideSid": "f0cd54c3-93b6-425d-a72f-92fb5c30c5d4", "id": "4f940a1f-bc6c-4ce6-a5fc-160de28785e2", "state": "authenticated", "sessionAttributes": { "opbs": "274b1d53-9126-44e4-9a05-94cb11994960", "response_type": "code", "session_id": "4f940a1f-bc6c-4ce6-a5fc-160de28785e2", "client_id": "ebb26c61-e697-4b47-9d93-28e4cb287b37", "sid": "f0cd54c3-93b6-425d-a72f-92fb5c30c5d4", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "95cbb26e-bf45-45ef-86b4-76434579a633", "old_session_id": "3da7ba71-e070-453d-b089-5514c82549bb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:40" }, { "isJwt": false, "opbrowserState": "23668a16-bfcc-4ee3-b4ac-f932f16dbb78", "deletable": true, "dn": "jansId=16d725c3-a2b4-46b1-8bae-32f1b985c895,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:40", "creationDate": "2022-11-24T09:18:39", "ttl": 0, "sessionState": "117efde489360b3ff0564450e6da7109c3e61fd8eaef5bc0d7188d0c1f8700d6.b6518e6d-019b-4bc0-8eb3-fee7f3d0a878", "lastUsedAt": "2022-11-24T09:18:40", "permissionGrantedMap": { "permissionGranted": { "b7e39cab-fa32-4b34-8f0f-2a26133ed300": true } }, "outsideSid": "aa0e931a-a17f-47f8-b87d-7312eee272a3", "id": "16d725c3-a2b4-46b1-8bae-32f1b985c895", "state": "authenticated", "sessionAttributes": { "opbs": "23668a16-bfcc-4ee3-b4ac-f932f16dbb78", "response_type": "token id_token", "session_id": "16d725c3-a2b4-46b1-8bae-32f1b985c895", "nonce": "9c0c3332-7d94-49ab-adb9-de7b60e3b1cc", "client_id": "b7e39cab-fa32-4b34-8f0f-2a26133ed300", "sid": "aa0e931a-a17f-47f8-b87d-7312eee272a3", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "842bdb7f-7ab9-443d-b0c7-9710751af10e", "old_session_id": "13aa4252-1785-479c-b578-9149acb424c8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:39" }, { "isJwt": false, "opbrowserState": "647c0573-6598-474f-b1c9-e2a9ede60df7", "deletable": true, "dn": "jansId=644ace8b-3eaa-4645-8129-066c09d197c7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:39", "creationDate": "2022-11-24T09:18:38", "ttl": 0, "sessionState": "8911fe118cbb8a075315c67a42f109823634ee5a3c36ba6d98fefd83f8dc5a4f.c2ec9cf8-ca0b-488e-adc2-4f1124b032b1", "lastUsedAt": "2022-11-24T09:18:39", "permissionGrantedMap": { "permissionGranted": { "c201bb3f-622a-4c4e-851c-f29f2fbe121e": true } }, "outsideSid": "e4cd5b1b-6858-476f-9245-cc4e1678328b", "id": "644ace8b-3eaa-4645-8129-066c09d197c7", "state": "authenticated", "sessionAttributes": { "opbs": "647c0573-6598-474f-b1c9-e2a9ede60df7", "response_type": "code", "session_id": "644ace8b-3eaa-4645-8129-066c09d197c7", "client_id": "c201bb3f-622a-4c4e-851c-f29f2fbe121e", "sid": "e4cd5b1b-6858-476f-9245-cc4e1678328b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "059813db-d3b5-43aa-b4e4-27106089af58", "old_session_id": "8a7160d6-ffbf-4fd6-bbe5-eff49ba20b3b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:38" }, { "isJwt": false, "opbrowserState": "4c3e4472-673a-4d86-9c46-cd0030869ba7", "deletable": true, "dn": "jansId=7cec1f00-62cd-4fef-b751-8a2966f7c54a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:39", "creationDate": "2022-11-24T09:18:38", "ttl": 0, "sessionState": "13fd2d679bdf8ada64f374d55a50f48ab7db2517f66a74202d87b4735d44abcc.5d986576-077c-4954-aeb4-c8a2cc06c676", "lastUsedAt": "2022-11-24T09:18:39", "permissionGrantedMap": { "permissionGranted": { "6c6aaa74-86d1-474c-b687-05b3f7a5a29c": true } }, "outsideSid": "87c62b5a-e99c-45fd-b649-3b5934995fb4", "id": "7cec1f00-62cd-4fef-b751-8a2966f7c54a", "state": "authenticated", "sessionAttributes": { "opbs": "4c3e4472-673a-4d86-9c46-cd0030869ba7", "response_type": "token id_token", "session_id": "7cec1f00-62cd-4fef-b751-8a2966f7c54a", "nonce": "5a31ef8f-307d-4f83-8e54-904f07576003", "client_id": "6c6aaa74-86d1-474c-b687-05b3f7a5a29c", "sid": "87c62b5a-e99c-45fd-b649-3b5934995fb4", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d9130653-2e18-4494-b462-9d224f37f7d1", "old_session_id": "e461d8b1-d0d0-4974-b33f-cded4c5dbb15" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:38" }, { "isJwt": false, "opbrowserState": "f433c3c3-c822-4c0a-b409-e4c4f21d72e6", "deletable": true, "dn": "jansId=39b6a9c1-04ed-468e-bb89-7b7649de606d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:39", "creationDate": "2022-11-24T09:18:38", "ttl": 0, "sessionState": "6d60465d3c79eaa123376c2e7a603253952e78fa95f4b2f6c0f16bf441b2806c.103577f6-8c58-44b6-a1da-395a5d5eca38", "lastUsedAt": "2022-11-24T09:18:39", "permissionGrantedMap": { "permissionGranted": { "18c7994e-5475-490a-b0aa-72e52c60a27c": true } }, "outsideSid": "8da4f827-5fb7-4f27-b230-dae82d830b7e", "id": "39b6a9c1-04ed-468e-bb89-7b7649de606d", "state": "authenticated", "sessionAttributes": { "opbs": "f433c3c3-c822-4c0a-b409-e4c4f21d72e6", "response_type": "token id_token", "session_id": "39b6a9c1-04ed-468e-bb89-7b7649de606d", "nonce": "05d9c707-4201-4f87-a1e8-d5e8d30dcfc4", "client_id": "18c7994e-5475-490a-b0aa-72e52c60a27c", "sid": "8da4f827-5fb7-4f27-b230-dae82d830b7e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3b275744-05df-4d3c-9c1b-67113426c7cf", "old_session_id": "1d882e98-7d5a-47b9-ac8d-07fa763527b4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:38" }, { "isJwt": false, "opbrowserState": "9b7bb30d-75e4-436b-9455-7eb425774d62", "deletable": true, "dn": "jansId=5879738b-86f3-45f0-8971-22c4bb789f7d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:38", "creationDate": "2022-11-24T09:18:37", "ttl": 0, "sessionState": "ebbc16794420214bbffdd5be8f89e9e0478975e4c0d776238ad824cd11efb9e0.605fcd1c-da7b-4dbf-86f4-c7badcb18fe3", "lastUsedAt": "2022-11-24T09:18:38", "permissionGrantedMap": { "permissionGranted": { "d6804d6e-ae42-43ba-82a3-6abdf007ba1f": true } }, "outsideSid": "69596b97-a291-4fd4-804d-59ee90e35ccb", "id": "5879738b-86f3-45f0-8971-22c4bb789f7d", "state": "authenticated", "sessionAttributes": { "opbs": "9b7bb30d-75e4-436b-9455-7eb425774d62", "response_type": "code", "session_id": "5879738b-86f3-45f0-8971-22c4bb789f7d", "client_id": "d6804d6e-ae42-43ba-82a3-6abdf007ba1f", "sid": "69596b97-a291-4fd4-804d-59ee90e35ccb", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "30bcd351-5fa5-4e96-a83f-7af006d16e22", "old_session_id": "344b5a1e-d440-498f-bf40-58c52124aa65" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:37" }, { "isJwt": false, "opbrowserState": "72baa089-2ab9-454d-9250-c18a613f1d0a", "deletable": true, "dn": "jansId=4f7eb0e2-ccdf-4759-8a68-62dc4996acec,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:37", "creationDate": "2022-11-24T09:18:36", "ttl": 0, "sessionState": "b01c3b38147b20910546d496ffc07544a9eb1a8d0aa379053cc879e375937338.fc3b50ec-8afa-4f7d-a304-250967f0227e", "lastUsedAt": "2022-11-24T09:18:37", "permissionGrantedMap": { "permissionGranted": { "6ada1e5a-ebee-40b7-ab4f-8000c00c144b": true } }, "outsideSid": "fa20027b-8279-4759-b767-fb164ce864cf", "id": "4f7eb0e2-ccdf-4759-8a68-62dc4996acec", "state": "authenticated", "sessionAttributes": { "opbs": "72baa089-2ab9-454d-9250-c18a613f1d0a", "response_type": "token id_token", "session_id": "4f7eb0e2-ccdf-4759-8a68-62dc4996acec", "nonce": "3a86f00a-7c81-41ea-893b-5ba5c93cb0eb", "client_id": "6ada1e5a-ebee-40b7-ab4f-8000c00c144b", "sid": "fa20027b-8279-4759-b767-fb164ce864cf", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "acf19175-8744-4c9c-ba3d-734a702eafd4", "old_session_id": "0566f70d-3500-45d0-b3c5-583fcce88ead" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:36" }, { "isJwt": false, "opbrowserState": "f5666888-a25c-4f53-9db3-fcdfa216f681", "deletable": true, "dn": "jansId=1e416a9d-ba2b-4a32-a6a3-121bca102ca5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:37", "creationDate": "2022-11-24T09:18:36", "ttl": 0, "sessionState": "44f0a8a0aed624bf0aef1b432aa48a36619178a6db7cdf865cdeb7532fdc2e07.8ba8c086-dcc1-4e60-ada3-7967efa85a72", "lastUsedAt": "2022-11-24T09:18:37", "permissionGrantedMap": { "permissionGranted": { "63bf17c6-c9c6-4e09-bd99-f57e22cd999f": true } }, "outsideSid": "4a4419c1-811a-4be7-870d-72ecc24271f6", "id": "1e416a9d-ba2b-4a32-a6a3-121bca102ca5", "state": "authenticated", "sessionAttributes": { "opbs": "f5666888-a25c-4f53-9db3-fcdfa216f681", "response_type": "token id_token", "session_id": "1e416a9d-ba2b-4a32-a6a3-121bca102ca5", "nonce": "81a22a22-d375-4454-9af6-b690b0b04488", "client_id": "63bf17c6-c9c6-4e09-bd99-f57e22cd999f", "sid": "4a4419c1-811a-4be7-870d-72ecc24271f6", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6898d4c2-9e3a-4179-8001-74142970b42c", "old_session_id": "afab058f-5426-46d3-b5df-ed772224a0fa" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:36" }, { "isJwt": false, "opbrowserState": "a81e9cd4-51d7-434e-bc6f-7a6a7f0e8fb6", "deletable": true, "dn": "jansId=3b0a3c5a-1d3b-4a41-b008-7c83e0b519db,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:37", "creationDate": "2022-11-24T09:18:36", "ttl": 0, "sessionState": "de4e6ec4b1c027ad8d373db7568673b798ce7c7b5a7d1b544fd9c62106ad27d4.fdcdf1f5-d6a3-4f66-b146-33622987242d", "lastUsedAt": "2022-11-24T09:18:37", "permissionGrantedMap": { "permissionGranted": { "098aabae-03fe-49bd-9d7c-60b8600851de": true } }, "outsideSid": "e13fb296-f158-4695-8cfe-aea19f7f54c5", "id": "3b0a3c5a-1d3b-4a41-b008-7c83e0b519db", "state": "authenticated", "sessionAttributes": { "opbs": "a81e9cd4-51d7-434e-bc6f-7a6a7f0e8fb6", "response_type": "token id_token", "session_id": "3b0a3c5a-1d3b-4a41-b008-7c83e0b519db", "nonce": "eeb94c0b-573b-4b24-8ce1-107092917180", "client_id": "098aabae-03fe-49bd-9d7c-60b8600851de", "sid": "e13fb296-f158-4695-8cfe-aea19f7f54c5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0140bcb3-6651-4045-ae74-f22c499fe05c", "old_session_id": "59177340-c9d2-4637-bbd9-d53b67db905c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:36" }, { "isJwt": false, "opbrowserState": "dbb0f092-fd97-4b19-ada5-35d202a03dcf", "deletable": true, "dn": "jansId=181ea19b-7b2e-4f8b-b463-8c04cb08ecd9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:36", "creationDate": "2022-11-24T09:18:36", "ttl": 0, "sessionState": "0cd399fbb88b66b3aba6ebb2badfe60c259f8076bfa593ca127fc05252a648ca.541ef2b6-63a4-4c11-9f56-3333a68e63b2", "lastUsedAt": "2022-11-24T09:18:37", "permissionGrantedMap": { "permissionGranted": { "70a5d00f-088e-4860-8278-4757acb9f37d": true } }, "outsideSid": "3dd8262d-2a07-4cae-8a73-9e1a442101a1", "id": "181ea19b-7b2e-4f8b-b463-8c04cb08ecd9", "state": "authenticated", "sessionAttributes": { "opbs": "dbb0f092-fd97-4b19-ada5-35d202a03dcf", "response_type": "code", "session_id": "181ea19b-7b2e-4f8b-b463-8c04cb08ecd9", "client_id": "70a5d00f-088e-4860-8278-4757acb9f37d", "sid": "3dd8262d-2a07-4cae-8a73-9e1a442101a1", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "56bf1885-2327-428e-9a19-a815c7bb0781", "old_session_id": "14a06d3e-bd7c-44d3-a975-46ae2b47b083" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:36" }, { "isJwt": false, "opbrowserState": "a8369e22-42bf-45ba-a9c9-9dc9407db7f5", "deletable": true, "dn": "jansId=30f23335-2815-45f5-bc94-814510f43b42,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:36", "creationDate": "2022-11-24T09:18:35", "ttl": 0, "sessionState": "c1b9959fa99b693552af7cd96f1b2e4d273b35bb26adce66f5508d21debdcff3.fa64670b-325f-40f2-a906-f96e6d2e4a00", "lastUsedAt": "2022-11-24T09:18:36", "permissionGrantedMap": { "permissionGranted": { "a83b0b0a-0b9c-4028-8cb9-05d8a56bc4e9": true } }, "outsideSid": "b90b961c-5f93-45bb-a88a-c5277a31889f", "id": "30f23335-2815-45f5-bc94-814510f43b42", "state": "authenticated", "sessionAttributes": { "opbs": "a8369e22-42bf-45ba-a9c9-9dc9407db7f5", "response_type": "token id_token", "session_id": "30f23335-2815-45f5-bc94-814510f43b42", "nonce": "a1f10682-b8ce-40fc-9a17-f9dda724c74d", "client_id": "a83b0b0a-0b9c-4028-8cb9-05d8a56bc4e9", "sid": "b90b961c-5f93-45bb-a88a-c5277a31889f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "aadaf539-c3fc-44e0-9d3a-f9b88ee14a63", "old_session_id": "93f6538e-c98c-417f-a8dd-3bff60d90dbf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:35" }, { "isJwt": false, "opbrowserState": "dfddd105-6c6d-44f3-a88d-e4b17217dea3", "deletable": true, "dn": "jansId=97e3416f-70d1-4622-be8b-6c1973b5e107,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:36", "creationDate": "2022-11-24T09:18:35", "ttl": 0, "sessionState": "f54a17a653949f19bf89c6434c5130eabf837b63eb9fa38d00f721891e57dfd9.476ad2a6-dc17-41fb-9ba3-40c86425eefa", "lastUsedAt": "2022-11-24T09:18:36", "permissionGrantedMap": { "permissionGranted": { "54d0b8c3-5a44-43be-8486-669b0c97e725": true } }, "outsideSid": "34254613-aed5-45fc-9a5c-489bfa7b8a4b", "id": "97e3416f-70d1-4622-be8b-6c1973b5e107", "state": "authenticated", "sessionAttributes": { "opbs": "dfddd105-6c6d-44f3-a88d-e4b17217dea3", "response_type": "token id_token", "session_id": "97e3416f-70d1-4622-be8b-6c1973b5e107", "nonce": "8b003451-6160-487d-ad0d-aeff9f36fd02", "client_id": "54d0b8c3-5a44-43be-8486-669b0c97e725", "sid": "34254613-aed5-45fc-9a5c-489bfa7b8a4b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f0cf7d28-1a4d-4d20-aa17-23023df36752", "old_session_id": "5ca0713a-5729-4e97-b8e4-a76c0d718324" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:35" }, { "isJwt": false, "opbrowserState": "7fd3f999-0a4d-4232-81d4-dbfeff5ce620", "deletable": true, "dn": "jansId=2c4de7aa-bb5d-4b6f-863e-56f1773d45b9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:35", "creationDate": "2022-11-24T09:18:35", "ttl": 0, "sessionState": "da19cf0874529554e4a79c93a25e5a5fb66c06f41fafdd3ad00825dcc23e193d.31fa298b-5672-4d40-82cd-f590e454c41a", "lastUsedAt": "2022-11-24T09:18:35", "permissionGrantedMap": { "permissionGranted": { "dc86af41-01df-46e8-8565-ac7e97d48af9": true } }, "outsideSid": "1d529461-d5ea-43b7-a594-2a6460459664", "id": "2c4de7aa-bb5d-4b6f-863e-56f1773d45b9", "state": "authenticated", "sessionAttributes": { "opbs": "7fd3f999-0a4d-4232-81d4-dbfeff5ce620", "response_type": "token id_token", "session_id": "2c4de7aa-bb5d-4b6f-863e-56f1773d45b9", "nonce": "39f8f99d-dcb5-4f71-8fd6-2b37d0b2c077", "client_id": "dc86af41-01df-46e8-8565-ac7e97d48af9", "sid": "1d529461-d5ea-43b7-a594-2a6460459664", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "99279663-6332-4530-8355-91f0556f4386", "old_session_id": "8df22c40-6834-419b-a498-66fa91043220" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:35" }, { "isJwt": false, "opbrowserState": "d15ef144-509b-40fe-8b73-cad08f1628e5", "deletable": true, "dn": "jansId=4a712c86-286a-4d19-ba94-398b7c1ee77f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:35", "creationDate": "2022-11-24T09:18:35", "ttl": 0, "sessionState": "9ca857f0d6da7820eacbbaf522eed3f9bbad108f11f30a72ef54091976a461d2.2a416bd1-dd56-4e9c-a2e5-2226fcfee80e", "lastUsedAt": "2022-11-24T09:18:36", "permissionGrantedMap": { "permissionGranted": { "c3a872fd-8ca8-4808-9993-17f044b5d49c": true } }, "outsideSid": "87074478-f76a-435e-8853-fb25d1faf0ad", "id": "4a712c86-286a-4d19-ba94-398b7c1ee77f", "state": "authenticated", "sessionAttributes": { "opbs": "d15ef144-509b-40fe-8b73-cad08f1628e5", "response_type": "code", "session_id": "4a712c86-286a-4d19-ba94-398b7c1ee77f", "client_id": "c3a872fd-8ca8-4808-9993-17f044b5d49c", "sid": "87074478-f76a-435e-8853-fb25d1faf0ad", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c60a8d2a-eb9d-4229-a64d-534b0e65ba61", "old_session_id": "800e494a-1f75-41a2-85c4-d583fd3dd94c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:35" }, { "isJwt": false, "opbrowserState": "9825a280-cfa4-4f78-b4d3-58abbb4da48f", "deletable": true, "dn": "jansId=2444ad53-4187-49ec-9208-ba64c2812564,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:34", "creationDate": "2022-11-24T09:18:34", "ttl": 0, "sessionState": "b36d0ff8f4a756c3ff306adb4e1b765031e847558e38d7eba69fd8819bde4a2c.31a90079-d498-4c81-9a4f-d6bca80f778f", "lastUsedAt": "2022-11-24T09:18:34", "permissionGrantedMap": { "permissionGranted": { "75ae5dea-9d1f-427e-82b3-e8f9be4ab521": true } }, "outsideSid": "06dc250f-aeb9-4032-a860-d973286d0b16", "id": "2444ad53-4187-49ec-9208-ba64c2812564", "state": "authenticated", "sessionAttributes": { "opbs": "9825a280-cfa4-4f78-b4d3-58abbb4da48f", "response_type": "token id_token", "session_id": "2444ad53-4187-49ec-9208-ba64c2812564", "nonce": "eed97539-25f1-400b-8e12-b3ab523907c5", "client_id": "75ae5dea-9d1f-427e-82b3-e8f9be4ab521", "sid": "06dc250f-aeb9-4032-a860-d973286d0b16", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2cbb22b4-c0fe-487f-a7de-2bd1afb57fb2", "old_session_id": "fd7acec6-15c3-417f-8b5f-32e9136a1a39" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:34" }, { "isJwt": false, "opbrowserState": "f847b853-e55c-4287-bc7e-8c6368e35240", "deletable": true, "dn": "jansId=609f642a-6563-4f85-b281-236fe3fac8c0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:34", "creationDate": "2022-11-24T09:18:34", "ttl": 0, "sessionState": "3c59881af1feccda0047b59725a78c253d67fc72584afee5cad24b00b5a643bc.fa090e1d-3b38-47b9-9529-dddf7ad7a273", "lastUsedAt": "2022-11-24T09:18:34", "permissionGrantedMap": { "permissionGranted": { "dea57036-90b6-4f3b-85f4-1943f760d83f": true } }, "outsideSid": "506d84f6-58f7-4b67-9b76-e16946c2cf08", "id": "609f642a-6563-4f85-b281-236fe3fac8c0", "state": "authenticated", "sessionAttributes": { "opbs": "f847b853-e55c-4287-bc7e-8c6368e35240", "response_type": "token id_token", "session_id": "609f642a-6563-4f85-b281-236fe3fac8c0", "nonce": "63b216fe-c01d-48b3-8a30-1d4d1041677c", "client_id": "dea57036-90b6-4f3b-85f4-1943f760d83f", "sid": "506d84f6-58f7-4b67-9b76-e16946c2cf08", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "78a4f441-ebd3-4f80-9349-65989d9df228", "old_session_id": "e31b6742-dbbd-452a-a468-72f237e4650a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:34" }, { "isJwt": false, "opbrowserState": "d7d7e2ad-bf29-486d-8765-9e49fdbb68be", "deletable": true, "dn": "jansId=50ac6d4a-7e9a-42cc-be40-f6877d88ad57,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:34", "creationDate": "2022-11-24T09:18:33", "ttl": 0, "sessionState": "387bb3ff510ece79e7a5bc0c7ca373b53a81998deff8372f1ce780ecae3ae7a9.630d1a67-fb00-438d-b218-1fe6f2b7a979", "lastUsedAt": "2022-11-24T09:18:34", "permissionGrantedMap": { "permissionGranted": { "59ed59ac-1a54-4ae2-b972-ba1ecfaedc5b": true } }, "outsideSid": "7d4212b2-0441-4488-b35d-b16d3114ae3f", "id": "50ac6d4a-7e9a-42cc-be40-f6877d88ad57", "state": "authenticated", "sessionAttributes": { "opbs": "d7d7e2ad-bf29-486d-8765-9e49fdbb68be", "response_type": "token id_token", "session_id": "50ac6d4a-7e9a-42cc-be40-f6877d88ad57", "nonce": "0e792a6e-c830-4459-aeb1-607a446e0fca", "client_id": "59ed59ac-1a54-4ae2-b972-ba1ecfaedc5b", "sid": "7d4212b2-0441-4488-b35d-b16d3114ae3f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "56cf822b-35eb-4124-9ab2-7eb78558044f", "old_session_id": "729c9556-3f07-4fa0-8c86-e1b2ebb26fb9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:33" }, { "isJwt": false, "opbrowserState": "47ede6b5-4d52-4582-a0b3-3d02227c8de8", "deletable": true, "dn": "jansId=501833d2-7fac-48bb-96e3-ca479caa13e7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:34", "creationDate": "2022-11-24T09:18:33", "ttl": 0, "sessionState": "4078006ed84c4655ecd51cd0203d0d8413325aec5cf49ee3b04830cf4e476eec.d96d1db5-ff34-44c2-a0ff-9a9ec8522c39", "lastUsedAt": "2022-11-24T09:18:34", "permissionGrantedMap": { "permissionGranted": { "b61674e6-eb88-4c60-82f3-1d19f83cfc22": true } }, "outsideSid": "9aae8612-f8e7-40cc-a547-e8d3abd4070c", "id": "501833d2-7fac-48bb-96e3-ca479caa13e7", "state": "authenticated", "sessionAttributes": { "opbs": "47ede6b5-4d52-4582-a0b3-3d02227c8de8", "response_type": "code", "session_id": "501833d2-7fac-48bb-96e3-ca479caa13e7", "client_id": "b61674e6-eb88-4c60-82f3-1d19f83cfc22", "sid": "9aae8612-f8e7-40cc-a547-e8d3abd4070c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7c42c449-bdad-409b-8fca-5b0c28311deb", "old_session_id": "0c3f8241-eb6d-47b0-8871-202f5a690440" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:33" }, { "isJwt": false, "opbrowserState": "05d2eb90-b426-4260-8453-00526c4ed326", "deletable": true, "dn": "jansId=a642b703-d02b-4373-85e0-b17533e5fab4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:33", "creationDate": "2022-11-24T09:18:32", "ttl": 0, "sessionState": "00706ab21a1a5572231b4748ec0e479f846c4b5f9b8a115b82504a26b4ef056a.7b5e7546-d80c-4e1b-9942-2cadf33705da", "lastUsedAt": "2022-11-24T09:18:33", "permissionGrantedMap": { "permissionGranted": { "67daef8b-4bc8-4254-99c3-b0e9724dcb4b": true } }, "outsideSid": "5522e3d6-ae1c-4cea-b9d2-84dbeee370d4", "id": "a642b703-d02b-4373-85e0-b17533e5fab4", "state": "authenticated", "sessionAttributes": { "opbs": "05d2eb90-b426-4260-8453-00526c4ed326", "response_type": "token id_token", "session_id": "a642b703-d02b-4373-85e0-b17533e5fab4", "nonce": "f73b316e-d13f-4742-8650-ad450361c6a3", "client_id": "67daef8b-4bc8-4254-99c3-b0e9724dcb4b", "sid": "5522e3d6-ae1c-4cea-b9d2-84dbeee370d4", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1749d3af-d747-491f-b38f-98b42024edc5", "old_session_id": "68e2c01b-40b0-4114-9493-5976e2cd251f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:32" }, { "isJwt": false, "opbrowserState": "d4870fab-899b-4bf4-94ea-ec10fecd11ed", "deletable": true, "dn": "jansId=906d5915-3205-4ce3-a470-6d4dff2e5bc5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:33", "creationDate": "2022-11-24T09:18:32", "ttl": 0, "sessionState": "077de637c1ccad0a3654e9452146486558b36557d0bc67b7a510bd1c17b683d0.5c8dbdba-c5e2-4da5-a13f-6cea05fd1639", "lastUsedAt": "2022-11-24T09:18:33", "permissionGrantedMap": { "permissionGranted": { "1fa8cae5-b691-412d-accc-0de71a944acf": true } }, "outsideSid": "856b4792-ff8a-4b62-9020-8711baa22921", "id": "906d5915-3205-4ce3-a470-6d4dff2e5bc5", "state": "authenticated", "sessionAttributes": { "opbs": "d4870fab-899b-4bf4-94ea-ec10fecd11ed", "response_type": "token id_token", "session_id": "906d5915-3205-4ce3-a470-6d4dff2e5bc5", "nonce": "47bc5a82-16b0-44c9-b0c7-e3059670d4f0", "client_id": "1fa8cae5-b691-412d-accc-0de71a944acf", "sid": "856b4792-ff8a-4b62-9020-8711baa22921", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "picture", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c8e0d97a-2b51-48df-a80c-c8e20d5c9183", "old_session_id": "cddb0fdd-11c6-47fa-aeca-a833c2cdc70c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:32" }, { "isJwt": false, "opbrowserState": "44fe4b59-257c-4780-81cd-8bdf39c2759b", "deletable": true, "dn": "jansId=6f5e22ac-83ea-48c9-900b-9f06fcd9ed6e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:33", "creationDate": "2022-11-24T09:18:31", "ttl": 0, "sessionState": "2497e4b5fea14ad9a037826ed5ad3a33b72d762e6a4046c34470ffc9d74f24c6.38b8bfb1-aebb-49e6-b424-52ca27785d66", "lastUsedAt": "2022-11-24T09:18:33", "permissionGrantedMap": { "permissionGranted": { "51c54fa9-0dd2-4384-8186-49675a42f381": true } }, "outsideSid": "11629c62-1707-478c-9688-96d0f084fd45", "id": "6f5e22ac-83ea-48c9-900b-9f06fcd9ed6e", "state": "authenticated", "sessionAttributes": { "opbs": "44fe4b59-257c-4780-81cd-8bdf39c2759b", "response_type": "token id_token", "session_id": "6f5e22ac-83ea-48c9-900b-9f06fcd9ed6e", "nonce": "6b986001-51de-4b45-b2f6-36c3ff1617a9", "client_id": "51c54fa9-0dd2-4384-8186-49675a42f381", "sid": "11629c62-1707-478c-9688-96d0f084fd45", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3165a2c9-6045-4ac1-811d-da042ab9db6b", "old_session_id": "9f9c3ca5-ffad-4f0b-abb5-56c8a68dc533" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:31" }, { "isJwt": false, "opbrowserState": "b74bab5c-d1a9-4c87-860b-cf7cb0d067dd", "deletable": true, "dn": "jansId=7c250248-fc44-4f63-b253-e6098b909884,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:32", "creationDate": "2022-11-24T09:18:31", "ttl": 0, "sessionState": "6b587d6c1cbc7a2643293066d8294e00e3cd698db419e96f81aad614696c46d2.d7fc75df-5d55-42f8-8e32-0540614bc9e7", "lastUsedAt": "2022-11-24T09:18:32", "permissionGrantedMap": { "permissionGranted": { "b99072bf-1adc-42ca-9330-a5b849a12427": true } }, "outsideSid": "8ecca3ad-92f1-4827-ab6b-6f6cd3734866", "id": "7c250248-fc44-4f63-b253-e6098b909884", "state": "authenticated", "sessionAttributes": { "opbs": "b74bab5c-d1a9-4c87-860b-cf7cb0d067dd", "response_type": "code", "session_id": "7c250248-fc44-4f63-b253-e6098b909884", "client_id": "b99072bf-1adc-42ca-9330-a5b849a12427", "sid": "8ecca3ad-92f1-4827-ab6b-6f6cd3734866", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "fd0ecbd0-ce42-41a9-b8e8-75fd52026121", "old_session_id": "518f8051-3503-41d2-9689-00f9c83eac37" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:31" }, { "isJwt": false, "opbrowserState": "7e99f224-a35f-457f-b7af-1fb5ab8102e7", "deletable": true, "dn": "jansId=401a01c6-2ad1-4e09-b586-bf44148284dc,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:31", "creationDate": "2022-11-24T09:18:30", "ttl": 0, "sessionState": "f42064c15e934d95ba6adbec7ce43518f92076cd2438f729351f714679815464.41eb49de-d516-4a89-83b1-b66f31851561", "lastUsedAt": "2022-11-24T09:18:31", "permissionGrantedMap": { "permissionGranted": { "99425127-bb6c-4e1e-8bff-e3e5805bd97d": true } }, "outsideSid": "368a5225-5709-4bb4-a0c5-9ef4f5815e5d", "id": "401a01c6-2ad1-4e09-b586-bf44148284dc", "state": "authenticated", "sessionAttributes": { "opbs": "7e99f224-a35f-457f-b7af-1fb5ab8102e7", "response_type": "code", "session_id": "401a01c6-2ad1-4e09-b586-bf44148284dc", "client_id": "99425127-bb6c-4e1e-8bff-e3e5805bd97d", "sid": "368a5225-5709-4bb4-a0c5-9ef4f5815e5d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c033a6fa-c42e-49ca-8921-e53a61c3d320", "old_session_id": "cd6f4a9b-8e7a-405f-a63e-b41ba5deb87e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:30" }, { "isJwt": false, "opbrowserState": "b16fa23b-6bac-4cde-be3a-3e36fdfd877f", "deletable": true, "dn": "jansId=3384ac15-1eca-4bb8-b76f-ec64145abed0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:29", "creationDate": "2022-11-24T09:18:29", "ttl": 0, "sessionState": "3a7214b43b4ade5a28f1a749661e47cf10393224e21719294c8c545632a786d1.72750c63-a575-4415-80f5-4cc6730603b8", "lastUsedAt": "2022-11-24T09:18:29", "permissionGrantedMap": { "permissionGranted": { "159fd681-83e2-481f-b6d7-6c954d28c880": true } }, "outsideSid": "2ac4a711-52f8-4803-88e3-9a141ca376f7", "id": "3384ac15-1eca-4bb8-b76f-ec64145abed0", "state": "authenticated", "sessionAttributes": { "opbs": "b16fa23b-6bac-4cde-be3a-3e36fdfd877f", "response_type": "code", "session_id": "3384ac15-1eca-4bb8-b76f-ec64145abed0", "client_id": "159fd681-83e2-481f-b6d7-6c954d28c880", "sid": "2ac4a711-52f8-4803-88e3-9a141ca376f7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9a288c44-36f1-4102-9a63-41020719703d", "old_session_id": "eff1e1ae-1f86-4124-aaee-48b28701fbc4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:29" }, { "isJwt": false, "opbrowserState": "7b701d0b-882e-47aa-8f57-d332074d6338", "deletable": true, "dn": "jansId=03bb418e-3f4a-44ba-84fa-7a64fa1dca91,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:29", "creationDate": "2022-11-24T09:18:28", "ttl": 0, "sessionState": "21d4ba439b96ae83250fb4505ecc45530a777cec5f65f9a82f0f6a865f992622.e58d1ae6-e86f-442d-bf5b-8ef39956527a", "lastUsedAt": "2022-11-24T09:18:29", "permissionGrantedMap": { "permissionGranted": { "9c1de34e-4f69-43c2-999a-58895c6800ae": true } }, "outsideSid": "583bb40d-83b8-44fc-86a1-42636a07b716", "id": "03bb418e-3f4a-44ba-84fa-7a64fa1dca91", "state": "authenticated", "sessionAttributes": { "opbs": "7b701d0b-882e-47aa-8f57-d332074d6338", "response_type": "code", "session_id": "03bb418e-3f4a-44ba-84fa-7a64fa1dca91", "client_id": "9c1de34e-4f69-43c2-999a-58895c6800ae", "sid": "583bb40d-83b8-44fc-86a1-42636a07b716", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "fd076c76-1f3c-4a36-9d9a-8671d84d0e37", "old_session_id": "4c486e69-b7aa-4714-8410-7d12762c2f4c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:28" }, { "isJwt": false, "opbrowserState": "368e04fd-99af-4ec7-b597-9f3ffe28bfc9", "deletable": true, "dn": "jansId=7e1b1b03-f486-497a-bac4-0f2184b00e4c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:29", "creationDate": "2022-11-24T09:18:28", "ttl": 0, "sessionState": "8f5b33eb8a11e4073cb33ba520dd5d8812f18ee15d84ea8fb208bb9df2972168.ee4cfa53-68f8-481f-9afe-4cc61f9b09bd", "lastUsedAt": "2022-11-24T09:18:29", "permissionGrantedMap": { "permissionGranted": { "7cc83064-f1c3-4a3d-ba22-d412e111b5cd": true } }, "outsideSid": "69a98493-a589-4de1-b317-6d4eec0c5ffd", "id": "7e1b1b03-f486-497a-bac4-0f2184b00e4c", "state": "authenticated", "sessionAttributes": { "opbs": "368e04fd-99af-4ec7-b597-9f3ffe28bfc9", "response_type": "token id_token", "session_id": "7e1b1b03-f486-497a-bac4-0f2184b00e4c", "nonce": "437708d5-ce85-4fa8-b259-3204bb68ba8e", "client_id": "7cc83064-f1c3-4a3d-ba22-d412e111b5cd", "sid": "69a98493-a589-4de1-b317-6d4eec0c5ffd", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3f37936f-194b-4a88-be35-deed51512a93", "old_session_id": "1de6961a-d3c7-4927-85da-0711115866d4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:28" }, { "isJwt": false, "opbrowserState": "e81e62c5-2cfe-47a0-be34-e08c94f2dbd7", "deletable": true, "dn": "jansId=67842a63-0cde-4696-92e6-259f75734543,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:28", "creationDate": "2022-11-24T09:18:27", "ttl": 0, "sessionState": "37359a157b42f8e2a1b60b527d22eb0133073b0d8c8ca0f283cf5822dc98cc55.54b044e5-be34-4a14-a419-8654880324b5", "lastUsedAt": "2022-11-24T09:18:28", "permissionGrantedMap": { "permissionGranted": { "8e380a12-b340-4b45-b00a-4358fe73df7e": true } }, "outsideSid": "fc61c7cb-03de-4e44-929d-aa89b2112bcf", "id": "67842a63-0cde-4696-92e6-259f75734543", "state": "authenticated", "sessionAttributes": { "opbs": "e81e62c5-2cfe-47a0-be34-e08c94f2dbd7", "response_type": "code", "session_id": "67842a63-0cde-4696-92e6-259f75734543", "client_id": "8e380a12-b340-4b45-b00a-4358fe73df7e", "sid": "fc61c7cb-03de-4e44-929d-aa89b2112bcf", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ece23858-c2e4-406a-839e-cf1a18e29676", "old_session_id": "3be6c41e-a894-41b2-a0f1-a65afc9a01df" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:27" }, { "isJwt": false, "opbrowserState": "4f2755e9-8c96-476e-81c4-561c288f62c5", "deletable": true, "dn": "jansId=a1e12b85-7531-45e6-8f5a-6b39329c6311,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:27", "creationDate": "2022-11-24T09:18:26", "ttl": 0, "sessionState": "1224590448847aee4d27b5d0eac522d1df5e89666d5e7a96eaee8f8dfad99be7.f12f9b3d-685a-41bb-923a-59706793c3f7", "lastUsedAt": "2022-11-24T09:18:27", "permissionGrantedMap": { "permissionGranted": { "52bbcd09-89b1-47ab-acbe-117f3c17ee9b": true } }, "outsideSid": "4de2535c-4787-4f13-bfe3-acac9d35f583", "id": "a1e12b85-7531-45e6-8f5a-6b39329c6311", "state": "authenticated", "sessionAttributes": { "opbs": "4f2755e9-8c96-476e-81c4-561c288f62c5", "response_type": "id_token", "session_id": "a1e12b85-7531-45e6-8f5a-6b39329c6311", "nonce": "7137548a-12d1-48f9-b940-e4684373fe8b", "client_id": "52bbcd09-89b1-47ab-acbe-117f3c17ee9b", "sid": "4de2535c-4787-4f13-bfe3-acac9d35f583", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "37209297-df6c-4d13-9560-fd4ca0bfcb88", "old_session_id": "4de58bf9-e164-42ec-bd07-8982a366db7d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:26" }, { "isJwt": false, "opbrowserState": "eb92a89d-4e05-4a0f-9cef-73e85782335e", "deletable": true, "dn": "jansId=15947e07-590e-4c74-90ab-a5e5e6529ffe,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:27", "creationDate": "2022-11-24T09:18:26", "ttl": 0, "sessionState": "ca510e114d48d2490e378ddd8430cf90e73231c31dc5c5d898a9e3a97013527c.17d29140-8401-487a-8089-bfa421c12d08", "lastUsedAt": "2022-11-24T09:18:28", "permissionGrantedMap": { "permissionGranted": { "0cd5490a-c001-4dd1-be95-d75ddf843aed": true } }, "outsideSid": "5538435b-adba-4dcf-9de7-7457b919f7d6", "id": "15947e07-590e-4c74-90ab-a5e5e6529ffe", "state": "authenticated", "sessionAttributes": { "opbs": "eb92a89d-4e05-4a0f-9cef-73e85782335e", "response_type": "token id_token", "session_id": "15947e07-590e-4c74-90ab-a5e5e6529ffe", "nonce": "8e329569-2be7-458b-816c-51cedb52532f", "client_id": "0cd5490a-c001-4dd1-be95-d75ddf843aed", "sid": "5538435b-adba-4dcf-9de7-7457b919f7d6", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6971b3e2-3573-4bd5-85b7-afc29445243d", "old_session_id": "ed0390d0-223c-484e-9971-fb40691136f4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:26" }, { "isJwt": false, "opbrowserState": "2d240fbb-3fe8-45d2-b423-90b8667d9cb8", "deletable": true, "dn": "jansId=baa1f515-fcc2-47f8-96d7-e5afe4605672,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:27", "creationDate": "2022-11-24T09:18:26", "ttl": 0, "sessionState": "578ae9eabc2c95a121c1e95bf5afb5bbe77988bca379380ec76de4667eec0adf.39fb5be8-1534-4518-aa29-dc0d9917e573", "lastUsedAt": "2022-11-24T09:18:27", "permissionGrantedMap": { "permissionGranted": { "a5dc3b4f-57d6-4f91-b9ad-00b703e8b39f": true } }, "outsideSid": "cd8bff3b-a6d2-42e2-8c40-927d9c521eb3", "id": "baa1f515-fcc2-47f8-96d7-e5afe4605672", "state": "authenticated", "sessionAttributes": { "opbs": "2d240fbb-3fe8-45d2-b423-90b8667d9cb8", "response_type": "code", "session_id": "baa1f515-fcc2-47f8-96d7-e5afe4605672", "client_id": "a5dc3b4f-57d6-4f91-b9ad-00b703e8b39f", "sid": "cd8bff3b-a6d2-42e2-8c40-927d9c521eb3", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0a9f592c-647b-486f-bb6d-771f5d4780bc", "old_session_id": "b37b1138-2619-4284-8c45-a93ef321d7d3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:26" }, { "isJwt": false, "opbrowserState": "7638ff99-b932-4571-ab80-db78d30f9f0b", "deletable": true, "dn": "jansId=018c6219-7554-4842-9cda-247b1fef8447,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:25", "creationDate": "2022-11-24T09:18:24", "ttl": 0, "sessionState": "d2ab09deaff6022ffade22526d8857cc149c31d8c567ebbe3a0cfeb133568ce9.6fdfafe6-d608-4c90-8ea2-bb5e2a82629f", "lastUsedAt": "2022-11-24T09:18:26", "permissionGrantedMap": { "permissionGranted": { "ee6a409d-f4fd-4172-ba5f-6a371ab87e19": true } }, "outsideSid": "427c5a94-2e45-48b5-9333-76879be16535", "id": "018c6219-7554-4842-9cda-247b1fef8447", "state": "authenticated", "sessionAttributes": { "opbs": "7638ff99-b932-4571-ab80-db78d30f9f0b", "response_type": "token id_token", "session_id": "018c6219-7554-4842-9cda-247b1fef8447", "nonce": "2677cb26-cf46-4450-a3e6-7f1f6591362f", "client_id": "ee6a409d-f4fd-4172-ba5f-6a371ab87e19", "sid": "427c5a94-2e45-48b5-9333-76879be16535", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d96e8f74-e182-40c4-9d20-66eed8557f82", "old_session_id": "c09d46d3-cf8f-4d82-ac98-5c27701bb966" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:24" }, { "isJwt": false, "opbrowserState": "c9f51adf-1bfa-4c5d-980b-7943566cf2c4", "deletable": true, "dn": "jansId=22948dfc-37ff-4202-a7fa-9f4525f8acdc,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:24", "creationDate": "2022-11-24T09:18:23", "ttl": 0, "sessionState": "1ea380d01bf6e41a928354aec6562f7c893a82148cbdf661a8fe52b88f563b0f.12ecfff7-2fe7-4e1d-9497-39f9d2659ea0", "lastUsedAt": "2022-11-24T09:18:24", "permissionGrantedMap": { "permissionGranted": { "3fc70158-79bb-4e71-a1a9-6fdd3132211c": true } }, "outsideSid": "0026ef36-1788-4d11-9385-844c006a9559", "id": "22948dfc-37ff-4202-a7fa-9f4525f8acdc", "state": "authenticated", "sessionAttributes": { "opbs": "c9f51adf-1bfa-4c5d-980b-7943566cf2c4", "response_type": "code", "session_id": "22948dfc-37ff-4202-a7fa-9f4525f8acdc", "client_id": "3fc70158-79bb-4e71-a1a9-6fdd3132211c", "sid": "0026ef36-1788-4d11-9385-844c006a9559", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "41f798df-d976-4ca3-93b3-e37c2f9e6b8e", "old_session_id": "d696616f-89a5-4e82-9d8f-98cd34d077f4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:23" }, { "isJwt": false, "opbrowserState": "df318d67-f1e7-40ac-80e3-1561c2f94c5f", "deletable": true, "dn": "jansId=141e6e4d-e8cb-4fa5-9115-49e42bf5022a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:23", "creationDate": "2022-11-24T09:18:22", "ttl": 0, "sessionState": "32f462eb30bfbfc02b4b5d21f93a69a8f7f2ece680a6b17235b1513056f64a2c.b4c4666f-9250-438b-a919-d70a97fc76a4", "lastUsedAt": "2022-11-24T09:18:23", "permissionGrantedMap": { "permissionGranted": { "cc728ae2-2d42-4349-8e79-6a8f353b7536": true } }, "outsideSid": "e26c2f78-d5a5-498f-8cb0-c36a0e952110", "id": "141e6e4d-e8cb-4fa5-9115-49e42bf5022a", "state": "authenticated", "sessionAttributes": { "opbs": "df318d67-f1e7-40ac-80e3-1561c2f94c5f", "response_type": "code id_token", "session_id": "141e6e4d-e8cb-4fa5-9115-49e42bf5022a", "code_challenge_method": "s256", "nonce": "db8e9efb-e0f1-4cb3-9f47-23e073bb7b0b", "client_id": "cc728ae2-2d42-4349-8e79-6a8f353b7536", "sid": "e26c2f78-d5a5-498f-8cb0-c36a0e952110", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ffc784da-cb1e-4eb3-b032-0ed4b5e9d5bf", "old_session_id": "64c56db1-f3bb-4122-aac3-101586fa9cc7", "code_challenge": "vrpcWDdIPI4P086MuPEdBBCtyiMjtXPcrCS8LQOFKCU" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:22" }, { "isJwt": false, "opbrowserState": "eaf39aeb-7fb0-49f9-8ea4-1b25c5acfc41", "deletable": true, "dn": "jansId=b47ceb2d-9f82-4844-bdf9-a2c13562866e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:23", "creationDate": "2022-11-24T09:18:22", "ttl": 0, "sessionState": "c63d6f30248dc8371e25229ce8663a7f3fa0666afd401eceaa2d2fa9aa00bc0d.474e3a59-41f3-4ae8-9ef3-e76d9ba29bb3", "lastUsedAt": "2022-11-24T09:18:23", "permissionGrantedMap": { "permissionGranted": { "33bb2c76-d6e0-4c01-a881-b6756fc1a853": true } }, "outsideSid": "1ea83779-0abe-4049-9ae4-51ac49108608", "id": "b47ceb2d-9f82-4844-bdf9-a2c13562866e", "state": "authenticated", "sessionAttributes": { "opbs": "eaf39aeb-7fb0-49f9-8ea4-1b25c5acfc41", "response_type": "code", "session_id": "b47ceb2d-9f82-4844-bdf9-a2c13562866e", "client_id": "33bb2c76-d6e0-4c01-a881-b6756fc1a853", "sid": "1ea83779-0abe-4049-9ae4-51ac49108608", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8051c9b9-fd19-4317-a8c5-e02335666e99", "old_session_id": "13dd3ed4-37b9-4e90-9b6a-43afd44f321d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:22" }, { "isJwt": false, "opbrowserState": "a39277b8-af0f-4d1a-932a-2ab0953f7c7c", "deletable": true, "dn": "jansId=373fa65c-0de5-440a-971a-ab565fab2c43,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:21", "creationDate": "2022-11-24T09:18:20", "ttl": 0, "sessionState": "8e8e1866a647b43c9a0d049916d20d3c898096bcb9f76414473f459496593f86.61822162-2e19-4496-b31c-6dc27c5f94bd", "lastUsedAt": "2022-11-24T09:18:21", "permissionGrantedMap": { "permissionGranted": { "173c1ebe-f7c3-4aa9-92d2-2220c1db1e5a": true } }, "outsideSid": "b823178e-6840-4c38-a8a4-0ad6a8255d21", "id": "373fa65c-0de5-440a-971a-ab565fab2c43", "state": "authenticated", "sessionAttributes": { "opbs": "a39277b8-af0f-4d1a-932a-2ab0953f7c7c", "response_type": "code", "session_id": "373fa65c-0de5-440a-971a-ab565fab2c43", "client_id": "173c1ebe-f7c3-4aa9-92d2-2220c1db1e5a", "sid": "b823178e-6840-4c38-a8a4-0ad6a8255d21", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "44ed6e77-ae63-42ab-9031-0e6779aeca71", "old_session_id": "8b97b016-69a8-4713-87eb-676207218f22" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:20" }, { "isJwt": false, "opbrowserState": "df487143-5cb0-44eb-b6d6-be20526368a8", "deletable": true, "dn": "jansId=985793ef-36f7-4b8f-83f0-a51e2047dbce,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:21", "creationDate": "2022-11-24T09:18:20", "ttl": 0, "sessionState": "7addfb1754832def365c3c5c70ccc26a65b74934fa1ffd9ce5caae061c9a3161.3de443d8-62cf-4a3d-8a3a-cdf134246336", "lastUsedAt": "2022-11-24T09:18:21", "permissionGrantedMap": { "permissionGranted": { "3afd9ada-e185-4b49-a76e-5408451b9db0": true } }, "outsideSid": "66c2d326-9c45-44b6-ab80-28daff1b36ae", "id": "985793ef-36f7-4b8f-83f0-a51e2047dbce", "state": "authenticated", "sessionAttributes": { "opbs": "df487143-5cb0-44eb-b6d6-be20526368a8", "response_type": "code", "session_id": "985793ef-36f7-4b8f-83f0-a51e2047dbce", "code_challenge_method": "s256", "client_id": "3afd9ada-e185-4b49-a76e-5408451b9db0", "sid": "66c2d326-9c45-44b6-ab80-28daff1b36ae", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8356c488-6879-471e-8b6e-cadf965889f5", "old_session_id": "d6189e34-d01f-4eeb-a39d-dc30519b820f", "code_challenge": "5j4KI7fi3uHVh3oQdK1vp4mFMMob6g3iSL-7QaKMqQc" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:20" }, { "isJwt": false, "opbrowserState": "5f3ba087-d145-48a7-b60e-2c79fa9dda53", "deletable": true, "dn": "jansId=aa3d000c-ef4b-4c3c-b2dd-acdf35e3f330,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:20", "creationDate": "2022-11-24T09:18:19", "ttl": 0, "sessionState": "4127eedfc3dafec39672ec416ebaba79639f9ea723800818034b2a71eb92f861.f8c4d35f-7ab1-4ead-8a75-97302e3751d4", "lastUsedAt": "2022-11-24T09:18:20", "permissionGrantedMap": { "permissionGranted": { "81645bb9-86c9-4f55-9608-150de024dde9": true } }, "outsideSid": "5f1e3560-c91d-46ff-902f-e9fc3613aecc", "id": "aa3d000c-ef4b-4c3c-b2dd-acdf35e3f330", "state": "authenticated", "sessionAttributes": { "opbs": "5f3ba087-d145-48a7-b60e-2c79fa9dda53", "response_type": "code", "session_id": "aa3d000c-ef4b-4c3c-b2dd-acdf35e3f330", "client_id": "81645bb9-86c9-4f55-9608-150de024dde9", "sid": "5f1e3560-c91d-46ff-902f-e9fc3613aecc", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3aa55320-93f0-4f64-87d5-6c58a9e5ec16", "old_session_id": "a69325d3-0d51-4c73-80c0-df14cb3b775c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:19" }, { "isJwt": false, "opbrowserState": "5b7d4743-17b0-402c-b0c6-ea05a6f651e1", "deletable": true, "dn": "jansId=5085d390-302e-4925-adb0-e62e66d49192,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:18", "creationDate": "2022-11-24T09:18:18", "ttl": 0, "sessionState": "7441da621cfedcde1f422117fa7842eb47525b22750c5dca82b4ab20139aea41.ca06fdb3-1158-4e79-bb16-270ddf1111d4", "lastUsedAt": "2022-11-24T09:18:18", "permissionGrantedMap": { "permissionGranted": { "ac4b63d5-36db-4ddd-8bf4-6f20a4a28d59": true } }, "outsideSid": "ad43a449-39ff-48bf-af6f-461df8a58aea", "id": "5085d390-302e-4925-adb0-e62e66d49192", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "5b7d4743-17b0-402c-b0c6-ea05a6f651e1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:18" }, { "isJwt": false, "opbrowserState": "df47157b-144d-4ecf-9cbc-600823439d29", "deletable": true, "dn": "jansId=94ddd7fc-c956-4122-9325-6bd9ed3abad3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:19", "creationDate": "2022-11-24T09:18:18", "ttl": 0, "sessionState": "8e3dca88b492e7e12f61883b5b63ba7eae0a83b86ee3f22d3dbf108b1980d602.445fddf5-5c2f-4cc4-823f-4bb9913daaef", "lastUsedAt": "2022-11-24T09:18:19", "permissionGrantedMap": { "permissionGranted": { "5c83f33d-9628-4fe9-9834-c2f96afd8358": true } }, "outsideSid": "79d8c6c4-0066-4e79-95b7-0fb86bcaf66d", "id": "94ddd7fc-c956-4122-9325-6bd9ed3abad3", "state": "authenticated", "sessionAttributes": { "opbs": "df47157b-144d-4ecf-9cbc-600823439d29", "response_type": "token id_token", "session_id": "94ddd7fc-c956-4122-9325-6bd9ed3abad3", "nonce": "d5e4b826-8997-4ebb-88dd-85d47f162356", "client_id": "5c83f33d-9628-4fe9-9834-c2f96afd8358", "sid": "79d8c6c4-0066-4e79-95b7-0fb86bcaf66d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "99d685c5-aad3-44c1-91d8-5c3e6f00a449", "old_session_id": "5c98637e-b404-41f5-923e-e2bb804041cf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:18" }, { "isJwt": false, "opbrowserState": "63b6bd5c-dbc9-4286-b2ee-67c28f422c81", "deletable": true, "dn": "jansId=590c7b3c-4de2-48ee-8142-22b66709e85e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:14", "creationDate": "2022-11-24T09:18:14", "ttl": 0, "sessionState": "29ee42c15d61cfe31eb347516a5e252912655f95f7ef049643454044c9c1a0bb.9013e9e5-9f5f-4a9a-975d-005e0112cf7b", "lastUsedAt": "2022-11-24T09:18:16", "permissionGrantedMap": { }, "outsideSid": "e6b26293-5617-40f1-9ee2-a100408dc67b", "id": "590c7b3c-4de2-48ee-8142-22b66709e85e", "state": "authenticated", "sessionAttributes": { "pct": "59414f6e-807c-4604-bea1-0d6f23d4f18d", "claims_redirect_uri": "https://jenkins-build.jans.io/jans-auth/restv1/uma/gather_claims", "uma_step_passed_1": "true", "ticket": "35dfe516-48e5-4665-a4c8-37463c786cb9", "opbs": "63b6bd5c-dbc9-4286-b2ee-67c28f422c81", "uma": "true", "gather_script_name": "sampleClaimsGathering", "step": "2", "client_id": "AB77-1A2B" }, "persisted": false, "expirationDate": "2022-11-25T09:18:14" }, { "isJwt": false, "opbrowserState": "a6d882e3-af86-4308-9018-8c595df17c1f", "deletable": true, "dn": "jansId=24fcae42-69df-4531-b283-33d43607eb39,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:15", "creationDate": "2022-11-24T09:18:14", "ttl": 0, "sessionState": "2acbc19539f078454bd42003228a34bb7e97bfb942ecf24391acbf15b19b66b2.1c312fa5-333c-491d-b953-7a6176fe7c0a", "lastUsedAt": "2022-11-24T09:18:15", "permissionGrantedMap": { "permissionGranted": { "a2ba0200-db99-4c31-92c7-1e8e7220ef7e": true } }, "outsideSid": "e4a09eaf-99d2-47e7-990d-874f0ff34ad9", "id": "24fcae42-69df-4531-b283-33d43607eb39", "state": "authenticated", "sessionAttributes": { "opbs": "a6d882e3-af86-4308-9018-8c595df17c1f", "response_type": "code", "session_id": "24fcae42-69df-4531-b283-33d43607eb39", "client_id": "a2ba0200-db99-4c31-92c7-1e8e7220ef7e", "sid": "e4a09eaf-99d2-47e7-990d-874f0ff34ad9", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6ec4ef30-828d-48fc-b090-67882a80b983", "old_session_id": "81d32ee3-5d1e-43f1-973f-7579a571c783" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:14" }, { "isJwt": false, "opbrowserState": "fc3d5224-7e4c-4f5b-9dc7-b6479f614de9", "deletable": true, "dn": "jansId=01f341e2-4cf8-4752-b1ba-4c65bbae8df1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:14", "creationDate": "2022-11-24T09:18:13", "ttl": 0, "sessionState": "ee68f69e7a53bf080129b27ae2f4a44539fb469787cc9afd53f5f917396b6a77.e4f4c471-fb11-4636-b775-52314826e942", "lastUsedAt": "2022-11-24T09:18:14", "permissionGrantedMap": { "permissionGranted": { "4a568877-0932-4e96-8c37-ec0fc6e09888": true } }, "outsideSid": "d97e4636-a950-4992-ac31-f80ec07294b1", "id": "01f341e2-4cf8-4752-b1ba-4c65bbae8df1", "state": "authenticated", "sessionAttributes": { "opbs": "fc3d5224-7e4c-4f5b-9dc7-b6479f614de9", "response_type": "token id_token", "session_id": "01f341e2-4cf8-4752-b1ba-4c65bbae8df1", "nonce": "d49776bd-e89a-4fe7-af74-de17660c0a55", "client_id": "4a568877-0932-4e96-8c37-ec0fc6e09888", "sid": "d97e4636-a950-4992-ac31-f80ec07294b1", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "88c9d426-f8c5-4ca0-b7c7-77a6f87960fa", "old_session_id": "d741a2d5-2735-4fbb-8f00-24e03dbc1632" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:13" }, { "isJwt": false, "opbrowserState": "aa2df51c-ca03-41ea-aac9-3f3d75f28394", "deletable": true, "dn": "jansId=0d35dafb-32d4-4a1c-99d3-88757626ceaa,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:13", "creationDate": "2022-11-24T09:18:12", "ttl": 0, "sessionState": "892654d9021266ecb5e6078b73adab150b34a76fc884e9056c0282295bd095e6.6b4374b1-0db7-4da6-b81e-a027f331d43d", "lastUsedAt": "2022-11-24T09:18:13", "permissionGrantedMap": { "permissionGranted": { "7b282fc4-2f65-4282-85b1-c66bf4a5b0fc": true } }, "outsideSid": "032c46fe-318b-44c3-9eca-8df1e091d519", "id": "0d35dafb-32d4-4a1c-99d3-88757626ceaa", "state": "authenticated", "sessionAttributes": { "opbs": "aa2df51c-ca03-41ea-aac9-3f3d75f28394", "response_type": "code", "session_id": "0d35dafb-32d4-4a1c-99d3-88757626ceaa", "client_id": "7b282fc4-2f65-4282-85b1-c66bf4a5b0fc", "sid": "032c46fe-318b-44c3-9eca-8df1e091d519", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "aeadd2e5-bdd8-4899-a3af-d344f991f11c", "old_session_id": "f390792f-a457-45dc-98c8-13084e8cfe4b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:12" }, { "isJwt": false, "opbrowserState": "be7cc710-e4d0-43d6-bedf-21bf37ab8d72", "deletable": true, "dn": "jansId=423d1085-40b0-469e-84fa-a8014487cc58,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:11", "creationDate": "2022-11-24T09:18:10", "ttl": 0, "sessionState": "b570ade21e809d76577fe99d03dfa3a70a284b05784702c9ce1d1e0e8588e96b.291d5255-e67b-4a11-8781-f4ea1b25af99", "lastUsedAt": "2022-11-24T09:18:11", "permissionGrantedMap": { "permissionGranted": { "a1af7765-e8f0-42d9-a25c-eebec2651cc1": true } }, "outsideSid": "2a92695d-c000-4b4c-a67f-36691f9650ab", "id": "423d1085-40b0-469e-84fa-a8014487cc58", "state": "authenticated", "sessionAttributes": { "opbs": "be7cc710-e4d0-43d6-bedf-21bf37ab8d72", "response_type": "code", "session_id": "423d1085-40b0-469e-84fa-a8014487cc58", "client_id": "a1af7765-e8f0-42d9-a25c-eebec2651cc1", "sid": "2a92695d-c000-4b4c-a67f-36691f9650ab", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3c2ff4f5-1944-4b7a-9e12-6a3fe4dfedd5", "old_session_id": "93a9cba6-3c97-41fe-bb3d-2f7d7f0cbfa5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:10" }, { "isJwt": false, "opbrowserState": "485c3602-0b94-4f2e-a77a-f2c3d8e35641", "deletable": true, "dn": "jansId=0b69ae85-780d-4dfd-a703-ab79ea3740cf,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:10", "creationDate": "2022-11-24T09:18:10", "ttl": 0, "sessionState": "0a9d71e54059d6e2b9dc331e6936ce23892b276bb3423dd61f830e1bade7fe70.8380a177-d423-49f2-ad71-0e25d42f411e", "lastUsedAt": "2022-11-24T09:18:10", "permissionGrantedMap": { }, "outsideSid": "3e93d404-8e98-4e8c-ba35-02cd69ebcf53", "id": "0b69ae85-780d-4dfd-a703-ab79ea3740cf", "state": "authenticated", "sessionAttributes": { "opbs": "485c3602-0b94-4f2e-a77a-f2c3d8e35641" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:10" }, { "isJwt": false, "opbrowserState": "dfdc9b63-ea17-4688-b22c-1e46562f4df4", "deletable": true, "dn": "jansId=9b6bc7da-8fd8-43d1-8e68-1ce84a2a311f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:09", "creationDate": "2022-11-24T09:18:09", "ttl": 0, "sessionState": "b5abb8aa20969031d5e8ac8bdcac5d742aab26cc0dd6b759508a1abe3e4333d0.1402fca6-2254-4316-8611-0a3801d0517b", "lastUsedAt": "2022-11-24T09:18:09", "permissionGrantedMap": { }, "outsideSid": "bbc3c5f9-04ee-4a85-bda4-f41f98db984e", "id": "9b6bc7da-8fd8-43d1-8e68-1ce84a2a311f", "state": "authenticated", "sessionAttributes": { "opbs": "dfdc9b63-ea17-4688-b22c-1e46562f4df4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:09" }, { "isJwt": false, "opbrowserState": "8a9466d3-d6c5-4777-832f-2e9607100bd5", "deletable": true, "dn": "jansId=9a976bad-6bea-4fed-949b-9645abfe88a7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:09", "creationDate": "2022-11-24T09:18:09", "ttl": 0, "sessionState": "e782f910bb0d263a599f9b8e77f304d2f30f38406706321b7f5033c81930dae3.495cd277-fa12-416d-96e3-4b2c6ce09524", "lastUsedAt": "2022-11-24T09:18:09", "permissionGrantedMap": { }, "outsideSid": "a0ceae1d-c9f0-446b-9236-d8e745437bce", "id": "9a976bad-6bea-4fed-949b-9645abfe88a7", "state": "authenticated", "sessionAttributes": { "opbs": "8a9466d3-d6c5-4777-832f-2e9607100bd5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:09" }, { "isJwt": false, "opbrowserState": "a507e75e-43ff-45b1-8199-01b1bd8cbabf", "deletable": true, "dn": "jansId=827e315c-d861-4c9d-b3a2-fc7773aad14d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:09", "creationDate": "2022-11-24T09:18:08", "ttl": 0, "sessionState": "783245196c6d1ebd6ac4c228e0f633308639edcaa5e0033c38e86b51eac2c79a.e6764593-96dc-49a6-90ac-7863fa4b0b9b", "lastUsedAt": "2022-11-24T09:18:10", "permissionGrantedMap": { "permissionGranted": { "2dbea6ab-0883-4a4b-a56a-192015731d2c": true } }, "outsideSid": "d6358381-765e-43c8-b6ee-499420650ccd", "id": "827e315c-d861-4c9d-b3a2-fc7773aad14d", "state": "authenticated", "sessionAttributes": { "opbs": "a507e75e-43ff-45b1-8199-01b1bd8cbabf", "response_type": "token id_token", "session_id": "827e315c-d861-4c9d-b3a2-fc7773aad14d", "nonce": "10aaae87-3f6a-459a-b103-5fbe82adc58d", "client_id": "2dbea6ab-0883-4a4b-a56a-192015731d2c", "sid": "d6358381-765e-43c8-b6ee-499420650ccd", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email org_name work_phone", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c00165bb-df60-403f-b8dd-a56fd371e890", "old_session_id": "0cdfbad8-3cc9-4eea-ae47-2a20f5187015" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:08" }, { "isJwt": false, "opbrowserState": "a57c899b-e3a8-4287-ae44-243b757b0fbd", "deletable": true, "dn": "jansId=5b5c8208-60ae-476d-820b-e5fa98e48b82,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:08", "creationDate": "2022-11-24T09:18:07", "ttl": 0, "sessionState": "b2c16f55844e9957885a4daae009234d26083bf4e32f64effd9d9e7f7b25fdae.ad746556-3bba-4b80-a886-9d3956c796fc", "lastUsedAt": "2022-11-24T09:18:09", "permissionGrantedMap": { "permissionGranted": { "7adcff34-d06b-43fb-81d3-877a7a3b5b03": true } }, "outsideSid": "96551d9d-4311-4660-b213-f240cd262a20", "id": "5b5c8208-60ae-476d-820b-e5fa98e48b82", "state": "authenticated", "sessionAttributes": { "opbs": "a57c899b-e3a8-4287-ae44-243b757b0fbd", "response_type": "token id_token", "session_id": "5b5c8208-60ae-476d-820b-e5fa98e48b82", "nonce": "f5bd723b-2ac1-43c5-b2db-2a82db77dee8", "client_id": "7adcff34-d06b-43fb-81d3-877a7a3b5b03", "sid": "96551d9d-4311-4660-b213-f240cd262a20", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "478cef91-068d-4267-84ce-f3c33ec28b9b", "old_session_id": "d43d5aa2-4af0-4ef9-b5ab-2cec60e38ddc" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:07" }, { "isJwt": false, "opbrowserState": "e208d638-4cc5-4b12-b3d2-a6392d3c751c", "deletable": true, "dn": "jansId=5dd1bba1-1e70-464f-87e5-83c623316618,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:07", "creationDate": "2022-11-24T09:18:07", "ttl": 0, "sessionState": "cce25978b4affa6d37c0773d20f5a84908e1118ce2d45b67168b4e165389b753.1be0be65-2bb1-41d1-818f-05a1b670131a", "lastUsedAt": "2022-11-24T09:18:07", "permissionGrantedMap": { }, "outsideSid": "ae8370cc-f892-4c70-bdb6-b94fa4756910", "id": "5dd1bba1-1e70-464f-87e5-83c623316618", "state": "authenticated", "sessionAttributes": { "opbs": "e208d638-4cc5-4b12-b3d2-a6392d3c751c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:07" }, { "isJwt": false, "opbrowserState": "d9d2bb28-2dd0-4503-8246-14572a344724", "deletable": true, "dn": "jansId=82b9ef3a-a6fe-435c-9d3c-beb8fdd46dc9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:06", "creationDate": "2022-11-24T09:18:06", "ttl": 0, "sessionState": "8b5155001b2a5414c6947bf55ccce576ecaadf6a976f1fa49841adc846887732.56f7b8c0-2ed3-468c-ad06-9550ec850308", "lastUsedAt": "2022-11-24T09:18:06", "permissionGrantedMap": { }, "outsideSid": "f1436cac-d47e-4aa4-8a8c-b6895609b65a", "id": "82b9ef3a-a6fe-435c-9d3c-beb8fdd46dc9", "state": "authenticated", "sessionAttributes": { "opbs": "d9d2bb28-2dd0-4503-8246-14572a344724" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:06" }, { "isJwt": false, "opbrowserState": "8061c8d4-08d9-456e-a283-829341c1b1e3", "deletable": true, "dn": "jansId=6ba1e85b-6c0a-47ed-bcc8-97440d58ca2b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:06", "creationDate": "2022-11-24T09:18:06", "ttl": 0, "sessionState": "9b483a8ba055c1dfd9aa5dabff638b73c915f2f37da58c38da0ffd361201279d.6ae5f674-6c51-4ecc-862f-210e92884527", "lastUsedAt": "2022-11-24T09:18:06", "permissionGrantedMap": { }, "outsideSid": "eb01f3f7-2b65-4f3e-b7d9-a11d1502079e", "id": "6ba1e85b-6c0a-47ed-bcc8-97440d58ca2b", "state": "authenticated", "sessionAttributes": { "opbs": "8061c8d4-08d9-456e-a283-829341c1b1e3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:06" }, { "isJwt": false, "opbrowserState": "4371ca51-c6c6-415f-a692-51036cb3c46f", "deletable": true, "dn": "jansId=3d2e3eb3-4d28-4528-ab1f-6c98cbf9ba16,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:06", "creationDate": "2022-11-24T09:18:05", "ttl": 0, "sessionState": "bf70d3a1a90fef4e501b3ddf93af3a40940104562b16991b061f4ea85fcc09a3.71d80679-629c-478f-b5fd-a2fa7bc46dd5", "lastUsedAt": "2022-11-24T09:18:06", "permissionGrantedMap": { "permissionGranted": { "0ee6ce70-98bc-46ae-870a-4ee9d11acc1e": true } }, "outsideSid": "4d2629cb-00ba-4aee-861b-70f8eae378ef", "id": "3d2e3eb3-4d28-4528-ab1f-6c98cbf9ba16", "state": "authenticated", "sessionAttributes": { "opbs": "4371ca51-c6c6-415f-a692-51036cb3c46f", "response_type": "code", "session_id": "3d2e3eb3-4d28-4528-ab1f-6c98cbf9ba16", "client_id": "0ee6ce70-98bc-46ae-870a-4ee9d11acc1e", "sid": "4d2629cb-00ba-4aee-861b-70f8eae378ef", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "433f1adf-1f8c-4731-9e0d-045cdf36e512", "old_session_id": "3d90f32d-c905-4c2c-972d-4d0d1f5a624f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:05" }, { "isJwt": false, "opbrowserState": "f2347bd1-41f1-42ce-90a1-566a6d4c059c", "deletable": true, "dn": "jansId=b8b958ee-84fc-48c8-a702-32e09aa22728,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:05", "creationDate": "2022-11-24T09:18:04", "ttl": 0, "sessionState": "cf598d2e006ccdaa2422548411056c60463a7cc30f5b2a980b30f1a22ca788e1.da1717c2-bbe0-4349-abac-8e11eec769c2", "lastUsedAt": "2022-11-24T09:18:05", "permissionGrantedMap": { "permissionGranted": { "fdddc07b-785f-457a-9617-5f6206d8f9df": true } }, "outsideSid": "dbd4d2a0-e0fe-4e0a-a705-f57c2da10e26", "id": "b8b958ee-84fc-48c8-a702-32e09aa22728", "state": "authenticated", "sessionAttributes": { "opbs": "f2347bd1-41f1-42ce-90a1-566a6d4c059c", "response_type": "code id_token", "session_id": "b8b958ee-84fc-48c8-a702-32e09aa22728", "nonce": "ca943ae1-2387-4e58-802c-4f7a4a4c6d65", "client_id": "fdddc07b-785f-457a-9617-5f6206d8f9df", "sid": "dbd4d2a0-e0fe-4e0a-a705-f57c2da10e26", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6eb995d0-4ede-4ef4-8ab7-33943e4f5da7", "old_session_id": "d5713c22-2d03-4fb6-a160-8b14820bd4a9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:04" }, { "isJwt": false, "opbrowserState": "aec5543b-024e-4fa7-bcf8-6badba32f89e", "deletable": true, "dn": "jansId=b737661a-01e2-4586-be07-c224701ee2c0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:05", "creationDate": "2022-11-24T09:18:04", "ttl": 0, "sessionState": "531d1b81863437d5b20b2188b99532dfb8c1fd741063c464d2c6dcedb4650180.08a602f9-f574-4057-b006-846000618887", "lastUsedAt": "2022-11-24T09:18:06", "permissionGrantedMap": { "permissionGranted": { "a895f9c4-3203-4732-b3e8-3461c94049fe": true } }, "outsideSid": "1974bf81-f844-433c-b322-355b564e4c3d", "id": "b737661a-01e2-4586-be07-c224701ee2c0", "state": "authenticated", "sessionAttributes": { "opbs": "aec5543b-024e-4fa7-bcf8-6badba32f89e", "response_type": "token id_token", "session_id": "b737661a-01e2-4586-be07-c224701ee2c0", "nonce": "11087779-b43b-4a75-813b-efbb7830d505", "client_id": "a895f9c4-3203-4732-b3e8-3461c94049fe", "sid": "1974bf81-f844-433c-b322-355b564e4c3d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "065895fc-34a5-493b-a0f4-8239d5c1e235", "old_session_id": "96dfaf9c-dd5b-42a0-8ab1-f4979ec08ddb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:04" }, { "isJwt": false, "opbrowserState": "88630ce8-24a8-42a6-811d-f2ff38750350", "deletable": true, "dn": "jansId=a8aaa610-bc1f-49f0-af61-383570560190,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:03", "creationDate": "2022-11-24T09:18:03", "ttl": 0, "sessionState": "a0f8b14c2827837e3d2f92d521f79f6c5a4683535ed7c2ec10cfc10d7eae5183.ec0ce48a-13ac-46b5-8d72-6d4ff95e4615", "lastUsedAt": "2022-11-24T09:18:03", "permissionGrantedMap": { }, "outsideSid": "4b0c2cb5-c9d8-46e5-ac1e-ed7ecc2a12b5", "id": "a8aaa610-bc1f-49f0-af61-383570560190", "state": "authenticated", "sessionAttributes": { "opbs": "88630ce8-24a8-42a6-811d-f2ff38750350" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:03" }, { "isJwt": false, "opbrowserState": "eae43249-119c-40a5-a443-20fd93f614bb", "deletable": true, "dn": "jansId=802107b2-3bc3-4caf-ba7d-e4aa5701fc85,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:04", "creationDate": "2022-11-24T09:18:03", "ttl": 0, "sessionState": "2d5556a025dce85d6772966c26915126b85c99b7e4e616dd6a0dc5e13e5c7730.3c80c085-9ece-406c-9d1f-900f36a96cf3", "lastUsedAt": "2022-11-24T09:18:04", "permissionGrantedMap": { "permissionGranted": { "aa17c313-b013-4780-83f4-b0ed148cadd1": true } }, "outsideSid": "44c1c83f-0313-4b43-8ebf-d02c0308e353", "id": "802107b2-3bc3-4caf-ba7d-e4aa5701fc85", "state": "authenticated", "sessionAttributes": { "opbs": "eae43249-119c-40a5-a443-20fd93f614bb", "response_type": "code token", "session_id": "802107b2-3bc3-4caf-ba7d-e4aa5701fc85", "nonce": "ce8691c1-9084-4964-ade7-039f0312dc4d", "client_id": "aa17c313-b013-4780-83f4-b0ed148cadd1", "sid": "44c1c83f-0313-4b43-8ebf-d02c0308e353", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "685dba81-97cc-4e73-8b93-f38b6ea2329d", "old_session_id": "db12e72b-bfef-4cb7-8cc5-b5a4db78ee3c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:03" }, { "isJwt": false, "opbrowserState": "455dfd9f-5969-42c3-bf0e-6cdccf1ac4ed", "deletable": true, "dn": "jansId=19cc549a-41fd-41e7-8102-551977db8488,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:02", "creationDate": "2022-11-24T09:18:02", "ttl": 0, "sessionState": "c4a1556ad7a46266035b5cb6f305c58cb9af2bb29446e0309647a4e71fb288ac.d995a2b2-ffa8-45cf-8c65-a6f498d01b70", "lastUsedAt": "2022-11-24T09:18:02", "permissionGrantedMap": { }, "outsideSid": "eee7afe8-e652-4800-a737-1b204f80807e", "id": "19cc549a-41fd-41e7-8102-551977db8488", "state": "authenticated", "sessionAttributes": { "opbs": "455dfd9f-5969-42c3-bf0e-6cdccf1ac4ed" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:02" }, { "isJwt": false, "opbrowserState": "f4e52d6f-5eb6-4dea-a4f1-ed6aa6d16317", "deletable": true, "dn": "jansId=662a6f33-c112-448d-922e-bdb76200b2a7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:02", "creationDate": "2022-11-24T09:18:02", "ttl": 0, "sessionState": "3a122e5201452d62ac7c5671bfec5da7abb02ffae53cdf9904a1333e0d9b4469.362a1c29-637f-4a50-8de6-b39ec2290cde", "lastUsedAt": "2022-11-24T09:18:02", "permissionGrantedMap": { "permissionGranted": { "beadadb7-e838-4de3-91e1-8741ed21fc2b": true } }, "outsideSid": "2d6897c0-9968-4834-9ea7-a64036919156", "id": "662a6f33-c112-448d-922e-bdb76200b2a7", "state": "authenticated", "sessionAttributes": { "opbs": "f4e52d6f-5eb6-4dea-a4f1-ed6aa6d16317", "response_type": "token id_token", "session_id": "662a6f33-c112-448d-922e-bdb76200b2a7", "nonce": "4d473042-34ab-459a-96d8-5414b2961e3e", "client_id": "beadadb7-e838-4de3-91e1-8741ed21fc2b", "sid": "2d6897c0-9968-4834-9ea7-a64036919156", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ea277377-2868-448d-986f-1ce3c2b08384", "old_session_id": "0fc9bba2-682a-451e-bf43-5f2bf8338ae3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:02" }, { "isJwt": false, "opbrowserState": "ad6b218a-39d6-4dd4-af74-92f3708c6f6e", "deletable": true, "dn": "jansId=818c27ee-cfee-41ae-95a6-ebb3b225938e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:01", "creationDate": "2022-11-24T09:18:01", "ttl": 0, "sessionState": "8b8998bc9bc1be16adfab2e3173a934522c0569c4e9422b0b3134cd77c1746eb.d45bb0e1-cd76-454b-a349-176795909903", "lastUsedAt": "2022-11-24T09:18:01", "permissionGrantedMap": { }, "outsideSid": "3d025d75-cab4-40d7-b277-1180468718ff", "id": "818c27ee-cfee-41ae-95a6-ebb3b225938e", "state": "authenticated", "sessionAttributes": { "opbs": "ad6b218a-39d6-4dd4-af74-92f3708c6f6e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:01" }, { "isJwt": false, "opbrowserState": "570ae0e9-3ad9-4638-8eaa-2bdc2e614b96", "deletable": true, "dn": "jansId=65abdb3e-ec10-4ec9-9365-86c6512dd90f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:02", "creationDate": "2022-11-24T09:18:01", "ttl": 0, "sessionState": "4a0520efe59f42e77588a426b401b51aa79e458da76c80560e6b9143844fc53b.cf0f08bd-ddd3-4e4e-9f6c-49dc50f97a1f", "lastUsedAt": "2022-11-24T09:18:02", "permissionGrantedMap": { "permissionGranted": { "6644ed54-47a8-4d21-b5a2-55ceb731d6d6": true } }, "outsideSid": "948c5906-9ad1-41e0-839a-c32d35436958", "id": "65abdb3e-ec10-4ec9-9365-86c6512dd90f", "state": "authenticated", "sessionAttributes": { "opbs": "570ae0e9-3ad9-4638-8eaa-2bdc2e614b96", "response_type": "code", "session_id": "65abdb3e-ec10-4ec9-9365-86c6512dd90f", "client_id": "6644ed54-47a8-4d21-b5a2-55ceb731d6d6", "sid": "948c5906-9ad1-41e0-839a-c32d35436958", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6c9dd912-0668-4031-929c-7bf0f6046ee4", "old_session_id": "ff8e2211-33a2-4e73-810e-36f1258da4f9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:01" }, { "isJwt": false, "opbrowserState": "59fa59a4-50e8-441f-b28b-bf5b940d9dfe", "deletable": true, "dn": "jansId=0ff958d9-4c06-44f6-b775-d3d6891ecca3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:01", "creationDate": "2022-11-24T09:18:01", "ttl": 0, "sessionState": "144b3fd8b939a5c9a06d71b2f4c457258aded048b1e68c1f518c70e7bb2cd251.dff7dc87-3a17-4ce6-a669-85934ff81a93", "lastUsedAt": "2022-11-24T09:18:02", "permissionGrantedMap": { "permissionGranted": { "3da67911-327b-4908-b06c-dbe6443a2c99": true } }, "outsideSid": "ec60993a-e96c-4942-9541-d100e35cbd52", "id": "0ff958d9-4c06-44f6-b775-d3d6891ecca3", "state": "authenticated", "sessionAttributes": { "opbs": "59fa59a4-50e8-441f-b28b-bf5b940d9dfe", "response_type": "code token", "session_id": "0ff958d9-4c06-44f6-b775-d3d6891ecca3", "nonce": "7be4bb37-4263-49f0-bc8b-f1fe8ef57658", "client_id": "3da67911-327b-4908-b06c-dbe6443a2c99", "sid": "ec60993a-e96c-4942-9541-d100e35cbd52", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "09e5db14-105f-4f40-bc67-cc89c6bc4b85", "old_session_id": "fe76285c-e971-42c0-9ce4-e9285b660c06" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:18:01" }, { "isJwt": false, "opbrowserState": "45c2741f-bf6b-4a84-a5b2-ea3c069b7149", "deletable": true, "dn": "jansId=24ec613d-7884-4a4a-9a32-0d32469a8d9c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:18:00", "creationDate": "2022-11-24T09:17:59", "ttl": 0, "sessionState": "18df0f18cfc22c1bc3efe7ae8759e73aac30df8a75094c95216f35664451cc79.49faba57-2434-4526-8ee8-c96d9020e66b", "lastUsedAt": "2022-11-24T09:18:00", "permissionGrantedMap": { "permissionGranted": { "672088b1-bffa-4e96-b063-99efb018952c": true } }, "outsideSid": "35407edc-924f-426a-b2b6-cc76d6945cda", "id": "24ec613d-7884-4a4a-9a32-0d32469a8d9c", "state": "authenticated", "sessionAttributes": { "opbs": "45c2741f-bf6b-4a84-a5b2-ea3c069b7149", "response_type": "code", "session_id": "24ec613d-7884-4a4a-9a32-0d32469a8d9c", "client_id": "672088b1-bffa-4e96-b063-99efb018952c", "sid": "35407edc-924f-426a-b2b6-cc76d6945cda", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5119b1d7-e45e-44e5-a2ca-16106662a52a", "old_session_id": "02b933ae-5222-419f-95dd-7203c83d3c99" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:59" }, { "isJwt": false, "opbrowserState": "6e5794ce-7cc9-4fb7-982c-71d267f05a8a", "deletable": true, "dn": "jansId=1d9ae91f-a2f3-4838-88ca-058c1841e1c8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:58", "creationDate": "2022-11-24T09:17:58", "ttl": 0, "sessionState": "2690a90210fa35d9afcc509f984881a5fc5c00418459041d2bb1b2304272cf23.7ab525e6-3192-42c3-a901-305c9a912c1d", "lastUsedAt": "2022-11-24T09:17:58", "permissionGrantedMap": { "permissionGranted": { "eefc7f7a-bb9f-4ca4-9099-f781ce034e9e": true } }, "outsideSid": "954f850b-8806-4221-9a61-865fe8005999", "id": "1d9ae91f-a2f3-4838-88ca-058c1841e1c8", "state": "authenticated", "sessionAttributes": { "opbs": "6e5794ce-7cc9-4fb7-982c-71d267f05a8a", "response_type": "code", "session_id": "1d9ae91f-a2f3-4838-88ca-058c1841e1c8", "client_id": "eefc7f7a-bb9f-4ca4-9099-f781ce034e9e", "sid": "954f850b-8806-4221-9a61-865fe8005999", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b536f59f-18f9-46d5-85db-56c9aff00ae2", "old_session_id": "ff759d37-7128-4dd9-b525-a8620e24bf64" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:58" }, { "isJwt": false, "opbrowserState": "c786c940-1593-47f3-bcb1-f3d2f8c984e4", "deletable": true, "dn": "jansId=a7372f1d-100d-4586-847f-75fa21615b58,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:58", "creationDate": "2022-11-24T09:17:57", "ttl": 0, "sessionState": "e9685d9185b0b2f91a813ecda19320e8961b478b3d1da30e5c63f71e6732bf08.ef6cd7a9-ae31-437b-94ee-e0039db477c8", "lastUsedAt": "2022-11-24T09:17:58", "permissionGrantedMap": { "permissionGranted": { "d28530f3-1dc8-4a71-93a2-dd64eb79bfb5": true } }, "outsideSid": "10d78af7-b121-4630-9cce-bd33381cbff5", "id": "a7372f1d-100d-4586-847f-75fa21615b58", "state": "authenticated", "sessionAttributes": { "opbs": "c786c940-1593-47f3-bcb1-f3d2f8c984e4", "response_type": "code token", "session_id": "a7372f1d-100d-4586-847f-75fa21615b58", "nonce": "d83a5188-d7e6-4f5d-a7b5-a555c52d1b77", "client_id": "d28530f3-1dc8-4a71-93a2-dd64eb79bfb5", "sid": "10d78af7-b121-4630-9cce-bd33381cbff5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "264a8f7d-2fbd-4b39-b3ea-48278c397713", "old_session_id": "b4dce84f-bb45-453f-8cbf-be013a692f93" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:57" }, { "isJwt": false, "opbrowserState": "863d9aeb-9566-49ef-9525-814f74a2811a", "deletable": true, "dn": "jansId=6d494752-2b78-4a9f-a01d-57b35d1c79f5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:59", "creationDate": "2022-11-24T09:17:57", "ttl": 0, "sessionState": "fd90340c6b94cefdeb8c6297f21cb66d1e2d35106b83de596b96231e405c49c4.df4e08b3-8405-4fc9-937d-e8d65fb0a978", "lastUsedAt": "2022-11-24T09:17:59", "permissionGrantedMap": { "permissionGranted": { "9e59b2cd-ff04-4542-a1ce-5b0329bf5555": true } }, "outsideSid": "919d9ed3-0770-4d68-9d05-9956fefc9b16", "id": "6d494752-2b78-4a9f-a01d-57b35d1c79f5", "state": "authenticated", "sessionAttributes": { "opbs": "863d9aeb-9566-49ef-9525-814f74a2811a", "response_type": "token id_token", "session_id": "6d494752-2b78-4a9f-a01d-57b35d1c79f5", "nonce": "54b91f95-8776-412a-bd38-63e15e69ffb2", "client_id": "9e59b2cd-ff04-4542-a1ce-5b0329bf5555", "sid": "919d9ed3-0770-4d68-9d05-9956fefc9b16", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c3f64c63-8451-45f8-8dcc-2c7b849a8f86", "old_session_id": "78e6f6ee-b58a-4c80-8a87-fccc807f2234" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:57" }, { "isJwt": false, "opbrowserState": "a15ddcba-e9f9-4687-9080-1442b5845ed4", "deletable": true, "dn": "jansId=a14ef76d-397c-4175-9e25-1be32b66e5e3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:57", "creationDate": "2022-11-24T09:17:57", "ttl": 0, "sessionState": "e4fecfc77dbeb9acf0eac886085abdd33df6f0d4e9794d6e743b15c5dc1f0a55.da9a6ed2-4ff0-4f8a-a467-1d6a6251702e", "lastUsedAt": "2022-11-24T09:17:57", "permissionGrantedMap": { "permissionGranted": { "e4b3980c-278d-499f-aaf1-d895bec2dd20": true } }, "outsideSid": "c2f209ba-30dd-431e-ad1c-9bc0f8d22196", "id": "a14ef76d-397c-4175-9e25-1be32b66e5e3", "state": "authenticated", "sessionAttributes": { "opbs": "a15ddcba-e9f9-4687-9080-1442b5845ed4", "response_type": "code", "session_id": "a14ef76d-397c-4175-9e25-1be32b66e5e3", "client_id": "e4b3980c-278d-499f-aaf1-d895bec2dd20", "sid": "c2f209ba-30dd-431e-ad1c-9bc0f8d22196", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "eef158c1-fa7a-4fb4-84a7-328510261ba3", "old_session_id": "b9226769-97e3-4208-9bab-883884ffabfc" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:57" }, { "isJwt": false, "opbrowserState": "cd7bb678-80ec-4776-8483-4ef6119e534c", "deletable": true, "dn": "jansId=b29a1a9b-6f52-4365-8182-e97d16ab348a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:56", "creationDate": "2022-11-24T09:17:56", "ttl": 0, "sessionState": "710b32a4bf0429d336f4243b0ec85cda6d304fff68de157e63997515ae438a01.78cd9561-973d-4897-95d2-d944b026e844", "lastUsedAt": "2022-11-24T09:17:56", "permissionGrantedMap": { "permissionGranted": { "d248712e-230c-4ef0-ab78-90743dcb0044": true } }, "outsideSid": "adba6e8e-d315-4a22-9411-8daaf332eaa9", "id": "b29a1a9b-6f52-4365-8182-e97d16ab348a", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFMyNTYiCn0.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJpbnZhbGlkIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJvIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfQogICAgfQogIH0sCiAgInJlc3BvbnNlX3R5cGUiIDogInRva2VuIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogImJlMTg0ZDI0LWI2MmItNDk1My1hNTMyLWFmOWUxNjY5NGQ5YyIsCiAgIm5vbmNlIiA6ICI3NzMwODE2ZS05NTA3LTQzNTYtYjY1NC1hMGNlMDMwMzJjMDAiLAogICJjbGllbnRfaWQiIDogImQyNDg3MTJlLTIzMGMtNGVmMC1hYjc4LTkwNzQzZGNiMDA0NCIKfQ.rRLq8tbbfvyHZDaN3oqlPM9CiypMbfT-5WRU5m4fxVM", "opbs": "cd7bb678-80ec-4776-8483-4ef6119e534c", "response_type": "token", "session_id": "b29a1a9b-6f52-4365-8182-e97d16ab348a", "nonce": "7730816e-9507-4356-b654-a0ce03032c00", "client_id": "d248712e-230c-4ef0-ab78-90743dcb0044", "sid": "adba6e8e-d315-4a22-9411-8daaf332eaa9", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "be184d24-b62b-4953-a532-af9e16694d9c", "old_session_id": "89cfaee5-90a2-4492-b088-6484329ad03a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:56" }, { "isJwt": false, "opbrowserState": "6898b311-cbc9-495b-9703-df5d4c81cf39", "deletable": true, "dn": "jansId=2de5f41e-030b-4a7f-9001-128c47040683,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:56", "creationDate": "2022-11-24T09:17:56", "ttl": 0, "sessionState": "77a0f419425891b9794801efa407114ad0eb186d78c284ea218b3b04f2b1031d.cfd0da99-1023-403f-a402-3cfee05becc3", "lastUsedAt": "2022-11-24T09:17:56", "permissionGrantedMap": { "permissionGranted": { "2d83cb07-886b-4006-af35-38e0eb45e752": true } }, "outsideSid": "1a1a9847-29db-4bef-99d4-19f9298fe1ea", "id": "2de5f41e-030b-4a7f-9001-128c47040683", "state": "authenticated", "sessionAttributes": { "opbs": "6898b311-cbc9-495b-9703-df5d4c81cf39", "response_type": "code token", "session_id": "2de5f41e-030b-4a7f-9001-128c47040683", "nonce": "f8bbc94b-a6e6-4144-ae02-10c95addf5ee", "client_id": "2d83cb07-886b-4006-af35-38e0eb45e752", "sid": "1a1a9847-29db-4bef-99d4-19f9298fe1ea", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "255adac0-c30f-4f67-9b01-d396c0e303a8", "old_session_id": "5a86c0f2-1497-4da1-8d31-32870630a31e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:56" }, { "isJwt": false, "opbrowserState": "5c1b7517-5bb7-4345-9b07-e0143e0b0f69", "deletable": true, "dn": "jansId=aab9f396-92d5-425d-8a01-a611a09bdf4f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:56", "creationDate": "2022-11-24T09:17:55", "ttl": 0, "sessionState": "dce190082d71864e9284d9503678f7e1abf47c1972eb06c2b2d732e5c73c3de7.66e9bf4e-98b4-4abf-a529-00f9c7015175", "lastUsedAt": "2022-11-24T09:17:56", "permissionGrantedMap": { "permissionGranted": { "4b712f4e-7927-40ec-885f-a50df1e6b1d5": true } }, "outsideSid": "6b3ff12a-b085-4f69-a10f-815a413a455d", "id": "aab9f396-92d5-425d-8a01-a611a09bdf4f", "state": "authenticated", "sessionAttributes": { "opbs": "5c1b7517-5bb7-4345-9b07-e0143e0b0f69", "response_type": "code", "session_id": "aab9f396-92d5-425d-8a01-a611a09bdf4f", "client_id": "4b712f4e-7927-40ec-885f-a50df1e6b1d5", "sid": "6b3ff12a-b085-4f69-a10f-815a413a455d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "bbad719f-3a3b-4a39-befd-5913dccaf751", "old_session_id": "a33890fb-2918-4ca7-89cc-3d383417daf6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:55" }, { "isJwt": false, "opbrowserState": "d235f69d-267c-40b0-84b2-0b53c381ac63", "deletable": true, "dn": "jansId=362b069a-4517-4747-bc0c-5a2a10eca7d5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:55", "creationDate": "2022-11-24T09:17:55", "ttl": 0, "sessionState": "f13fc698fcd4fe7c6967ebde2245a99d138d765cb977cc40a8168da2cb7c0227.d8ce064d-b544-4b73-a3a2-d9237833bcd6", "lastUsedAt": "2022-11-24T09:17:55", "permissionGrantedMap": { "permissionGranted": { "849a06b2-907f-4358-a219-51088f962231": true } }, "outsideSid": "68179599-77dd-48d0-8001-e22fa148ced8", "id": "362b069a-4517-4747-bc0c-5a2a10eca7d5", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "d235f69d-267c-40b0-84b2-0b53c381ac63" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:55" }, { "isJwt": false, "opbrowserState": "55926641-d627-48a4-98e8-859188dd7711", "deletable": true, "dn": "jansId=bec5d4ab-0f9d-4b22-91e6-bf9415552f81,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:55", "creationDate": "2022-11-24T09:17:55", "ttl": 0, "sessionState": "5724183817970bfe11476f955e51aa3dbdd12a81a67dc08648bc54f1d742b98f.88f2b018-2d77-427f-b473-6fe041893609", "lastUsedAt": "2022-11-24T09:17:55", "permissionGrantedMap": { "permissionGranted": { "ed91c7d2-e658-4dd1-9e51-dd492e1f2066": true } }, "outsideSid": "1528fbee-26f3-4b92-8b28-32d53baca4b5", "id": "bec5d4ab-0f9d-4b22-91e6-bf9415552f81", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "55926641-d627-48a4-98e8-859188dd7711" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:55" }, { "isJwt": false, "opbrowserState": "819b3e12-e93c-4071-9cd2-fa9c823d6339", "deletable": true, "dn": "jansId=0b2bca1a-ef0b-45c1-9c70-c577c7bd2f3c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:54", "creationDate": "2022-11-24T09:17:54", "ttl": 0, "sessionState": "5958945b1200edaab696307dc645060db43fa08b5ee6d0c473a12fbf700fe14d.2766b745-0d99-4fc9-ab6c-1855ecbabc08", "lastUsedAt": "2022-11-24T09:17:54", "permissionGrantedMap": { "permissionGranted": { "1bc0fed7-f0ce-481a-b385-6eb364715c7e": true } }, "outsideSid": "75e45ff0-94be-4c87-83ae-9422a36c7e40", "id": "0b2bca1a-ef0b-45c1-9c70-c577c7bd2f3c", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "819b3e12-e93c-4071-9cd2-fa9c823d6339" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:54" }, { "isJwt": false, "opbrowserState": "12a0452d-6733-4061-b89e-7e1d3c282eb2", "deletable": true, "dn": "jansId=942d0417-1530-4f8f-aace-61d3f4a564b0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:55", "creationDate": "2022-11-24T09:17:54", "ttl": 0, "sessionState": "b5becfcd6ad4074f6da7c8416d35b4c12ca7e4f7137a17080ebf895fc4d7fca3.dcff0de3-bdb0-4525-b1d1-88dff42f9644", "lastUsedAt": "2022-11-24T09:17:55", "permissionGrantedMap": { "permissionGranted": { "21e4d8f1-b165-47c8-bf7d-275ce6165c44": true } }, "outsideSid": "0f78dbfd-7993-42bc-aec8-7a6afe6e437f", "id": "942d0417-1530-4f8f-aace-61d3f4a564b0", "state": "authenticated", "sessionAttributes": { "opbs": "12a0452d-6733-4061-b89e-7e1d3c282eb2", "response_type": "code token", "session_id": "942d0417-1530-4f8f-aace-61d3f4a564b0", "nonce": "d80ff3c1-0af8-47d7-9165-0169ae9f57e0", "client_id": "21e4d8f1-b165-47c8-bf7d-275ce6165c44", "sid": "0f78dbfd-7993-42bc-aec8-7a6afe6e437f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a7d52bfb-64a5-46ee-83cb-a8b8ff023b5b", "old_session_id": "62e13e43-46d6-4aab-85dc-7e506f5f78c0" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:54" }, { "isJwt": false, "opbrowserState": "e4596ab3-bee5-4be6-8804-389c5bc5e59a", "deletable": true, "dn": "jansId=99804575-bed1-447a-a138-96240d0ecf46,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:54", "creationDate": "2022-11-24T09:17:54", "ttl": 0, "sessionState": "a8c4e4a295d30774bb2e1dc0f786ec7f7ea25271f6719fd8f446fe91b4ff3a44.4c7ecde4-49d0-4eec-9edc-a028549812fd", "lastUsedAt": "2022-11-24T09:17:54", "permissionGrantedMap": { "permissionGranted": { "6b7b8f11-d506-449a-aff8-e69cc06109c6": true } }, "outsideSid": "b2edc804-d559-4bfe-b1eb-6825b045eb39", "id": "99804575-bed1-447a-a138-96240d0ecf46", "state": "authenticated", "sessionAttributes": { "opbs": "e4596ab3-bee5-4be6-8804-389c5bc5e59a", "response_type": "code", "session_id": "99804575-bed1-447a-a138-96240d0ecf46", "client_id": "6b7b8f11-d506-449a-aff8-e69cc06109c6", "sid": "b2edc804-d559-4bfe-b1eb-6825b045eb39", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "99d5cf2f-e7e2-4d12-b0d0-1c2d59eeb7ff", "old_session_id": "758c5b31-8eab-41c3-acec-661f6f1bc48b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:54" }, { "isJwt": false, "deletable": true, "dn": "jansId=1dadd901-5bd5-402c-8eef-08abd750adb1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:54", "creationDate": "2022-11-24T09:17:54", "ttl": 0, "sessionState": "816cb258ecb904d160ed365acfa9e9d05977ad5e947ea4efbdb2207eeb15e585.e001bc48-c4bb-4d46-aedc-7d2829b86bec", "lastUsedAt": "2022-11-24T09:17:54", "permissionGrantedMap": { "permissionGranted": { "f0595dc7-3a08-435a-ad7a-3e4f89cf2da1": true } }, "outsideSid": "3d7b39a0-6658-4a69-9df3-2cc2909c50de", "id": "1dadd901-5bd5-402c-8eef-08abd750adb1", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "scope": "openid profile address email", "response_type": "code id_token", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a87cc272-af2b-491e-b0c2-92f5b64ef48a", "nonce": "c3959ee6-8d65-4f1f-8428-98127c78d1a8", "prompt": "none", "client_id": "f0595dc7-3a08-435a-ad7a-3e4f89cf2da1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:54" }, { "isJwt": false, "opbrowserState": "230272f8-208b-428a-ab56-4d1f6ef550e8", "deletable": true, "dn": "jansId=58a38aae-6216-4854-b0d0-0bbb9a07f520,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:54", "creationDate": "2022-11-24T09:17:54", "ttl": 0, "sessionState": "7ed70438d674bf82d5e8abdb23ccd07129ad47dfaeaddffe2dc6f3e8210e52b3.fb79aacf-521f-444a-a678-5ae200f9f9dd", "lastUsedAt": "2022-11-24T09:17:54", "permissionGrantedMap": { "permissionGranted": { "9e1e3d9f-8de6-4a9b-9c94-14c7fafe16f0": true } }, "outsideSid": "96ad76a2-ba9d-40be-b44d-4658a34a74b5", "id": "58a38aae-6216-4854-b0d0-0bbb9a07f520", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "230272f8-208b-428a-ab56-4d1f6ef550e8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:54" }, { "isJwt": false, "opbrowserState": "b3783c49-735c-4ad7-8fb3-43bf34554729", "deletable": true, "dn": "jansId=452b021a-6b88-45f9-ad1d-5754b97dd9bf,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:53", "creationDate": "2022-11-24T09:17:53", "ttl": 0, "sessionState": "bc09afc093f5529f598f80010ca487f66cbf4db1b0977b983fb5ba8652a59894.87f32673-2bc9-4797-a6a6-a74b570c3e1d", "lastUsedAt": "2022-11-24T09:17:53", "permissionGrantedMap": { "permissionGranted": { "4daf4160-d63b-4185-8aeb-ecf7250305b4": true } }, "outsideSid": "e895718c-588f-4fa6-ade2-a5f808fed28f", "id": "452b021a-6b88-45f9-ad1d-5754b97dd9bf", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "b3783c49-735c-4ad7-8fb3-43bf34554729" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:53" }, { "isJwt": false, "opbrowserState": "7b327e83-aa1b-4166-bc1b-a95adbbbabc1", "deletable": true, "dn": "jansId=45036217-1dc7-4b06-968c-0d58952fd096,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:53", "creationDate": "2022-11-24T09:17:53", "ttl": 0, "sessionState": "ff70d0e7cc5409a578180924c72ee9c8ee2ba3faae89954ef6bae2ce5def77a2.e9065007-225d-4046-955c-a6cedbce7548", "lastUsedAt": "2022-11-24T09:17:53", "permissionGrantedMap": { "permissionGranted": { "aebc4c1f-74b4-4eaa-bf43-9513f20ba416": true } }, "outsideSid": "9816f437-0ef4-4333-9a4b-6985aec3af9e", "id": "45036217-1dc7-4b06-968c-0d58952fd096", "state": "authenticated", "sessionAttributes": { "opbs": "7b327e83-aa1b-4166-bc1b-a95adbbbabc1", "response_type": "code token", "session_id": "45036217-1dc7-4b06-968c-0d58952fd096", "nonce": "00d0d6ab-eed2-4517-a686-24424e4f7d76", "client_id": "aebc4c1f-74b4-4eaa-bf43-9513f20ba416", "sid": "9816f437-0ef4-4333-9a4b-6985aec3af9e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "99d08803-1068-4f4f-85ac-f355a5b1004c", "old_session_id": "f896cf0d-da65-4296-bf13-4cbe23dd9acf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:53" }, { "isJwt": false, "opbrowserState": "01450a88-4fdf-4bb9-91f2-c207b3af63df", "deletable": true, "dn": "jansId=59d9b840-3ee2-44c1-95d8-4daa05bf965d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:53", "creationDate": "2022-11-24T09:17:53", "ttl": 0, "sessionState": "12b15ee72db4478f1c49d7acf644dd26d2a210126396e178fbf0f49fa28457d6.2bc455af-0331-4551-bfea-a6c7601b0130", "lastUsedAt": "2022-11-24T09:17:53", "permissionGrantedMap": { "permissionGranted": { "42237efa-9f5e-4ac7-8165-74292eacedaf": true } }, "outsideSid": "2bae759f-4e36-4c0a-b394-15fbe83613ba", "id": "59d9b840-3ee2-44c1-95d8-4daa05bf965d", "state": "authenticated", "sessionAttributes": { "opbs": "01450a88-4fdf-4bb9-91f2-c207b3af63df", "response_type": "code", "session_id": "59d9b840-3ee2-44c1-95d8-4daa05bf965d", "client_id": "42237efa-9f5e-4ac7-8165-74292eacedaf", "sid": "2bae759f-4e36-4c0a-b394-15fbe83613ba", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1257f86b-83a7-4022-b31d-38269ade2993", "old_session_id": "97f0a854-18d9-4fe9-abf6-a7ebf3bd3408" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:53" }, { "isJwt": false, "opbrowserState": "ce65aa1b-2856-41ec-9ed1-8c939e22e447", "deletable": true, "dn": "jansId=89552a13-dfac-4df5-8b81-7428496e4d6d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:52", "creationDate": "2022-11-24T09:17:52", "ttl": 0, "sessionState": "447c3f22c3a597c2a4f6462c2d9d6be30c46872b7d81171933286d306438900e.00ba7fc3-4489-439d-b2a9-4afa31ebab1f", "lastUsedAt": "2022-11-24T09:17:53", "permissionGrantedMap": { "permissionGranted": { "2e3dcbcc-0c22-4285-807e-d9d557d49180": true } }, "outsideSid": "1c75a312-e8cd-4088-855f-251649d26085", "id": "89552a13-dfac-4df5-8b81-7428496e4d6d", "state": "authenticated", "sessionAttributes": { "opbs": "ce65aa1b-2856-41ec-9ed1-8c939e22e447", "response_type": "code", "session_id": "89552a13-dfac-4df5-8b81-7428496e4d6d", "nonce": "5ae013b3-617d-43ce-9956-97f408b8875f", "client_id": "2e3dcbcc-0c22-4285-807e-d9d557d49180", "sid": "1c75a312-e8cd-4088-855f-251649d26085", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3375f6e7-2ebb-45e2-8a5c-286610f5f57f", "old_session_id": "6725c678-15c9-43ea-ae69-ac5907414917" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:52" }, { "isJwt": false, "opbrowserState": "1d36b84d-62e3-4fbf-8c91-87b7fb9925ff", "deletable": true, "dn": "jansId=a21fe1bf-29e1-4713-a4d6-c72792e858d8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:52", "creationDate": "2022-11-24T09:17:52", "ttl": 0, "sessionState": "7d968d1c129d7dac84efa322718582e80584780cba539e325845fab4fe708226.6477ef50-f44d-437f-acb5-c3bad67611e3", "lastUsedAt": "2022-11-24T09:17:52", "permissionGrantedMap": { "permissionGranted": { "5d3e50c2-bfd8-4f6e-b9ad-61bd9fb63fa9": true } }, "outsideSid": "e09ea94c-5eeb-4674-91e5-3483ae23527d", "id": "a21fe1bf-29e1-4713-a4d6-c72792e858d8", "state": "authenticated", "sessionAttributes": { "opbs": "1d36b84d-62e3-4fbf-8c91-87b7fb9925ff", "response_type": "token id_token", "session_id": "a21fe1bf-29e1-4713-a4d6-c72792e858d8", "nonce": "621e4f05-1a9a-4539-b6c9-f6343caccca7", "client_id": "5d3e50c2-bfd8-4f6e-b9ad-61bd9fb63fa9", "sid": "e09ea94c-5eeb-4674-91e5-3483ae23527d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "798c2455-dca5-4182-9180-a30e2bf2ba17", "old_session_id": "e5320df9-9b39-4531-8fb9-f0aa84b52529" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:52" }, { "isJwt": false, "opbrowserState": "506e2828-0336-4aa6-964f-8fdcfc0178d4", "deletable": true, "dn": "jansId=4d7aea24-8819-4d6b-a7d7-8b5b5138bc68,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:52", "creationDate": "2022-11-24T09:17:52", "ttl": 0, "sessionState": "a2dce56b2a65471f4799074c1053ad0ba5c429572edb07b63c969892a602fb83.123b38ec-7f4e-495e-96cb-7b4c2d17bb8e", "lastUsedAt": "2022-11-24T09:17:52", "permissionGrantedMap": { "permissionGranted": { "b54a130e-c995-4df4-932a-bb9184e95115": true } }, "outsideSid": "8116f956-07ed-440c-a57d-6ffabc29d0c1", "id": "4d7aea24-8819-4d6b-a7d7-8b5b5138bc68", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "506e2828-0336-4aa6-964f-8fdcfc0178d4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:52" }, { "isJwt": false, "opbrowserState": "f7df0db6-0106-4126-a7fe-cbf75cc5f375", "deletable": true, "dn": "jansId=846f0498-9a64-468c-b7cf-e37509be75f0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:51", "creationDate": "2022-11-24T09:17:51", "ttl": 0, "sessionState": "c4031720d6b5442165dd332959e2165db4a4c92948b8b8d93d4c91254300af80.c8b7917a-4f67-4ab3-b434-227d1b13be0b", "lastUsedAt": "2022-11-24T09:17:51", "permissionGrantedMap": { "permissionGranted": { "22a62321-ef89-4457-8a08-bc7153b6142a": true } }, "outsideSid": "b9ba305a-cc36-44e0-9f75-47352ecf8328", "id": "846f0498-9a64-468c-b7cf-e37509be75f0", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "f7df0db6-0106-4126-a7fe-cbf75cc5f375" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:51" }, { "isJwt": false, "opbrowserState": "565bc6c9-216c-4f98-b765-0b42a3b49fb2", "deletable": true, "dn": "jansId=9f6d2a1b-572a-4bb5-818c-2df73f100f52,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:52", "creationDate": "2022-11-24T09:17:51", "ttl": 0, "sessionState": "3577224f3147578af3a0b265211982f9e20483cbfae509bd2cddf273f90697c9.63dcde56-97fe-404c-bfd6-722d1b913cbe", "lastUsedAt": "2022-11-24T09:17:52", "permissionGrantedMap": { "permissionGranted": { "3ecd9a76-61dc-4fa9-9710-f444584ab0f0": true } }, "outsideSid": "870ab716-7eca-4ad1-ab6b-08aaea2ceb42", "id": "9f6d2a1b-572a-4bb5-818c-2df73f100f52", "state": "authenticated", "sessionAttributes": { "opbs": "565bc6c9-216c-4f98-b765-0b42a3b49fb2", "response_type": "code", "session_id": "9f6d2a1b-572a-4bb5-818c-2df73f100f52", "client_id": "3ecd9a76-61dc-4fa9-9710-f444584ab0f0", "sid": "870ab716-7eca-4ad1-ab6b-08aaea2ceb42", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "de0fe79b-4925-4f90-a02d-bc042feb7c49", "old_session_id": "a96896be-c63d-4d3f-9bb7-abac74be428b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:51" }, { "isJwt": false, "opbrowserState": "ea3ebf75-24e6-4b6b-bb6d-6a9748ad7531", "deletable": true, "dn": "jansId=630bc982-0052-41a4-8e4d-fa32d3670c0c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:51", "creationDate": "2022-11-24T09:17:50", "ttl": 0, "sessionState": "bab3714a9ff3b1d7f509f1ead430ff1e1b138495c07d2d7d3fe59604ba281104.2cc926b3-42bb-4b2c-95a5-7256ca668e80", "lastUsedAt": "2022-11-24T09:17:51", "permissionGrantedMap": { "permissionGranted": { "42012880-5d45-40dd-ba44-d3b0f3a13997": true } }, "outsideSid": "495cc799-1b85-43a5-9542-35c2ca269c94", "id": "630bc982-0052-41a4-8e4d-fa32d3670c0c", "state": "authenticated", "sessionAttributes": { "opbs": "ea3ebf75-24e6-4b6b-bb6d-6a9748ad7531", "response_type": "code id_token token", "session_id": "630bc982-0052-41a4-8e4d-fa32d3670c0c", "nonce": "f4047efb-f577-48df-b2f3-7334e91f74b3", "client_id": "42012880-5d45-40dd-ba44-d3b0f3a13997", "sid": "495cc799-1b85-43a5-9542-35c2ca269c94", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email phone user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4797a2c7-f54d-4721-a753-bcb6943e580c", "old_session_id": "750cdf2b-5f20-4c54-a331-b3e58e4c1deb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:50" }, { "isJwt": false, "opbrowserState": "0c9c6283-3495-4468-ac88-3c1fecbffdc8", "deletable": true, "dn": "jansId=8a4255f9-2691-4cd6-8548-6483a6e872f9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:50", "creationDate": "2022-11-24T09:17:50", "ttl": 0, "sessionState": "2592e330cc01b06ff0c6f16f69117736e1dc60ca46dbeb20b229470c75eb1c03.0f94f416-05cd-4e24-929b-19f27f3331c7", "lastUsedAt": "2022-11-24T09:17:50", "permissionGrantedMap": { "permissionGranted": { "4045bffb-b787-490b-949f-84f2bd857641": true } }, "outsideSid": "dffe0fac-da4f-4751-a8b1-5580a2c5c10d", "id": "8a4255f9-2691-4cd6-8548-6483a6e872f9", "state": "authenticated", "sessionAttributes": { "opbs": "0c9c6283-3495-4468-ac88-3c1fecbffdc8", "response_type": "code", "session_id": "8a4255f9-2691-4cd6-8548-6483a6e872f9", "client_id": "4045bffb-b787-490b-949f-84f2bd857641", "sid": "dffe0fac-da4f-4751-a8b1-5580a2c5c10d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1860e1ef-5193-4464-afd6-1f1272ee6259", "old_session_id": "d6f596d3-683f-45a6-bdfc-96e61779ba6c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:50" }, { "isJwt": false, "opbrowserState": "bc0ea3b5-32c4-41dd-82cf-3802930b010f", "deletable": true, "dn": "jansId=5e9faa92-0c57-45d3-b0d6-c549c293ccee,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:49", "creationDate": "2022-11-24T09:17:48", "ttl": 0, "sessionState": "7c0a842a38d64d88684ba05aa9f9db69a7631ff7b72c3649bd46825cc688f110.37539781-2e2d-481b-950d-ab6344b180fb", "lastUsedAt": "2022-11-24T09:17:49", "permissionGrantedMap": { "permissionGranted": { "795fed95-d076-4844-8ffe-1064b31596dc": true } }, "outsideSid": "feaae1f4-e455-420a-ac84-34ff4575b548", "id": "5e9faa92-0c57-45d3-b0d6-c549c293ccee", "state": "authenticated", "sessionAttributes": { "opbs": "bc0ea3b5-32c4-41dd-82cf-3802930b010f", "response_type": "id_token", "session_id": "5e9faa92-0c57-45d3-b0d6-c549c293ccee", "nonce": "5c5f04b8-c127-4dfa-85ef-6aa39a58b4b1", "client_id": "795fed95-d076-4844-8ffe-1064b31596dc", "sid": "feaae1f4-e455-420a-ac84-34ff4575b548", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1c5de255-fec9-408c-ba97-06a8c1017032", "old_session_id": "91f8f7a7-f1ca-40a7-85ef-ce7706c7a8cf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:48" }, { "isJwt": false, "opbrowserState": "b059b37e-a8f1-4607-bdab-1663665d86c1", "deletable": true, "dn": "jansId=a2ec045a-4015-48b5-a4e4-11d3751d85f3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:48", "creationDate": "2022-11-24T09:17:47", "ttl": 0, "sessionState": "2dc3d425648b9ffd19c913cc24e48ff81a393c9a0f4670237eb5de2fa6b9124a.23665e7d-bc2d-41e8-b9bf-f7f121bd6a66", "lastUsedAt": "2022-11-24T09:17:48", "permissionGrantedMap": { "permissionGranted": { "84f986c5-e703-49b9-b6d1-61653c4b8ba3": true } }, "outsideSid": "33ea345a-627b-41f0-b119-e49ad8e29b51", "id": "a2ec045a-4015-48b5-a4e4-11d3751d85f3", "state": "authenticated", "sessionAttributes": { "opbs": "b059b37e-a8f1-4607-bdab-1663665d86c1", "response_type": "code", "session_id": "a2ec045a-4015-48b5-a4e4-11d3751d85f3", "client_id": "84f986c5-e703-49b9-b6d1-61653c4b8ba3", "sid": "33ea345a-627b-41f0-b119-e49ad8e29b51", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9597fa84-41c9-4017-82af-2ec580816372", "old_session_id": "58cd7b1e-1f17-4f98-834c-e38ca6170459" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:47" }, { "isJwt": false, "opbrowserState": "28359ee0-a59b-40ca-a4f3-4941522d3ccc", "deletable": true, "dn": "jansId=a14a5dad-8cac-4cca-a30d-04169ce3cd10,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:47", "creationDate": "2022-11-24T09:17:46", "ttl": 0, "sessionState": "c6edde1d6f2b323561c68b589f4a1c2b5122a66f83e5091a069e3d9d814b61ce.0db72350-c6cf-4712-b118-ee09de1dab39", "lastUsedAt": "2022-11-24T09:17:47", "permissionGrantedMap": { "permissionGranted": { "76accba0-49f4-487f-a18f-c04e7066104b": true } }, "outsideSid": "93c4692d-ae98-4976-b798-f5c2c8d8a256", "id": "a14a5dad-8cac-4cca-a30d-04169ce3cd10", "state": "authenticated", "sessionAttributes": { "opbs": "28359ee0-a59b-40ca-a4f3-4941522d3ccc", "response_type": "code id_token", "session_id": "a14a5dad-8cac-4cca-a30d-04169ce3cd10", "nonce": "a1294556-7432-426e-8554-eb527fdb2b05", "client_id": "76accba0-49f4-487f-a18f-c04e7066104b", "sid": "93c4692d-ae98-4976-b798-f5c2c8d8a256", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email phone user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5ed0a4d9-6155-4c7d-a67b-cc6530e8c37e", "old_session_id": "53775d89-7d29-4192-b3b8-b0a99bbe54ea" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:46" }, { "isJwt": false, "opbrowserState": "d4c87ee8-c33f-461f-979a-52ca1bcb9109", "deletable": true, "dn": "jansId=b49b60a0-e8d7-4980-9426-ddf428fcba85,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:47", "creationDate": "2022-11-24T09:17:46", "ttl": 0, "sessionState": "6634642b5f0485986eef83bf2a93fc10a8c0b6dfb9415a5e04e1eb92b91b8ddb.722e5358-6cf5-4159-8d64-036c4c1c3da1", "lastUsedAt": "2022-11-24T09:17:47", "permissionGrantedMap": { "permissionGranted": { "d31a052e-5bd1-4a8e-9c22-a9359020361b": true } }, "outsideSid": "b896b395-99de-4c63-a702-441885646cf2", "id": "b49b60a0-e8d7-4980-9426-ddf428fcba85", "state": "authenticated", "sessionAttributes": { "opbs": "d4c87ee8-c33f-461f-979a-52ca1bcb9109", "response_type": "id_token", "session_id": "b49b60a0-e8d7-4980-9426-ddf428fcba85", "nonce": "95843d21-6ea7-4c1b-b184-bbefcedbd55d", "client_id": "d31a052e-5bd1-4a8e-9c22-a9359020361b", "sid": "b896b395-99de-4c63-a702-441885646cf2", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b2de92d3-24b2-40fa-95fa-790fab68275f", "old_session_id": "34c475a2-58b7-4cce-855f-b8007668e61d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:46" }, { "isJwt": false, "opbrowserState": "e5ae8789-2f6e-4ebe-bcd2-87fae0003b59", "deletable": true, "dn": "jansId=ab9407cf-027b-4567-a7cf-c9bf4a89e197,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:47", "creationDate": "2022-11-24T09:17:46", "ttl": 0, "sessionState": "003ab710814c6d58361ccae1b78081323d9feef0f5f07abfa39d066c89bf555e.899e0bd5-1c31-4a7e-882b-203fbc09c5c4", "lastUsedAt": "2022-11-24T09:17:47", "permissionGrantedMap": { "permissionGranted": { "26303ce4-cefc-40d8-a4e1-39d113b0f46d": true } }, "outsideSid": "c73862a4-0ee4-4134-934f-68d592d63eb9", "id": "ab9407cf-027b-4567-a7cf-c9bf4a89e197", "state": "authenticated", "sessionAttributes": { "opbs": "e5ae8789-2f6e-4ebe-bcd2-87fae0003b59", "response_type": "code", "session_id": "ab9407cf-027b-4567-a7cf-c9bf4a89e197", "client_id": "26303ce4-cefc-40d8-a4e1-39d113b0f46d", "sid": "c73862a4-0ee4-4134-934f-68d592d63eb9", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "22450cf7-cbc1-4f95-87ae-0c68384904da", "old_session_id": "ca3634a5-ca11-4916-a2de-af0e1f3e148a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:46" }, { "isJwt": false, "opbrowserState": "857a881c-03c1-43eb-9592-5bb692461de9", "deletable": true, "dn": "jansId=391fcd28-7163-459a-b7cb-a55ff0099a0a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:46", "creationDate": "2022-11-24T09:17:45", "ttl": 0, "sessionState": "057c5b9b59fd1df1d628d6fde9d835d73ad2dd919a6fc09869cd6e79493614e6.36dd904c-e879-4863-82f4-0f5e7482a6b9", "lastUsedAt": "2022-11-24T09:17:46", "permissionGrantedMap": { "permissionGranted": { "1e5af44b-c4c1-4e95-9b35-184d7d4aa9d9": true } }, "outsideSid": "cc545bd9-bd3b-4619-bbf7-f70d19c02207", "id": "391fcd28-7163-459a-b7cb-a55ff0099a0a", "state": "authenticated", "sessionAttributes": { "opbs": "857a881c-03c1-43eb-9592-5bb692461de9", "response_type": "code", "session_id": "391fcd28-7163-459a-b7cb-a55ff0099a0a", "client_id": "1e5af44b-c4c1-4e95-9b35-184d7d4aa9d9", "sid": "cc545bd9-bd3b-4619-bbf7-f70d19c02207", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e887eb61-6035-4af9-abd2-69d9ab8df96a", "old_session_id": "af5ceb07-c649-4137-a48e-2d0915d7167e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:45" }, { "isJwt": false, "opbrowserState": "810f5e93-d2a0-45bb-a0d9-5e7c7e0d56e5", "deletable": true, "dn": "jansId=42a109df-e1da-4df6-a72c-24ee87479dc9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:45", "creationDate": "2022-11-24T09:17:45", "ttl": 0, "sessionState": "2ca14b220a7ec09788ab34ac4f3ae9f05d917510825ebd72f64f64854c2cb3ff.510cfe6e-75d1-4512-a2db-ce31b49da53f", "lastUsedAt": "2022-11-24T09:17:46", "permissionGrantedMap": { "permissionGranted": { "f5bf6702-c82c-45e1-8bf0-e00f397282c9": true } }, "outsideSid": "95acab60-69ab-4b78-b2b6-3a797f5a4a7d", "id": "42a109df-e1da-4df6-a72c-24ee87479dc9", "state": "authenticated", "sessionAttributes": { "opbs": "810f5e93-d2a0-45bb-a0d9-5e7c7e0d56e5", "response_type": "token id_token", "session_id": "42a109df-e1da-4df6-a72c-24ee87479dc9", "nonce": "8b78b130-197d-4d39-9fe3-1290660dff82", "client_id": "f5bf6702-c82c-45e1-8bf0-e00f397282c9", "sid": "95acab60-69ab-4b78-b2b6-3a797f5a4a7d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid test", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6ba41e66-7d8e-408f-b925-ee9b832d8b53", "old_session_id": "08b7785b-cfb6-4182-a658-1af70ac88eed" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:45" }, { "isJwt": false, "opbrowserState": "9475b768-fa19-41fc-8b9d-4c64b260475d", "deletable": true, "dn": "jansId=47d08601-7d0f-49d5-9955-c3842d4f3b24,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:44", "creationDate": "2022-11-24T09:17:44", "ttl": 0, "sessionState": "d69c5aee979e906bb68a61bb344a79424f2a02604bb87170f0b28ab8582d8f36.2c6ed3c0-2619-4918-ab1c-ba91a4f11eca", "lastUsedAt": "2022-11-24T09:17:44", "permissionGrantedMap": { "permissionGranted": { "efba67e1-85b0-4868-a0ff-b90c1c901922": true } }, "outsideSid": "8989eab7-ad96-4971-903e-d2a949371982", "id": "47d08601-7d0f-49d5-9955-c3842d4f3b24", "state": "authenticated", "sessionAttributes": { "opbs": "9475b768-fa19-41fc-8b9d-4c64b260475d", "response_type": "code id_token", "session_id": "47d08601-7d0f-49d5-9955-c3842d4f3b24", "nonce": "68cd4043-29d3-4b3b-bb28-030c896189aa", "client_id": "efba67e1-85b0-4868-a0ff-b90c1c901922", "sid": "8989eab7-ad96-4971-903e-d2a949371982", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email phone user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "abcebe73-dca0-4db4-ab6e-1fa658e6a829", "old_session_id": "c3372437-d2ab-4d11-ab05-b28b0129671b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:44" }, { "isJwt": false, "opbrowserState": "33187a93-7476-49a2-acff-932c4c04d1cf", "deletable": true, "dn": "jansId=ac84cd7b-1e8f-4952-af03-52280b4238e8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:44", "creationDate": "2022-11-24T09:17:44", "ttl": 0, "sessionState": "cd42481bf3771cfd2dd0ae5332f0d405ca797be6e15918b2c53eab4e15cb4bf9.d68b71f2-b90d-4c7a-bab6-357c83d1e26e", "lastUsedAt": "2022-11-24T09:17:44", "permissionGrantedMap": { "permissionGranted": { "435250cb-2ed7-4208-bff3-525d99592904": true } }, "outsideSid": "cc0cf629-d95c-46ac-a48b-968be589b745", "id": "ac84cd7b-1e8f-4952-af03-52280b4238e8", "state": "authenticated", "sessionAttributes": { "opbs": "33187a93-7476-49a2-acff-932c4c04d1cf", "response_type": "code", "session_id": "ac84cd7b-1e8f-4952-af03-52280b4238e8", "client_id": "435250cb-2ed7-4208-bff3-525d99592904", "sid": "cc0cf629-d95c-46ac-a48b-968be589b745", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "759aaf59-db62-41e3-8909-46622f3fc1ec", "old_session_id": "ef3f9059-9f56-479a-92fa-6adeb4987f53" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:44" }, { "isJwt": false, "opbrowserState": "660d7029-df79-4179-be83-64049172a01e", "deletable": true, "dn": "jansId=9c17bc83-4cbe-41f5-b9df-092890816cbf,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:44", "creationDate": "2022-11-24T09:17:44", "ttl": 0, "sessionState": "6a69d902e92e6ce3757c343738bf9f1d3793157db4ce822301b974b34e9aa4d4.3fa85346-adc6-4960-8635-c35ec3eb0f24", "lastUsedAt": "2022-11-24T09:17:44", "permissionGrantedMap": { "permissionGranted": { "f6c91e0c-bfb8-4bd2-a970-9cd1e6a9f1ca": true } }, "outsideSid": "78d298bd-5471-456e-a378-8d6d1d593291", "id": "9c17bc83-4cbe-41f5-b9df-092890816cbf", "state": "authenticated", "sessionAttributes": { "opbs": "660d7029-df79-4179-be83-64049172a01e", "response_type": "token id_token", "session_id": "9c17bc83-4cbe-41f5-b9df-092890816cbf", "nonce": "28e9d07d-0d74-4b3d-aef7-eeb3ad3059a1", "client_id": "f6c91e0c-bfb8-4bd2-a970-9cd1e6a9f1ca", "sid": "78d298bd-5471-456e-a378-8d6d1d593291", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid test", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6573d8eb-eba1-471e-9e06-660d3011bead", "old_session_id": "b81acfc8-adfd-4a4b-8008-7d20b0308ed5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:44" }, { "isJwt": false, "opbrowserState": "b8d71830-a06a-4167-8bc0-5c938833a02c", "deletable": true, "dn": "jansId=2b7ebec3-898a-4323-bb14-62d74c5dcb95,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:43", "creationDate": "2022-11-24T09:17:43", "ttl": 0, "sessionState": "f4c9e7e74851e47cd5c932fa338e496e2d2e0a445aba45133b1b4030566a7110.c9cebde4-74c4-4dc5-bbd3-26f97cc31500", "lastUsedAt": "2022-11-24T09:17:43", "permissionGrantedMap": { "permissionGranted": { "01374fd1-0b54-4e1d-b930-d6bd3835c52c": true } }, "outsideSid": "189c5803-cb20-4e94-b1f4-c4f8ea2404d4", "id": "2b7ebec3-898a-4323-bb14-62d74c5dcb95", "state": "authenticated", "sessionAttributes": { "opbs": "b8d71830-a06a-4167-8bc0-5c938833a02c", "response_type": "code", "session_id": "2b7ebec3-898a-4323-bb14-62d74c5dcb95", "client_id": "01374fd1-0b54-4e1d-b930-d6bd3835c52c", "sid": "189c5803-cb20-4e94-b1f4-c4f8ea2404d4", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d41cdd49-a05f-483a-a7ed-8a2d3502e08f", "old_session_id": "94b58cb4-0b80-4fa3-ab6f-7ff995c787b5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:43" }, { "isJwt": false, "opbrowserState": "13ac984e-d448-4b4c-9e15-87098ba4c42f", "deletable": true, "dn": "jansId=2d22ba9f-0e20-4331-9ca8-018fed38787c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:43", "creationDate": "2022-11-24T09:17:42", "ttl": 0, "sessionState": "9d63695f73c73adc87ca21fc8e087a56438457fc5a3de7c29c04db7581d0fc5d.93c8df62-dbb5-4cda-b57c-807b2318b2db", "lastUsedAt": "2022-11-24T09:17:43", "permissionGrantedMap": { "permissionGranted": { "6dfee0c6-a94b-4fd0-954e-f1d94c1e5e80": true } }, "outsideSid": "484ddbf7-e95a-480d-b9d3-6165a9d89458", "id": "2d22ba9f-0e20-4331-9ca8-018fed38787c", "state": "authenticated", "sessionAttributes": { "opbs": "13ac984e-d448-4b4c-9e15-87098ba4c42f", "response_type": "code id_token", "session_id": "2d22ba9f-0e20-4331-9ca8-018fed38787c", "nonce": "08fd78cc-63a4-41bf-9ed5-d029bd430fcb", "client_id": "6dfee0c6-a94b-4fd0-954e-f1d94c1e5e80", "sid": "484ddbf7-e95a-480d-b9d3-6165a9d89458", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email phone user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "94f99624-5410-487e-81e0-f1eb8dc457c0", "old_session_id": "2fb6fef0-8b1c-4f68-9b8e-a1f5f910d872" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:42" }, { "isJwt": false, "opbrowserState": "76507920-3028-47f5-8d70-e30eef39bdc9", "deletable": true, "dn": "jansId=2c8e5d42-43ad-480c-b0d8-67ec98a2c041,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:43", "creationDate": "2022-11-24T09:17:42", "ttl": 0, "sessionState": "d5818243ae9021139c5e654de7091ef11cea7338050fd9931f1093f3213cf65f.6d2c5488-a80a-4be0-8189-32bf96eaa446", "lastUsedAt": "2022-11-24T09:17:43", "permissionGrantedMap": { "permissionGranted": { "59982c27-1c92-40f1-88d2-eef7a69a4bcc": true } }, "outsideSid": "9b16a6f9-1c4e-4674-b2e7-e5ece53e47ed", "id": "2c8e5d42-43ad-480c-b0d8-67ec98a2c041", "state": "authenticated", "sessionAttributes": { "opbs": "76507920-3028-47f5-8d70-e30eef39bdc9", "response_type": "token id_token", "session_id": "2c8e5d42-43ad-480c-b0d8-67ec98a2c041", "nonce": "67f56815-061b-4c85-9198-15ccab5deec7", "client_id": "59982c27-1c92-40f1-88d2-eef7a69a4bcc", "sid": "9b16a6f9-1c4e-4674-b2e7-e5ece53e47ed", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid test", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6dda69f1-2d42-46a9-985a-bcab2d9c0572", "old_session_id": "a81a5ea1-a5fc-4cdc-a9d5-1e04cd55aefb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:42" }, { "isJwt": false, "opbrowserState": "bc64b5c3-8a33-465f-a5fe-4ea5d0e3fb68", "deletable": true, "dn": "jansId=28c7fe8e-7237-423a-9273-b4c46f3ca7e5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:42", "creationDate": "2022-11-24T09:17:41", "ttl": 0, "sessionState": "461e9fdcb9711529b047137daddd92b1d8bada254bb32e3379ed56bed06c5a8f.4fd34bc3-dfb1-4b6d-9265-e6416987d987", "lastUsedAt": "2022-11-24T09:17:42", "permissionGrantedMap": { "permissionGranted": { "9f0eb9f6-40e1-462b-916e-427e5d5bc28b": true } }, "outsideSid": "9b3fd958-5dd7-4047-bfd2-96ab07845831", "id": "28c7fe8e-7237-423a-9273-b4c46f3ca7e5", "state": "authenticated", "sessionAttributes": { "opbs": "bc64b5c3-8a33-465f-a5fe-4ea5d0e3fb68", "response_type": "code", "session_id": "28c7fe8e-7237-423a-9273-b4c46f3ca7e5", "client_id": "9f0eb9f6-40e1-462b-916e-427e5d5bc28b", "sid": "9b3fd958-5dd7-4047-bfd2-96ab07845831", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "359d2236-d9a9-410e-b1c6-4a233e9cedf6", "old_session_id": "1e056a02-ad07-4be2-9d2e-b26094fd01cc" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:41" }, { "isJwt": false, "opbrowserState": "0410b874-2db5-4af7-ab7f-81406ae88b69", "deletable": true, "dn": "jansId=2a97dfeb-b2aa-4b02-8ea0-515ddc0f3ead,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:41", "creationDate": "2022-11-24T09:17:41", "ttl": 0, "sessionState": "4e4aa905289e35fd2a03dbcb04c78a9d53cc45aef91ae6b6cda1736f0ad5ace8.30c58281-425d-48ed-a473-f0b68bcc6dc0", "lastUsedAt": "2022-11-24T09:17:42", "permissionGrantedMap": { "permissionGranted": { "931dfcde-bea8-4b70-ab7f-1fe3d9d57211": true } }, "outsideSid": "b37cc4e2-ed88-4d3d-a75b-2cb7fc2f2170", "id": "2a97dfeb-b2aa-4b02-8ea0-515ddc0f3ead", "state": "authenticated", "sessionAttributes": { "opbs": "0410b874-2db5-4af7-ab7f-81406ae88b69", "response_type": "token id_token", "session_id": "2a97dfeb-b2aa-4b02-8ea0-515ddc0f3ead", "nonce": "d4d82776-c84f-4e4b-8c89-17c3a7345c6f", "client_id": "931dfcde-bea8-4b70-ab7f-1fe3d9d57211", "sid": "b37cc4e2-ed88-4d3d-a75b-2cb7fc2f2170", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid test", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b13aabe7-3556-4b7e-9f31-152ddee57f60", "old_session_id": "ab650194-ea5a-400b-acbb-c62f7d43ecb3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:41" }, { "isJwt": false, "opbrowserState": "07debdf1-1af9-46b7-9b40-24efbf075ed7", "deletable": true, "dn": "jansId=94332544-6314-4440-bb3e-7ec66b3c3dde,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:41", "creationDate": "2022-11-24T09:17:40", "ttl": 0, "sessionState": "af91f0ffe112e0d662447ef57ee64b475f65a6f57e90d657c70b2079413d8cf0.8401010c-b399-428b-bb05-aa8a932409e1", "lastUsedAt": "2022-11-24T09:17:41", "permissionGrantedMap": { "permissionGranted": { "f67cd459-05c3-4621-acfe-410ecc95ccc0": true } }, "outsideSid": "16f688a6-205f-4c31-99b6-394edf01f5c5", "id": "94332544-6314-4440-bb3e-7ec66b3c3dde", "state": "authenticated", "sessionAttributes": { "opbs": "07debdf1-1af9-46b7-9b40-24efbf075ed7", "response_type": "code id_token", "session_id": "94332544-6314-4440-bb3e-7ec66b3c3dde", "nonce": "b6987f96-58da-4388-a6ff-8f07e91c1725", "client_id": "f67cd459-05c3-4621-acfe-410ecc95ccc0", "sid": "16f688a6-205f-4c31-99b6-394edf01f5c5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email phone user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e250a42a-ef0e-498c-a815-5e21d4ea990a", "old_session_id": "af29bff8-1958-495e-8806-fa77847eca3c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:40" }, { "isJwt": false, "opbrowserState": "c3cd2663-6ed5-4a05-aea5-7413c47abf89", "deletable": true, "dn": "jansId=a268825a-9dfa-45b2-90e3-899829721faa,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:40", "creationDate": "2022-11-24T09:17:40", "ttl": 0, "sessionState": "526e622aed631fc3c4082fe3fbde4b312de7bfb5ed425c2ab7a81dcd4b6e217d.8b5de303-c37e-4093-880d-0e92d952f6da", "lastUsedAt": "2022-11-24T09:17:40", "permissionGrantedMap": { "permissionGranted": { "0a447a29-fb95-4cc8-b316-7d45e0d8ef0c": true } }, "outsideSid": "2f8105b1-9bd7-4173-a0e6-703425f4df16", "id": "a268825a-9dfa-45b2-90e3-899829721faa", "state": "authenticated", "sessionAttributes": { "opbs": "c3cd2663-6ed5-4a05-aea5-7413c47abf89", "response_type": "code", "session_id": "a268825a-9dfa-45b2-90e3-899829721faa", "client_id": "0a447a29-fb95-4cc8-b316-7d45e0d8ef0c", "sid": "2f8105b1-9bd7-4173-a0e6-703425f4df16", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2a4dd0f7-0c68-4a0d-9850-11fbcc737ed5", "old_session_id": "16f1b064-d382-4ae6-9f5e-a74ea8f239ea" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:40" }, { "isJwt": false, "opbrowserState": "e1b5d1a4-6025-483d-88c3-5c38c9f609f4", "deletable": true, "dn": "jansId=2b5ebb68-3466-4abf-bc8d-23d73a890730,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:39", "creationDate": "2022-11-24T09:17:38", "ttl": 0, "sessionState": "aadca95e6a781d380973edf5eba7f38a3224b498d69aea15c2ab56f49ea3c5ee.ec0b50e3-764c-4ce9-9df1-417b106742c3", "lastUsedAt": "2022-11-24T09:17:39", "permissionGrantedMap": { "permissionGranted": { "87448227-6cf1-4f57-9009-46344a21b185": true } }, "outsideSid": "0a341bf9-061a-4d54-9495-ee1dbcc90b60", "id": "2b5ebb68-3466-4abf-bc8d-23d73a890730", "state": "authenticated", "sessionAttributes": { "opbs": "e1b5d1a4-6025-483d-88c3-5c38c9f609f4", "response_type": "code", "session_id": "2b5ebb68-3466-4abf-bc8d-23d73a890730", "client_id": "87448227-6cf1-4f57-9009-46344a21b185", "sid": "0a341bf9-061a-4d54-9495-ee1dbcc90b60", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "57a8a470-a914-4b66-b5c5-4d81928324b8", "old_session_id": "81c8675d-6621-4661-9b36-603bd0b82ca9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:38" }, { "isJwt": false, "opbrowserState": "e00555ee-3157-4353-a62b-dc4894be5744", "deletable": true, "dn": "jansId=677bb834-310e-43e5-83d1-9958e58ff016,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:38", "creationDate": "2022-11-24T09:17:38", "ttl": 0, "sessionState": "e46f8cbb931370617ede60c70f4e35af5a01b7678cc29390191f11e92705a26d.ca069bce-d0c4-46cf-a155-1bdd7000001b", "lastUsedAt": "2022-11-24T09:17:38", "permissionGrantedMap": { "permissionGranted": { "befa67bc-80f4-4813-991e-347b68b7f7b4": true } }, "outsideSid": "3bd4951a-1d90-4fa7-affd-7b107530d944", "id": "677bb834-310e-43e5-83d1-9958e58ff016", "state": "authenticated", "sessionAttributes": { "opbs": "e00555ee-3157-4353-a62b-dc4894be5744", "response_type": "token id_token", "session_id": "677bb834-310e-43e5-83d1-9958e58ff016", "nonce": "d077386c-aea7-412c-b0e3-5cc2b88bd0f5", "client_id": "befa67bc-80f4-4813-991e-347b68b7f7b4", "sid": "3bd4951a-1d90-4fa7-affd-7b107530d944", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid test", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "27155cc2-f1cf-4006-886c-231df7966164", "old_session_id": "4a3ff88a-9f8b-418f-85e9-92517145d873" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:38" }, { "isJwt": false, "opbrowserState": "0848645f-2afe-4163-ac16-77f166a3a06d", "deletable": true, "dn": "jansId=951ea50a-4b1d-41e2-8807-db7bee9c18ef,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:37", "creationDate": "2022-11-24T09:17:37", "ttl": 0, "sessionState": "17983d7f01418e1e478b32b24f55a3d8ec00527e9d0cc339ce44dea1ec0b9152.bdb5b872-7377-4a60-a8df-f057a0ab3b72", "lastUsedAt": "2022-11-24T09:17:37", "permissionGrantedMap": { "permissionGranted": { "73db5441-fae2-4963-9393-4ff1d70b0f09": true } }, "outsideSid": "0dd29785-d7ea-4cdd-a583-785b942246c7", "id": "951ea50a-4b1d-41e2-8807-db7bee9c18ef", "state": "authenticated", "sessionAttributes": { "opbs": "0848645f-2afe-4163-ac16-77f166a3a06d", "response_type": "token id_token", "session_id": "951ea50a-4b1d-41e2-8807-db7bee9c18ef", "nonce": "f5510e03-a755-4e74-8fd3-2feb3b14a343", "client_id": "73db5441-fae2-4963-9393-4ff1d70b0f09", "sid": "0dd29785-d7ea-4cdd-a583-785b942246c7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid test", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "adcf98f3-2a34-4fad-9890-aeccc9f6abbb", "old_session_id": "505a3702-a57b-4fc8-944e-3eff1a11e690" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:37" }, { "isJwt": false, "opbrowserState": "66cdb1f5-17a4-4877-b880-b785d7cc93ae", "deletable": true, "dn": "jansId=7d7e2c89-c0f0-4a36-845a-a80f84eb94f2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:36", "creationDate": "2022-11-24T09:17:36", "ttl": 0, "sessionState": "40aa449c626bf05ca18d8bfada11830990f6296555df06fa80fba681b47e9bec.9966cdf8-719b-47bf-abdb-b381ffdb97ff", "lastUsedAt": "2022-11-24T09:17:36", "permissionGrantedMap": { "permissionGranted": { "7bcafc4d-d69d-419a-905c-5c32d62d60f0": true } }, "outsideSid": "b9ce2a90-5b4b-40ac-b5d5-9b628c2fdf72", "id": "7d7e2c89-c0f0-4a36-845a-a80f84eb94f2", "state": "authenticated", "sessionAttributes": { "opbs": "66cdb1f5-17a4-4877-b880-b785d7cc93ae", "response_type": "token id_token", "session_id": "7d7e2c89-c0f0-4a36-845a-a80f84eb94f2", "nonce": "344312cb-2775-4b84-b22b-80679e09d4d5", "client_id": "7bcafc4d-d69d-419a-905c-5c32d62d60f0", "sid": "b9ce2a90-5b4b-40ac-b5d5-9b628c2fdf72", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid test", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f43926ae-47e8-4016-bd04-e48085d908f2", "old_session_id": "67bd211a-0217-48bf-852b-6a9e03249b6b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:36" }, { "isJwt": false, "opbrowserState": "5b20a194-d216-4083-8d52-4851b249cc84", "deletable": true, "dn": "jansId=08ff5f4c-871c-4f67-ad5a-d1e93cf24dfd,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:35", "creationDate": "2022-11-24T09:17:35", "ttl": 0, "sessionState": "1aa0f505b6bb18fa8eeb4d4cdd5977babe2553ad82ec803481b1daba03ae5325.98e114be-7c22-4d62-a5ac-1442e55abe39", "lastUsedAt": "2022-11-24T09:17:35", "permissionGrantedMap": { "permissionGranted": { "19cc3a4b-d4b1-401c-8767-d6ba39ee607d": true } }, "outsideSid": "4205035e-5f67-409e-b2a5-7139b140e3e7", "id": "08ff5f4c-871c-4f67-ad5a-d1e93cf24dfd", "state": "authenticated", "sessionAttributes": { "opbs": "5b20a194-d216-4083-8d52-4851b249cc84", "response_type": "code", "session_id": "08ff5f4c-871c-4f67-ad5a-d1e93cf24dfd", "client_id": "19cc3a4b-d4b1-401c-8767-d6ba39ee607d", "sid": "4205035e-5f67-409e-b2a5-7139b140e3e7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8966a83a-6f19-49ba-aa91-98ef2321880d", "old_session_id": "ba37bb64-c89b-4354-92b0-edf8ed9f72cd" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:35" }, { "isJwt": false, "opbrowserState": "11d3d296-f5b9-4dd5-a4c4-687115706cae", "deletable": true, "dn": "jansId=33f589c8-2873-42df-804d-b8ed9c1b23dc,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:35", "creationDate": "2022-11-24T09:17:34", "ttl": 0, "sessionState": "a030e692ab909227f3bbabfedf131c3ca199ea849de7adf2b8c8c0f80fbf1724.76192c55-db27-4ff6-b625-4e6f21f18c8f", "lastUsedAt": "2022-11-24T09:17:35", "permissionGrantedMap": { "permissionGranted": { "edf5a79b-15dc-4cfa-8e6b-0ce978937f61": true } }, "outsideSid": "7aa197b3-1e4b-40b2-bfca-fceae6118f7a", "id": "33f589c8-2873-42df-804d-b8ed9c1b23dc", "state": "authenticated", "sessionAttributes": { "opbs": "11d3d296-f5b9-4dd5-a4c4-687115706cae", "response_type": "token id_token", "session_id": "33f589c8-2873-42df-804d-b8ed9c1b23dc", "nonce": "6f8e9bd3-5f12-48fc-8096-0ec83395d8e5", "client_id": "edf5a79b-15dc-4cfa-8e6b-0ce978937f61", "sid": "7aa197b3-1e4b-40b2-bfca-fceae6118f7a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid test", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5ae7d38c-f490-4d73-a333-e002492f500e", "old_session_id": "c40c6dbf-4011-4c77-82d7-d7f694285bbd" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:34" }, { "isJwt": false, "opbrowserState": "c5c484fc-d87b-48c6-a50a-5963f7ba1c46", "deletable": true, "dn": "jansId=58542c66-6856-4edb-961d-4c166f7377f9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:34", "creationDate": "2022-11-24T09:17:33", "ttl": 0, "sessionState": "de89d4944c42e64fe1fded0f9538ecb800ac89dc16a39a53a5ad5176833ee034.e4703b15-119b-480b-b745-0b998ee3d5f1", "lastUsedAt": "2022-11-24T09:17:34", "permissionGrantedMap": { "permissionGranted": { "adc1d416-caac-447f-aaa3-e2e2882df9a0": true } }, "outsideSid": "6e455e8e-2844-437c-842c-b8c7698e8b85", "id": "58542c66-6856-4edb-961d-4c166f7377f9", "state": "authenticated", "sessionAttributes": { "opbs": "c5c484fc-d87b-48c6-a50a-5963f7ba1c46", "response_type": "token id_token", "session_id": "58542c66-6856-4edb-961d-4c166f7377f9", "nonce": "9c549d7e-7019-4562-aab2-4af205dec3b1", "client_id": "adc1d416-caac-447f-aaa3-e2e2882df9a0", "sid": "6e455e8e-2844-437c-842c-b8c7698e8b85", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid test", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "176b73ce-d3e2-47e1-a63c-7ea66039873f", "old_session_id": "12592df2-bb79-42cc-b8fe-8a9c8a25524c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:33" }, { "isJwt": false, "opbrowserState": "4221bb59-60a7-4a08-b88a-c8e3e3a0d0c8", "deletable": true, "dn": "jansId=4761a624-1b0d-4460-9ef9-301e67b499a5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:33", "creationDate": "2022-11-24T09:17:32", "ttl": 0, "sessionState": "ce85f15925f2b946efc8e8146c555385efa953ec29d4a624be522a5a1989431e.fdd9351d-9a1f-4364-99fa-6da7d04d8d59", "lastUsedAt": "2022-11-24T09:17:33", "permissionGrantedMap": { "permissionGranted": { "0f7ddd7a-aeba-4efe-857f-02acc853be61": true } }, "outsideSid": "327512a9-f1d9-4416-bc04-7aff0a84354d", "id": "4761a624-1b0d-4460-9ef9-301e67b499a5", "state": "authenticated", "sessionAttributes": { "opbs": "4221bb59-60a7-4a08-b88a-c8e3e3a0d0c8", "response_type": "code", "session_id": "4761a624-1b0d-4460-9ef9-301e67b499a5", "client_id": "0f7ddd7a-aeba-4efe-857f-02acc853be61", "sid": "327512a9-f1d9-4416-bc04-7aff0a84354d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5fccb246-d094-4e40-af01-d3456beb9063", "old_session_id": "099dfc33-7cef-4e29-bd68-ff3ba57ed837" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:32" }, { "isJwt": false, "opbrowserState": "bec30543-a9ff-4fb7-be6b-247cd215fa25", "deletable": true, "dn": "jansId=467ffe18-d575-4cb2-a9bd-1d7bb8c00441,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:32", "creationDate": "2022-11-24T09:17:32", "ttl": 0, "sessionState": "8eb01bac59c54dd22359b1a3956e4b7f5fddc447a865e2cf83883ce1cc136b2f.f649b795-75b1-40fb-aca4-12ae7b1c7809", "lastUsedAt": "2022-11-24T09:17:32", "permissionGrantedMap": { "permissionGranted": { "7f2df006-357e-4023-8e30-4602f990920e": true } }, "outsideSid": "069f810c-2318-4273-b541-1a509fed2054", "id": "467ffe18-d575-4cb2-a9bd-1d7bb8c00441", "state": "authenticated", "sessionAttributes": { "opbs": "bec30543-a9ff-4fb7-be6b-247cd215fa25", "response_type": "token id_token", "session_id": "467ffe18-d575-4cb2-a9bd-1d7bb8c00441", "nonce": "f6ed1d75-91f4-48d9-8c25-44a8414f0afe", "client_id": "7f2df006-357e-4023-8e30-4602f990920e", "sid": "069f810c-2318-4273-b541-1a509fed2054", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid test", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3d999e34-579e-499b-a8d2-3c4d4a78a572", "old_session_id": "200cb926-e478-419d-80d4-749a63a111e5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:32" }, { "isJwt": false, "opbrowserState": "ebda0944-e50f-4f19-878f-5c47beb2c37d", "deletable": true, "dn": "jansId=4600c4ca-065e-40c7-836a-20b76142c4b4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:32", "creationDate": "2022-11-24T09:17:31", "ttl": 0, "sessionState": "f97a0bc7a9bdda1285770eb7941e4551011a2ca3a8ec3ac7bde63b5e7345beeb.5c1ba3b2-f3a5-4ab8-bfa7-c86d684c9b99", "lastUsedAt": "2022-11-24T09:17:32", "permissionGrantedMap": { "permissionGranted": { "ca1cddc1-2ed5-439c-a354-1f7b3c17d211": true } }, "outsideSid": "4695209a-3a8c-4c0c-9038-4f50080ca9c9", "id": "4600c4ca-065e-40c7-836a-20b76142c4b4", "state": "authenticated", "sessionAttributes": { "opbs": "ebda0944-e50f-4f19-878f-5c47beb2c37d", "response_type": "code", "session_id": "4600c4ca-065e-40c7-836a-20b76142c4b4", "client_id": "ca1cddc1-2ed5-439c-a354-1f7b3c17d211", "sid": "4695209a-3a8c-4c0c-9038-4f50080ca9c9", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "faab4596-3c08-4568-8938-72233f872139", "old_session_id": "77f3bec6-01d6-4441-9ffb-eeb1277f6098" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:31" }, { "isJwt": false, "opbrowserState": "39b35178-3e54-492c-9ced-2beaa7b2a90b", "deletable": true, "dn": "jansId=734c6219-e732-45ba-9127-1be06c58bef7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:30", "creationDate": "2022-11-24T09:17:30", "ttl": 0, "sessionState": "0c3b23d5c71fb61b4d769ecfef775b38bc4eb764500e50fa2cfe208a9532dda4.750ec107-e275-45c5-8afc-5e5451926543", "lastUsedAt": "2022-11-24T09:17:30", "permissionGrantedMap": { "permissionGranted": { "4fd5f391-d748-475b-bd1b-6103f41a8bd6": true } }, "outsideSid": "21c9b532-4e49-4c61-9708-85e15fcaeecc", "id": "734c6219-e732-45ba-9127-1be06c58bef7", "state": "authenticated", "sessionAttributes": { "opbs": "39b35178-3e54-492c-9ced-2beaa7b2a90b", "response_type": "code", "session_id": "734c6219-e732-45ba-9127-1be06c58bef7", "client_id": "4fd5f391-d748-475b-bd1b-6103f41a8bd6", "sid": "21c9b532-4e49-4c61-9708-85e15fcaeecc", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "70eacc86-da8a-494f-bdbc-a23c6cde8ea6", "old_session_id": "042aaef2-4407-440d-9351-11a7d1fe21da" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:30" }, { "isJwt": false, "opbrowserState": "442b7ba1-6ec8-42b1-9880-a4dc7a8bc76f", "deletable": true, "dn": "jansId=19de472b-edbe-4f59-a172-e05d5cfb5dcf,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:29", "creationDate": "2022-11-24T09:17:29", "ttl": 0, "sessionState": "4cbf2ed2abb524a5c442cf25e8c0f74bc0037de0091164faace593a76d6e8833.8a07efc0-8b3d-4938-8d32-9871454e3e3f", "lastUsedAt": "2022-11-24T09:17:30", "permissionGrantedMap": { "permissionGranted": { "d7a5a94a-93f8-44b7-ae92-d1df0f9291ab": true } }, "outsideSid": "05909917-e91d-461d-8c10-3f91c60da07e", "id": "19de472b-edbe-4f59-a172-e05d5cfb5dcf", "state": "authenticated", "sessionAttributes": { "opbs": "442b7ba1-6ec8-42b1-9880-a4dc7a8bc76f", "response_type": "token id_token", "session_id": "19de472b-edbe-4f59-a172-e05d5cfb5dcf", "nonce": "6efe5299-8faf-4544-9999-60072932d808", "client_id": "d7a5a94a-93f8-44b7-ae92-d1df0f9291ab", "sid": "05909917-e91d-461d-8c10-3f91c60da07e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid test", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1e91ee01-a4a2-48b9-97f5-758b6e3e1652", "old_session_id": "1232c95a-7a5f-4df4-a221-1dc158b240f7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:29" }, { "isJwt": false, "opbrowserState": "13c3537c-3de4-4df3-ac60-2809abf97547", "deletable": true, "dn": "jansId=71c36ae4-bf25-454f-9b5d-51c633b0cc0d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:28", "creationDate": "2022-11-24T09:17:27", "ttl": 0, "sessionState": "f8871588628de39fff5d3925308c4c43d4b33a507b5988a365b1464202ab4d1f.b6aa05ce-db54-4364-a0fb-145235df43bb", "lastUsedAt": "2022-11-24T09:17:28", "permissionGrantedMap": { "permissionGranted": { "34c20f8e-d430-4dba-9d2f-7358ddeb898f": true } }, "outsideSid": "1d5f88a1-4181-4f40-83cf-21efb3ce5ded", "id": "71c36ae4-bf25-454f-9b5d-51c633b0cc0d", "state": "authenticated", "sessionAttributes": { "opbs": "13c3537c-3de4-4df3-ac60-2809abf97547", "response_type": "token id_token", "session_id": "71c36ae4-bf25-454f-9b5d-51c633b0cc0d", "nonce": "c354df0b-e67a-43a7-ac88-bf556ea7ad66", "client_id": "34c20f8e-d430-4dba-9d2f-7358ddeb898f", "sid": "1d5f88a1-4181-4f40-83cf-21efb3ce5ded", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid test", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "937a2808-5fd8-4ae0-b9b9-89bd1a8e45f1", "old_session_id": "a5546ee8-1ac0-4dcb-9d3f-22142f018e7e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:27" }, { "isJwt": false, "opbrowserState": "d104df9f-79aa-4a41-961b-ea428a9db5b2", "deletable": true, "dn": "jansId=1183a94c-9154-4853-8704-ec31ab287fd6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:27", "creationDate": "2022-11-24T09:17:26", "ttl": 0, "sessionState": "2f671b2ba0b33d3296d9cd657ce982fd21e53ea1322a35e435bdb81018a0be73.c6d5a28e-873e-4d3e-a6a5-752229e1385d", "lastUsedAt": "2022-11-24T09:17:27", "permissionGrantedMap": { "permissionGranted": { "d2fdf5b7-d29f-446c-82ce-47f29b2399a2": true } }, "outsideSid": "076450e0-048b-489e-9999-79d949eb9d25", "id": "1183a94c-9154-4853-8704-ec31ab287fd6", "state": "authenticated", "sessionAttributes": { "opbs": "d104df9f-79aa-4a41-961b-ea428a9db5b2", "response_type": "id_token", "session_id": "1183a94c-9154-4853-8704-ec31ab287fd6", "nonce": "0647ca99-bb21-4a58-9cfc-f95d836fb0de", "client_id": "d2fdf5b7-d29f-446c-82ce-47f29b2399a2", "sid": "076450e0-048b-489e-9999-79d949eb9d25", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2cd035c9-69cc-4553-b359-7c108c8fe6d8", "old_session_id": "308e8871-5493-4bad-ac3e-f3a9f039756e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:26" }, { "isJwt": false, "opbrowserState": "5b594206-cd9e-4f7d-b018-20158aa4734d", "deletable": true, "dn": "jansId=0ff2fc51-28ca-4dd1-9e2e-e31c67a20772,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:27", "creationDate": "2022-11-24T09:17:26", "ttl": 0, "sessionState": "3a34906b4683bf98d8824c9bfee597c514f1cd3f5599d2a82741b4f0497d51fe.e2ca65ca-a20c-4239-9111-e7362689bd4d", "lastUsedAt": "2022-11-24T09:17:27", "permissionGrantedMap": { "permissionGranted": { "4154a9e5-28c0-422d-b07f-fcd84acfdece": true } }, "outsideSid": "2337ed4d-03c4-4a16-a29f-4b00342b7f90", "id": "0ff2fc51-28ca-4dd1-9e2e-e31c67a20772", "state": "authenticated", "sessionAttributes": { "opbs": "5b594206-cd9e-4f7d-b018-20158aa4734d", "response_type": "code token id_token", "session_id": "0ff2fc51-28ca-4dd1-9e2e-e31c67a20772", "nonce": "31659c79-85de-4def-b9c9-08a0de56840a", "client_id": "4154a9e5-28c0-422d-b07f-fcd84acfdece", "sid": "2337ed4d-03c4-4a16-a29f-4b00342b7f90", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "37a0da7c-475b-40a8-a26e-83cb7b907ee5", "old_session_id": "d6b039e2-c0df-43f0-bc7d-99d1b9a61a1c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:26" }, { "isJwt": false, "opbrowserState": "453bdc00-e11d-42c5-b42d-37b0af31fc17", "deletable": true, "dn": "jansId=a2b55f9b-3f47-4070-b3b5-56f16263aeca,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:26", "creationDate": "2022-11-24T09:17:26", "ttl": 0, "sessionState": "3a068dd0aeb174b113ff38bf69aa8ef32691b8a0814282e4a6a5ba6769c56ef6.42c82b9a-8dd8-4b3a-8e4c-a7fefeed9437", "lastUsedAt": "2022-11-24T09:17:26", "permissionGrantedMap": { "permissionGranted": { "0467af81-b082-4167-8f53-908cb19dea07": true } }, "outsideSid": "7fdf0b76-7ec9-4cfa-8523-780b93c8291d", "id": "a2b55f9b-3f47-4070-b3b5-56f16263aeca", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "453bdc00-e11d-42c5-b42d-37b0af31fc17" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:26" }, { "isJwt": false, "opbrowserState": "9b8a2e3f-732f-4e7d-9082-731bcdd1be69", "deletable": true, "dn": "jansId=357294ee-68d5-40c3-9cf7-c5909d389fae,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:26", "creationDate": "2022-11-24T09:17:25", "ttl": 0, "sessionState": "82431f357523a8943991538e9d78f718a74fc07769b87723cd9fc5f2f1b865b7.7cb9b0e8-9201-4e39-a7ea-0f8ad848aaca", "lastUsedAt": "2022-11-24T09:17:27", "permissionGrantedMap": { "permissionGranted": { "98f3dc1b-5686-487f-b0a1-d50699aeb83b": true } }, "outsideSid": "f4b05fe9-7d64-4027-83cb-654b6c7002fc", "id": "357294ee-68d5-40c3-9cf7-c5909d389fae", "state": "authenticated", "sessionAttributes": { "opbs": "9b8a2e3f-732f-4e7d-9082-731bcdd1be69", "response_type": "token id_token", "session_id": "357294ee-68d5-40c3-9cf7-c5909d389fae", "nonce": "e2f0442d-a292-443a-abf8-183043dc4399", "client_id": "98f3dc1b-5686-487f-b0a1-d50699aeb83b", "sid": "f4b05fe9-7d64-4027-83cb-654b6c7002fc", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid test", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e8d35a66-7059-46d4-9e21-feac0f6383f6", "old_session_id": "252166d2-39c6-48ec-b5ac-a74be0c0fe3d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:25" }, { "isJwt": false, "opbrowserState": "860d9765-bd73-4eb4-871d-ddf5c5920845", "deletable": true, "dn": "jansId=aa06857f-15c3-4483-b1c9-73ad12e49494,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:24", "creationDate": "2022-11-24T09:17:24", "ttl": 0, "sessionState": "4ffb1b15fd70cf95cb670446527c1d191e18586fa74b6e9e36435b130a480ccc.04b6222e-28dc-4c54-b3e0-65f34fa4d0ca", "lastUsedAt": "2022-11-24T09:17:24", "permissionGrantedMap": { "permissionGranted": { "0467af81-b082-4167-8f53-908cb19dea07": true } }, "outsideSid": "4506a50c-d402-4361-9c44-edc08c9030e9", "id": "aa06857f-15c3-4483-b1c9-73ad12e49494", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "860d9765-bd73-4eb4-871d-ddf5c5920845" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:24" }, { "isJwt": false, "opbrowserState": "b3eb4ecc-ee88-41b8-825f-560177534447", "deletable": true, "dn": "jansId=983a5c7d-97fb-4e7f-b356-724a117f3404,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:25", "creationDate": "2022-11-24T09:17:24", "ttl": 0, "sessionState": "b8af03e47d4208b7c96218c4796e5f2c5a951fe320ef0b0bd344fc8bc1f53496.40b98a9b-d59e-441b-8e08-6fdcbcf963cc", "lastUsedAt": "2022-11-24T09:17:25", "permissionGrantedMap": { "permissionGranted": { "700d2167-2cc6-47cc-9729-98854b911a56": true } }, "outsideSid": "729f51a9-75b2-4e20-80cc-b81e1478eb7a", "id": "983a5c7d-97fb-4e7f-b356-724a117f3404", "state": "authenticated", "sessionAttributes": { "opbs": "b3eb4ecc-ee88-41b8-825f-560177534447", "response_type": "id_token", "session_id": "983a5c7d-97fb-4e7f-b356-724a117f3404", "nonce": "1bbe84ef-28c1-40b8-8b08-eacceb166163", "client_id": "700d2167-2cc6-47cc-9729-98854b911a56", "sid": "729f51a9-75b2-4e20-80cc-b81e1478eb7a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1946e893-5560-4e4a-a6d2-76214a34fb3a", "old_session_id": "f9999915-b67f-4f64-a858-ed09aa6d3123" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:24" }, { "isJwt": false, "opbrowserState": "c0b62f63-da52-4c3e-b590-d6867b8a3591", "deletable": true, "dn": "jansId=31fbac26-773c-4e3c-922b-c6a3cd07a185,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:23", "creationDate": "2022-11-24T09:17:23", "ttl": 0, "sessionState": "76b847aab5512fa768b7ea148cac23b14aa3b01465ebe2cbf0c26c02ef3f52fe.7d3240c7-b85e-4392-a6cc-c034b5f0625f", "lastUsedAt": "2022-11-24T09:17:23", "permissionGrantedMap": { "permissionGranted": { "6f884c41-5bb5-4378-aa0b-5bbce4b5ff8d": true } }, "outsideSid": "9aff39a1-0a39-4dca-a93b-bcc4d0a34384", "id": "31fbac26-773c-4e3c-922b-c6a3cd07a185", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "c0b62f63-da52-4c3e-b590-d6867b8a3591" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:23" }, { "isJwt": false, "opbrowserState": "4544723a-b16c-4fe9-b0a0-5a7a20374ad8", "deletable": true, "dn": "jansId=016035ca-8a6b-40fd-9e28-6a714f992b50,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:23", "creationDate": "2022-11-24T09:17:22", "ttl": 0, "sessionState": "33489af9d6db73ca9b4a853529e89d79127ce2e3805f56355d105aaeeff268a6.97f05925-6a56-489d-be47-f0b673f15107", "lastUsedAt": "2022-11-24T09:17:24", "permissionGrantedMap": { "permissionGranted": { "347f7ba5-89cf-45fe-8b93-fdc69a50fe99": true } }, "outsideSid": "f59f9b23-8657-4e98-969d-030a105fa192", "id": "016035ca-8a6b-40fd-9e28-6a714f992b50", "state": "authenticated", "sessionAttributes": { "opbs": "4544723a-b16c-4fe9-b0a0-5a7a20374ad8", "response_type": "id_token", "session_id": "016035ca-8a6b-40fd-9e28-6a714f992b50", "nonce": "f9d665dd-6eba-421a-a958-09008998fa84", "client_id": "347f7ba5-89cf-45fe-8b93-fdc69a50fe99", "sid": "f59f9b23-8657-4e98-969d-030a105fa192", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8d760609-69f6-4258-8389-5e903ae8cdbf", "old_session_id": "1bb9af04-d643-4ae0-9b0c-8cf507443b62" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:22" }, { "isJwt": false, "opbrowserState": "fe76592d-b0af-499e-b19d-a363bc3927a7", "deletable": true, "dn": "jansId=19c7aed7-1285-4cc3-bbc3-e7acff32306a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:22", "creationDate": "2022-11-24T09:17:22", "ttl": 0, "sessionState": "cd72d1b27350d72c69d760884e1836ff759f3d3a18e893337f1db5d326529843.7cc49a5c-4f38-4d49-988b-292ec26af52b", "lastUsedAt": "2022-11-24T09:17:22", "permissionGrantedMap": { "permissionGranted": { "e3b3a474-3d68-40ef-8b6c-240e0caeb158": true } }, "outsideSid": "7e162675-489a-4961-b4f6-037818eac731", "id": "19c7aed7-1285-4cc3-bbc3-e7acff32306a", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "fe76592d-b0af-499e-b19d-a363bc3927a7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:22" }, { "isJwt": false, "opbrowserState": "6588aa80-0dfe-48e6-a69e-6777387c4445", "deletable": true, "dn": "jansId=614c35a2-7aeb-4d02-bb9f-532ad818aa26,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:22", "creationDate": "2022-11-24T09:17:21", "ttl": 0, "sessionState": "3654ccf3a052242d99db0b6ecf61e3e3e6623954a624552310edfc2adc75d86e.806fac6c-9d87-4a49-bbf7-27a2b96403f0", "lastUsedAt": "2022-11-24T09:17:22", "permissionGrantedMap": { "permissionGranted": { "8ccc8d4c-7b3f-4df1-9047-91f79531d39f": true } }, "outsideSid": "7d2f63ff-497e-4793-a5c6-5732e1205cf6", "id": "614c35a2-7aeb-4d02-bb9f-532ad818aa26", "state": "authenticated", "sessionAttributes": { "opbs": "6588aa80-0dfe-48e6-a69e-6777387c4445", "response_type": "token id_token", "session_id": "614c35a2-7aeb-4d02-bb9f-532ad818aa26", "nonce": "aa373c2e-9e17-40af-9f8e-a74136bf82f9", "client_id": "8ccc8d4c-7b3f-4df1-9047-91f79531d39f", "sid": "7d2f63ff-497e-4793-a5c6-5732e1205cf6", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid test", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "181dfc90-0e1a-4ca9-87df-792d858b7c41", "old_session_id": "7d58ec14-5003-4b97-9b4f-70061c9aa5ad" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:21" }, { "isJwt": false, "opbrowserState": "68096e28-f0df-4a08-b0f9-dbe8e0c2ce99", "deletable": true, "dn": "jansId=0352becf-ca50-4bd7-9870-8ccac02631a5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:21", "creationDate": "2022-11-24T09:17:20", "ttl": 0, "sessionState": "b91cc476807a978f6c79e37333a4dabd880d99bf9551053364804338fbb745f0.e385d018-65d0-4438-8ff3-1789a5e2dbc2", "lastUsedAt": "2022-11-24T09:17:21", "permissionGrantedMap": { "permissionGranted": { "723727fa-2db0-45fe-8280-1233dbdde7d3": true } }, "outsideSid": "8f3ba904-5c0a-47bc-bb4c-095a1b5feca1", "id": "0352becf-ca50-4bd7-9870-8ccac02631a5", "state": "authenticated", "sessionAttributes": { "opbs": "68096e28-f0df-4a08-b0f9-dbe8e0c2ce99", "response_type": "id_token", "session_id": "0352becf-ca50-4bd7-9870-8ccac02631a5", "nonce": "dc17300d-d99b-4858-b5ec-e763583ea663", "client_id": "723727fa-2db0-45fe-8280-1233dbdde7d3", "sid": "8f3ba904-5c0a-47bc-bb4c-095a1b5feca1", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "86c81525-a5fd-4741-9da0-02f7c3d08b9b", "old_session_id": "11efa84a-5642-40b2-9aaa-481e8b5083a7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:20" }, { "isJwt": false, "opbrowserState": "251fb330-5edc-4430-a85e-05fd31161ee4", "deletable": true, "dn": "jansId=89eaa48f-0774-4872-a054-9189b95a16cf,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:20", "creationDate": "2022-11-24T09:17:19", "ttl": 0, "sessionState": "cca332cf3d9e6d6c6ef0198b54edf57fd7a858367f77767021ca4dd47db4c48b.5406dc45-284a-48b3-a173-7e3326e77320", "lastUsedAt": "2022-11-24T09:17:22", "permissionGrantedMap": { "permissionGranted": { "c8fa011e-0112-43a5-84fb-6fe12bc67306": true } }, "outsideSid": "e94718a8-45c2-42c4-8518-84fc846fdb7a", "id": "89eaa48f-0774-4872-a054-9189b95a16cf", "state": "authenticated", "sessionAttributes": { "opbs": "251fb330-5edc-4430-a85e-05fd31161ee4", "response_type": "code id_token", "session_id": "89eaa48f-0774-4872-a054-9189b95a16cf", "nonce": "2bacbe01-66e2-49d9-8878-60edbba182a2", "client_id": "c8fa011e-0112-43a5-84fb-6fe12bc67306", "sid": "e94718a8-45c2-42c4-8518-84fc846fdb7a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "4", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "05e6a11b-4fde-47c7-bc57-b34e96f4a865", "old_session_id": "e8c2fc7d-08c9-4389-8ceb-e73c53ae2a72" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:19" }, { "isJwt": false, "opbrowserState": "cde39350-b211-466e-a260-700fc024d43a", "deletable": true, "dn": "jansId=9ad985bb-fcbf-4997-85f7-30a2b370e5d8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:18", "creationDate": "2022-11-24T09:17:17", "ttl": 0, "sessionState": "001252932710826b01e27fdfc16e76af764abd7ec05e0f3506ace7bb3fd768f9.6546ff15-a0bc-4170-85ee-f86aff1f4935", "lastUsedAt": "2022-11-24T09:17:19", "permissionGrantedMap": { "permissionGranted": { "70265470-d4ac-442c-af9a-8ab24f7593a3": true } }, "outsideSid": "755583db-a4ce-44cc-8f5a-8aa84e1be918", "id": "9ad985bb-fcbf-4997-85f7-30a2b370e5d8", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJhdXRoX3RpbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAibWVtYmVyX29mIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfQogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJtZW1iZXJfb2YiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9CiAgICB9CiAgfSwKICAicmVzcG9uc2VfdHlwZSIgOiBbICJ0b2tlbiIsICJpZF90b2tlbiIgXSwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjFkNGQxNGJiLWZlMTUtNDliMS1iZGYzLTZkODJhNWY3ODAwMCIsCiAgIm5vbmNlIiA6ICJiZTIwZjczZi02NmRhLTQ0MzktODQ3MS0yYWYxMDY1MzUwZmQiLAogICJjbGllbnRfaWQiIDogIjcwMjY1NDcwLWQ0YWMtNDQyYy1hZjlhLThhYjI0Zjc1OTNhMyIKfQ.iqUIvhgygYF-BLwz1azDEKr_b3cPNc2IcBtKDOsIobBFvjZo-Ed9lGvHD9eXseQiQLff01db6SKrFAm30fc6QZ60fhA2JCuJv4W5raBL2tBJGCzmNehspGfq03wDBitT_ntO6iU9qIabZDxsLunSkhTnGQ_I8AP3Tfjf8b7GOsynyw4tjTkEyO8bfKidBjqR6YkCteeZea5Lf2Y-9e987Xk7SEPaJE7UZ6Y7CB8AZ6y4DTsUZpK84ZiDOCtZQ5NGuzb5bqrxVFYRBJQrrrF3P-0V0ceLvwjDZ7qnX0pVegN6d3bYogCaWnTXz3TJwLe6dupnb4ZfcCLEYlIe_0xaNQ", "opbs": "cde39350-b211-466e-a260-700fc024d43a", "response_type": "token id_token", "session_id": "9ad985bb-fcbf-4997-85f7-30a2b370e5d8", "nonce": "be20f73f-66da-4439-8471-2af1065350fd", "client_id": "70265470-d4ac-442c-af9a-8ab24f7593a3", "sid": "755583db-a4ce-44cc-8f5a-8aa84e1be918", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1d4d14bb-fe15-49b1-bdf3-6d82a5f78000", "old_session_id": "bd659045-5f0d-41ea-9fa4-c8552567a323" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:17" }, { "isJwt": false, "opbrowserState": "55b2e1af-bdab-4d0f-b806-a6ae1197f7be", "deletable": true, "dn": "jansId=8e77b0e3-bbc4-4bca-82e5-8b32438579fc,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:17", "creationDate": "2022-11-24T09:17:17", "ttl": 0, "sessionState": "4c8e20b6ee87228b0717c8a8b914c048d21263cb1f714b13d24a22f69566c10e.cf762528-4b42-4505-a6dd-ee05940f06d4", "lastUsedAt": "2022-11-24T09:17:17", "permissionGrantedMap": { "permissionGranted": { "b3d3a505-d7d8-4887-ba91-ef5eeb7b55ed": true } }, "outsideSid": "b7863b40-a775-4cd8-8bab-d854856b5462", "id": "8e77b0e3-bbc4-4bca-82e5-8b32438579fc", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "55b2e1af-bdab-4d0f-b806-a6ae1197f7be" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:17" }, { "isJwt": false, "opbrowserState": "61dd6229-f2ed-4ac0-81de-8840739f5539", "deletable": true, "dn": "jansId=46f20c12-811e-4ec2-9cff-3acf2e384b05,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:17", "creationDate": "2022-11-24T09:17:16", "ttl": 0, "sessionState": "022527d8af3f85a17a15d94b942480506ccaade5076e4689b38d44c3606a9dd0.34579d50-aaeb-4f2d-9956-8b3331eb26f0", "lastUsedAt": "2022-11-24T09:17:17", "permissionGrantedMap": { "permissionGranted": { "4f84eb91-d0c4-48ad-9fee-2fa61872b456": true } }, "outsideSid": "ef69f477-cd34-4d03-962b-1a66affbeb92", "id": "46f20c12-811e-4ec2-9cff-3acf2e384b05", "state": "authenticated", "sessionAttributes": { "opbs": "61dd6229-f2ed-4ac0-81de-8840739f5539", "response_type": "code id_token", "session_id": "46f20c12-811e-4ec2-9cff-3acf2e384b05", "nonce": "459abd03-4f49-433e-aae5-ab0d9f26c29d", "client_id": "4f84eb91-d0c4-48ad-9fee-2fa61872b456", "sid": "ef69f477-cd34-4d03-962b-1a66affbeb92", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1d1fe6d7-597e-4b5c-b54a-401983a8967a", "old_session_id": "02b693bf-66af-401c-bc0d-09bf69f6c6d7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:16" }, { "isJwt": false, "opbrowserState": "8b80bbb3-4f73-4c02-b485-e152b4382a5a", "deletable": true, "dn": "jansId=ab88ba47-7331-4d82-aaa8-c8f3dfbba6a2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:16", "creationDate": "2022-11-24T09:17:16", "ttl": 0, "sessionState": "1d0bfb5fcc666619a2453042acdf7b45eafc3a61d4c74ed0c870c622cef0f4b8.4575ef9f-275b-45e0-ad8a-2bb0f68e5240", "lastUsedAt": "2022-11-24T09:17:16", "permissionGrantedMap": { "permissionGranted": { "aee22a44-0292-440a-ac4f-8623859defd6": true } }, "outsideSid": "ea19cccb-db30-441d-82c9-f243cf1caca4", "id": "ab88ba47-7331-4d82-aaa8-c8f3dfbba6a2", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "8b80bbb3-4f73-4c02-b485-e152b4382a5a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:16" }, { "isJwt": false, "opbrowserState": "8db822e7-111e-49b3-bd68-000dc2186f1e", "deletable": true, "dn": "jansId=5fc30249-2ec7-48f4-8097-bcf4e13787da,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:17", "creationDate": "2022-11-24T09:17:16", "ttl": 0, "sessionState": "e40507537e95b19dd73ed74051ce956b5e0c864af1805a20d6988f9dc5b80d12.a0e51d37-aef0-4d2f-8acb-19507da6fe4b", "lastUsedAt": "2022-11-24T09:17:17", "permissionGrantedMap": { "permissionGranted": { "a7f122c1-6bcc-46b9-8354-eff4762f15f9": true } }, "outsideSid": "951e72c4-4d00-4f14-95e1-df2f686b0218", "id": "5fc30249-2ec7-48f4-8097-bcf4e13787da", "state": "authenticated", "sessionAttributes": { "opbs": "8db822e7-111e-49b3-bd68-000dc2186f1e", "response_type": "id_token", "session_id": "5fc30249-2ec7-48f4-8097-bcf4e13787da", "nonce": "6e04597d-5a0e-4d48-af94-6fbe195a8972", "client_id": "a7f122c1-6bcc-46b9-8354-eff4762f15f9", "sid": "951e72c4-4d00-4f14-95e1-df2f686b0218", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8c07369b-3c1b-4be0-b96c-6fb064582519", "old_session_id": "817b56e4-af7d-4fb7-94db-8db55b650489" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:16" }, { "isJwt": false, "opbrowserState": "a89f0850-465c-4caf-a335-58470a735b4e", "deletable": true, "dn": "jansId=15a2684c-4b71-4f96-b3f0-02e76c1a4de4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:16", "creationDate": "2022-11-24T09:17:16", "ttl": 0, "sessionState": "bf97b09bf51ad4d84519d8547336c641f352ac826f8405acf59b0d842486e4ec.b93a1063-a864-40c5-8d8a-191495a1ee18", "lastUsedAt": "2022-11-24T09:17:16", "permissionGrantedMap": { "permissionGranted": { "8f51b1b7-7ac1-4744-b4dc-06166f522299": true } }, "outsideSid": "4ae0fc77-f195-4d08-81aa-304d681331a7", "id": "15a2684c-4b71-4f96-b3f0-02e76c1a4de4", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "a89f0850-465c-4caf-a335-58470a735b4e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:16" }, { "isJwt": false, "opbrowserState": "0313129a-8703-4309-88eb-fd07ea6a0a42", "deletable": true, "dn": "jansId=7e01b842-8095-4f45-b044-ae831794f442,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:16", "creationDate": "2022-11-24T09:17:15", "ttl": 0, "sessionState": "264f31fadcfa52a8f86964b9614e8db949d727eb6cad96d24939f5466746db99.c4eb8338-1ea6-4f7c-88f4-846099060820", "lastUsedAt": "2022-11-24T09:17:17", "permissionGrantedMap": { "permissionGranted": { "c23b4139-5b25-46cf-9682-f29b61cc2f9e": true } }, "outsideSid": "976518b8-1e7c-483a-ac82-b41608880e5f", "id": "7e01b842-8095-4f45-b044-ae831794f442", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJhdXRoX3RpbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAibWVtYmVyX29mIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfQogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJtZW1iZXJfb2YiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9CiAgICB9CiAgfSwKICAicmVzcG9uc2VfdHlwZSIgOiBbICJ0b2tlbiIsICJpZF90b2tlbiIgXSwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogImMwMDEzNDFkLWNiOTItNDZlOS05YzJkLTIwZmE2N2VkMmU1NSIsCiAgIm5vbmNlIiA6ICIzMDA5MmE0MC1kYTY4LTRkMzMtYTY3MS0wNzIyZDYyMjQ0ZjEiLAogICJjbGllbnRfaWQiIDogImMyM2I0MTM5LTViMjUtNDZjZi05NjgyLWYyOWI2MWNjMmY5ZSIKfQ.JDa7RtBRSXdiEyT9Ai-1a0zVLBKOZm3d5RE6xQR-5Tp3qvwngZ4harYbN3Ebsn4-qgkXdfPXSYwAJO0_n6wYaAO5dchD1S3XT7XCtL-PJCK_rXTpouo8Y4-M0WGy2ut9GmhCq75R3J3RCpxWCIHDWmSzLPX7bA5OPyMhSBwqFyrtpBNC-yqTAwgMIvnCGfAhOffyKdEQCoDoqAQaGFIuFKB9aRD60lmDOjAe4S2pr4jOZc9SQ44f_2txXqsqJIeQvfxMTb8EQY08GF1wBATivLPoBbmj1FwV_CQsOJbBalVpHKfjjHlO-hCWj6tm4EuujRVPSNSrUyRe9BwgH1dVbQ", "opbs": "0313129a-8703-4309-88eb-fd07ea6a0a42", "response_type": "token id_token", "session_id": "7e01b842-8095-4f45-b044-ae831794f442", "nonce": "30092a40-da68-4d33-a671-0722d62244f1", "client_id": "c23b4139-5b25-46cf-9682-f29b61cc2f9e", "sid": "976518b8-1e7c-483a-ac82-b41608880e5f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c001341d-cb92-46e9-9c2d-20fa67ed2e55", "old_session_id": "49e0d800-3ebc-46c7-9200-a80b720826a0" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:15" }, { "isJwt": false, "opbrowserState": "ec900688-9524-44df-b1b1-fa4c268574b4", "deletable": true, "dn": "jansId=4abc2cce-ffcc-43a4-8d15-074c03fc3cad,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:14", "creationDate": "2022-11-24T09:17:14", "ttl": 0, "sessionState": "e445fc4b40098e6d326617030f313d5893c1944eb6d7b4a4758df8ad04947e8a.ed0f718e-fda9-40fc-8996-601758320239", "lastUsedAt": "2022-11-24T09:17:14", "permissionGrantedMap": { "permissionGranted": { "62bd92b0-a037-4740-96d3-671b7fc5e0bc": true } }, "outsideSid": "ef599845-1458-45ce-9c07-3050d6717dda", "id": "4abc2cce-ffcc-43a4-8d15-074c03fc3cad", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "ec900688-9524-44df-b1b1-fa4c268574b4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:14" }, { "isJwt": false, "opbrowserState": "01192f49-1880-4d45-8336-f39e1ee28eec", "deletable": true, "dn": "jansId=0d1813b4-a4ab-4b03-bb8a-eb95c42b70b1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:14", "creationDate": "2022-11-24T09:17:14", "ttl": 0, "sessionState": "8c36f437d249d9426217f08697e58042e69f0e727ae6e203ccd6918dea37c6cb.95228024-8e70-4be1-a3ef-9e7e4d7257b4", "lastUsedAt": "2022-11-24T09:17:14", "permissionGrantedMap": { "permissionGranted": { "4f84eb91-d0c4-48ad-9fee-2fa61872b456": true } }, "outsideSid": "32dc1a5f-2978-4105-be65-66d2fb4130bb", "id": "0d1813b4-a4ab-4b03-bb8a-eb95c42b70b1", "state": "authenticated", "sessionAttributes": { "opbs": "01192f49-1880-4d45-8336-f39e1ee28eec", "response_type": "code id_token", "session_id": "0d1813b4-a4ab-4b03-bb8a-eb95c42b70b1", "nonce": "2dc7052b-d005-479c-96af-b44bf267f99c", "client_id": "4f84eb91-d0c4-48ad-9fee-2fa61872b456", "sid": "32dc1a5f-2978-4105-be65-66d2fb4130bb", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b4174cdb-88dc-4ab4-aec9-ae3860c62c3a", "old_session_id": "a7d804b0-8318-4a2f-bcfc-d3012dc0bcde" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:14" }, { "isJwt": false, "opbrowserState": "331b8506-d37c-4bd1-86d8-179603d50fd8", "deletable": true, "dn": "jansId=4062bd37-de8d-483d-bbea-feb459862379,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:14", "creationDate": "2022-11-24T09:17:13", "ttl": 0, "sessionState": "b8bf6c9c5490cf1e93015a89f26d71d78ffb46860766722ee481052b8f968b2f.3c7d06e8-89b4-4964-b161-27e272de63f6", "lastUsedAt": "2022-11-24T09:17:14", "permissionGrantedMap": { "permissionGranted": { "fa44b264-5488-4f1c-bbdb-e795c7e244f7": true } }, "outsideSid": "5414c766-dbb9-47fc-a3e5-00c7baed4287", "id": "4062bd37-de8d-483d-bbea-feb459862379", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJhdXRoX3RpbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAibWVtYmVyX29mIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfQogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJtZW1iZXJfb2YiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9CiAgICB9CiAgfSwKICAicmVzcG9uc2VfdHlwZSIgOiBbICJ0b2tlbiIsICJpZF90b2tlbiIgXSwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjMwZThiNGFkLTNkZDMtNDg2OC1hNGM1LWY4NTVlNWYwN2Q2ZCIsCiAgIm5vbmNlIiA6ICI1NTU5MWVmNy03MDUwLTRhMjAtOGU4NS03ZDU2OTg2YzdkNmUiLAogICJjbGllbnRfaWQiIDogImZhNDRiMjY0LTU0ODgtNGYxYy1iYmRiLWU3OTVjN2UyNDRmNyIKfQ.ZysEgoKQ7YXB_kLJO15Po40xB-Zvps6YJDeddz2sUOfLfv09sCwP6KlXoTv_EQUJq9W9MKIk20KPbA1-rNaTtWFj_TbCDBEasfWpkhWdSOF5p5vKfDx_StuWtMo_ot3vneGTJHkkOGQWGcXNyOs2fzsRvBKVP6RSPX0W9jSbQTFAh1J0tl602eNa3kXJKOkLLqdOTJhFqdX9pKFagho6sSpNRGqXNpUPLbMQNmnvnKc_tNLNNGpczKxTVqbNHtJt2QcrKJjjjChptGIoNxkraMs0fDADym_ODcODAcRNYwjgfsMKC-yTVFVH-Dhlp8hQDyTpD842wkV8R0siUwi7-Q", "opbs": "331b8506-d37c-4bd1-86d8-179603d50fd8", "response_type": "token id_token", "session_id": "4062bd37-de8d-483d-bbea-feb459862379", "nonce": "55591ef7-7050-4a20-8e85-7d56986c7d6e", "client_id": "fa44b264-5488-4f1c-bbdb-e795c7e244f7", "sid": "5414c766-dbb9-47fc-a3e5-00c7baed4287", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "30e8b4ad-3dd3-4868-a4c5-f855e5f07d6d", "old_session_id": "6f5804fe-1f8e-460d-a476-88767fdbd510" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:13" }, { "isJwt": false, "opbrowserState": "0601242b-9171-4174-8130-028e7f3c1916", "deletable": true, "dn": "jansId=6c1f0ad5-1326-48e8-b3ae-4b83ef44133b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:13", "creationDate": "2022-11-24T09:17:13", "ttl": 0, "sessionState": "532e4eceadb715ca7442266a9303777a6d7a65294606baafff0507c9e79096a0.d04f8f73-8622-4e0f-9583-28f4ccf89a47", "lastUsedAt": "2022-11-24T09:17:18", "permissionGrantedMap": { "permissionGranted": { "4f84eb91-d0c4-48ad-9fee-2fa61872b456": true } }, "outsideSid": "66ea9349-eac7-4daa-9126-24696a3b108d", "id": "6c1f0ad5-1326-48e8-b3ae-4b83ef44133b", "state": "authenticated", "sessionAttributes": { "opbs": "0601242b-9171-4174-8130-028e7f3c1916", "response_type": "code id_token", "session_id": "6c1f0ad5-1326-48e8-b3ae-4b83ef44133b", "nonce": "21f28c12-0d35-4f88-9bca-8e88a3c20427", "client_id": "4f84eb91-d0c4-48ad-9fee-2fa61872b456", "sid": "66ea9349-eac7-4daa-9126-24696a3b108d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "2", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "aa3fe2b0-3cac-4330-8ccd-b239d72617ed", "old_session_id": "a5a8e8c8-964c-4992-9a93-5c45b23b5b40" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:13" }, { "isJwt": false, "opbrowserState": "4af97317-28da-42d4-ba73-bd54a4ec68e6", "deletable": true, "dn": "jansId=463b8b98-8422-4a0e-ac2b-fbecd3b493c0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:13", "creationDate": "2022-11-24T09:17:12", "ttl": 0, "sessionState": "3d98a714082d6f41e019e3a6ac36f122e0767515558ae5006be8f801568133ce.a952625e-e017-4360-a649-ec4e1b02a4eb", "lastUsedAt": "2022-11-24T09:17:13", "permissionGrantedMap": { "permissionGranted": { "c0b1f3ef-4f8c-4e5b-b3a1-16d60b6c1d0e": true } }, "outsideSid": "23107170-89d0-4874-9398-85592527ea4c", "id": "463b8b98-8422-4a0e-ac2b-fbecd3b493c0", "state": "authenticated", "sessionAttributes": { "opbs": "4af97317-28da-42d4-ba73-bd54a4ec68e6", "response_type": "token", "session_id": "463b8b98-8422-4a0e-ac2b-fbecd3b493c0", "nonce": "fbed11d7-3adc-4cc7-aaee-2f2b47ce242a", "client_id": "c0b1f3ef-4f8c-4e5b-b3a1-16d60b6c1d0e", "sid": "23107170-89d0-4874-9398-85592527ea4c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "99b25a62-5981-4331-83bc-e97380653b20", "old_session_id": "707dcea2-e468-4e49-b281-c45b8caf8c5a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:12" }, { "isJwt": false, "opbrowserState": "635dc990-8f3f-4054-87c0-b91fccf49937", "deletable": true, "dn": "jansId=4c8172b8-3491-47f4-9795-ff87231aed4d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:12", "creationDate": "2022-11-24T09:17:12", "ttl": 0, "sessionState": "51ec12813ff6fdc6ec40d5d529f9c7af193cff825aa40575a3974c6ac6322030.212a2dba-7acd-4064-afa0-552f14730345", "lastUsedAt": "2022-11-24T09:17:12", "permissionGrantedMap": { "permissionGranted": { "bc415262-c745-4b84-a6a5-a65bb4fc0925": true } }, "outsideSid": "4f5e6b9c-ef42-482b-8ef2-62477db1ea1c", "id": "4c8172b8-3491-47f4-9795-ff87231aed4d", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "635dc990-8f3f-4054-87c0-b91fccf49937" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:12" }, { "isJwt": false, "opbrowserState": "920fc55d-030d-4225-b898-3ce64054f811", "deletable": true, "dn": "jansId=42131e4b-c00a-47a7-aa02-30be8a254cfe,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:12", "creationDate": "2022-11-24T09:17:11", "ttl": 0, "sessionState": "fccbc9be4dcafff5cea171e8eef83f7d78debffcfe780648e73ed0f5dbfaa021.8818e081-c91e-46cd-b6c3-4471f9d8521a", "lastUsedAt": "2022-11-24T09:17:13", "permissionGrantedMap": { "permissionGranted": { "d398bb3c-6875-4b33-a896-5b00555e8e8e": true } }, "outsideSid": "b7042d96-cc6c-4360-914d-d5ee2b26d252", "id": "42131e4b-c00a-47a7-aa02-30be8a254cfe", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJhdXRoX3RpbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAibWVtYmVyX29mIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfQogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJtZW1iZXJfb2YiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9CiAgICB9CiAgfSwKICAicmVzcG9uc2VfdHlwZSIgOiBbICJ0b2tlbiIsICJpZF90b2tlbiIgXSwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjQwYzExZmQxLWVhZTYtNGY2OS04ZmVhLWQyOWU4OGRhYTAyOSIsCiAgIm5vbmNlIiA6ICIyNWMxMDI0Ny1lMDVlLTRlYzYtOTU3ZS1mMmNmMWQ2ZGNmMGUiLAogICJjbGllbnRfaWQiIDogImQzOThiYjNjLTY4NzUtNGIzMy1hODk2LTViMDA1NTVlOGU4ZSIKfQ.YbfsoZ34BKrfX6GNCbyDTZDt7v7yemXb5Ix_KIsHew0XFUm08wAfttM6vaCDgKr4atiy6Hzu3FhX5yB9bd4gAxHsJR9MXlN5XFTzwbz7Gj5NLloZ2CJ-B7hMJk2YYeW3gf7CHqht9ObwJn5nFfN8GgqKoUXKw7EUvmdOwk6pWgGqQhEr9E_5GnYxv06p2Quo0ndQqoCfvtZNpOdjtx-YCrEBtUMtyX0DMzBe682F1nhmoJeDjqz12EF_RHxtB1KXv1bP14x1a75gO3qJX0whujF_FqG72O3YlAxeT_kTOcU5k9MhtnVLannl24iQv0XNeqoQUaCP8krcu_pOLlUUvw", "opbs": "920fc55d-030d-4225-b898-3ce64054f811", "response_type": "token id_token", "session_id": "42131e4b-c00a-47a7-aa02-30be8a254cfe", "nonce": "25c10247-e05e-4ec6-957e-f2cf1d6dcf0e", "client_id": "d398bb3c-6875-4b33-a896-5b00555e8e8e", "sid": "b7042d96-cc6c-4360-914d-d5ee2b26d252", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "40c11fd1-eae6-4f69-8fea-d29e88daa029", "old_session_id": "41cddd37-ec1c-4aeb-96a4-489612c1aae8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:11" }, { "isJwt": false, "opbrowserState": "6b9ef828-9de4-49e0-affa-477055032e64", "deletable": true, "dn": "jansId=049f740a-2ea3-46af-b253-e6b8d4ae64d8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:11", "creationDate": "2022-11-24T09:17:11", "ttl": 0, "sessionState": "8937860376eb08301a5acc64021e5685e9a54377635e64242a9519203386d2a0.8b1ec078-a567-4a40-b760-663114f87d7e", "lastUsedAt": "2022-11-24T09:17:11", "permissionGrantedMap": { }, "outsideSid": "fdb3913c-3084-4cbf-97e0-53f593e25610", "id": "049f740a-2ea3-46af-b253-e6b8d4ae64d8", "state": "authenticated", "sessionAttributes": { "opbs": "6b9ef828-9de4-49e0-affa-477055032e64" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:11" }, { "isJwt": false, "opbrowserState": "0194d4f3-a370-430e-a5cf-584240b7a13d", "deletable": true, "dn": "jansId=0a7aa35e-5c24-48ca-b9aa-3a45a8875eaa,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:11", "creationDate": "2022-11-24T09:17:11", "ttl": 0, "sessionState": "637826d319e2eccb7bcdba529696400d36d16e566d403e54c78aa4bb4cb0c9ba.7069a64d-5219-48af-96f2-2abdaf0513aa", "lastUsedAt": "2022-11-24T09:17:11", "permissionGrantedMap": { "permissionGranted": { "967011f5-f4c8-4fa1-a073-c0f46e68d3fd": true } }, "outsideSid": "5e21702f-72cf-469e-b031-3178982a4456", "id": "0a7aa35e-5c24-48ca-b9aa-3a45a8875eaa", "state": "authenticated", "sessionAttributes": { "opbs": "0194d4f3-a370-430e-a5cf-584240b7a13d", "response_type": "token", "session_id": "0a7aa35e-5c24-48ca-b9aa-3a45a8875eaa", "nonce": "78b9f233-a828-46e6-b266-02e3fb72a477", "client_id": "967011f5-f4c8-4fa1-a073-c0f46e68d3fd", "sid": "5e21702f-72cf-469e-b031-3178982a4456", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "852a982f-4115-41cc-b5a0-0aee144b6ce1", "old_session_id": "0dd7e7db-c36e-40b8-8f18-d4cd159ee3fe" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:11" }, { "isJwt": false, "opbrowserState": "6c200954-df75-4569-80a2-4bae154ba7eb", "deletable": true, "dn": "jansId=81c6f809-39cd-459a-9373-a7d0f9c5570b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:11", "creationDate": "2022-11-24T09:17:11", "ttl": 0, "sessionState": "1643c84a2b65868eb1b30c6223c7883b1cf62ed57920798abcfd44a061a7d2bd.6ee75288-5cea-4795-90ed-7d7bff84d6da", "lastUsedAt": "2022-11-24T09:17:11", "permissionGrantedMap": { }, "outsideSid": "726bb474-73af-4182-923f-e288b52fa548", "id": "81c6f809-39cd-459a-9373-a7d0f9c5570b", "state": "authenticated", "sessionAttributes": { "opbs": "6c200954-df75-4569-80a2-4bae154ba7eb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:11" }, { "isJwt": false, "opbrowserState": "99dc5d75-64fe-47a7-9156-53bd34a977c9", "deletable": true, "dn": "jansId=169d7f81-2aa2-4535-af5b-5246aa555a22,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:10", "creationDate": "2022-11-24T09:17:09", "ttl": 0, "sessionState": "d0ea6d8e62c511c5a0af930e1a026f44b464da6b2f7244e685cc6687416ef1a6.fa257db7-d92e-497b-8382-fcbcdf7f3074", "lastUsedAt": "2022-11-24T09:17:10", "permissionGrantedMap": { "permissionGranted": { "962ad093-f35c-40d4-89d8-6ac0b142ff9c": true } }, "outsideSid": "402709a2-9519-4d70-af96-13a058b6cfb0", "id": "169d7f81-2aa2-4535-af5b-5246aa555a22", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAiY2xpZW50aW5mbyIgXSwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJtYXhfYWdlIiA6IDg2NDAwLAogICAgICAiYWNyIiA6IHsKICAgICAgICAidmFsdWVzIiA6IFsgImJhc2ljIiBdCiAgICAgIH0sCiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAiYXV0aF90aW1lIiA6IG51bGwsCiAgICAgICJuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgIm5pY2tuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJnaXZlbl9uYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJmYW1pbHlfbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAiZW1haWwiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJzdHJlZXRfYWRkcmVzcyIgOiBudWxsLAogICAgICAiY291bnRyeSIgOiBudWxsLAogICAgICAiem9uZWluZm8iIDogbnVsbCwKICAgICAgImVtYWlsX3ZlcmlmaWVkIiA6IG51bGwsCiAgICAgICJsb2NhbGl0eSIgOiBudWxsLAogICAgICAiZ2l2ZW5fbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAibG9jYWxlIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJuYW1lIiA6IG51bGwsCiAgICAgICJuaWNrbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAicmVnaW9uIiA6IG51bGwsCiAgICAgICJwb3N0YWxfY29kZSIgOiBudWxsLAogICAgICAiZmFtaWx5X25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwKICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiMmU5ZTZkMDAtMGI5NC00MzdmLWFjZjctNGVjNWI2OTcwMDIxIiwKICAibm9uY2UiIDogIjcyZTJjNmE1LTliYTUtNDU3Ni1iZGM3LWQxMDMwNzU3NjNlMyIsCiAgImNsaWVudF9pZCIgOiAiOTYyYWQwOTMtZjM1Yy00MGQ0LTg5ZDgtNmFjMGIxNDJmZjljIgp9.cCmaJkUqWvcUJrFJYk2O47dsbn0Ib1uNt9_o4j6-dXXGK9_9y8FQC9otsCyIDA0SX0QwhwevQVnRHBvEWD2ZP3XnkznFzt9V6YkjvCL7F0TAEjT_-2fHkjyCjrh_7P3yxyxlIv1-x796H4E6b-BhrxV2d2r_03g7ABVk1PeGxyWrWEZjNurSLUxhcQMf6m-QC2lu298Cr78hQG--EMkQXvZDd5vdj5-WhO0TQxiRUNsx95038tvvz3KN0d9jBYhZUXqylxNxduqpG5nbiBS1WsepQ5I9cLSzWF4q9EOfscN59CCsrzox2Ay6eE7ny4lD0qbjwrPJzX4LXnEJQ7nBaw", "opbs": "99dc5d75-64fe-47a7-9156-53bd34a977c9", "response_type": "token id_token", "session_id": "169d7f81-2aa2-4535-af5b-5246aa555a22", "nonce": "72e2c6a5-9ba5-4576-bdc7-d103075763e3", "client_id": "962ad093-f35c-40d4-89d8-6ac0b142ff9c", "sid": "402709a2-9519-4d70-af96-13a058b6cfb0", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid clientinfo", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2e9e6d00-0b94-437f-acf7-4ec5b6970021", "old_session_id": "74b86c76-65cb-417a-b4f5-8d47e1be72cf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:09" }, { "isJwt": false, "opbrowserState": "058884b9-c771-440c-831c-8cd4c858da3b", "deletable": true, "dn": "jansId=0b8dfed3-049b-4acb-a97f-9453e97ce389,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:10", "creationDate": "2022-11-24T09:17:09", "ttl": 0, "sessionState": "b6394a336b52a63c9b05848424b75d0b15a304c8aa80ae72f18221b99e569f05.06ba56e5-9114-4ed7-ab4e-e18a001a6952", "lastUsedAt": "2022-11-24T09:17:10", "permissionGrantedMap": { "permissionGranted": { "dad2a795-dcf0-4a71-b7f1-caf176ce6a61": true } }, "outsideSid": "539221d0-bd43-438e-8c17-40e6784719e7", "id": "0b8dfed3-049b-4acb-a97f-9453e97ce389", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJhdXRoX3RpbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAibWVtYmVyX29mIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfQogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJtZW1iZXJfb2YiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9CiAgICB9CiAgfSwKICAicmVzcG9uc2VfdHlwZSIgOiBbICJ0b2tlbiIsICJpZF90b2tlbiIgXSwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjYxMjRhYmE3LTA5Y2YtNGQ1Zi05MjQ3LTMwNmFjZjM3ZmYyMSIsCiAgIm5vbmNlIiA6ICJiNmIzNTY1NC03ZjVkLTQ3OTItOTdmNi1hMGUxZGYxYjY5MTUiLAogICJjbGllbnRfaWQiIDogImRhZDJhNzk1LWRjZjAtNGE3MS1iN2YxLWNhZjE3NmNlNmE2MSIKfQ.U8zplvWOwi88odF__Oh7DaU-bUSmRQblQ2P0uWihf1c7AGVrHI4dYRSQ3EBU7qbar5dADvuwJ4YM5pd9S4SVH9XeW6aCdNYZ9hsS_FA4xcr7pLw309BICdaWKfj5QENV6xRhl5EKDnOvBHXlziAEapbo1BapF_k4_y5o5010YGiohwPGq4l5-zlPg_imCME0UyciKTI3gd4v9mr3SCparox4btcPruhgbhw8zYL5LJWWzGCysQSZwCLDLNHmGPuJx2BtVAae9i4_AuD6Vh9m8qGRE2RyCCxNc80hR6DfGPhwENdDKE0mheIFuGmqga4qjWvDYb5oa1jszdbpxF9evg", "opbs": "058884b9-c771-440c-831c-8cd4c858da3b", "response_type": "token id_token", "session_id": "0b8dfed3-049b-4acb-a97f-9453e97ce389", "nonce": "b6b35654-7f5d-4792-97f6-a0e1df1b6915", "client_id": "dad2a795-dcf0-4a71-b7f1-caf176ce6a61", "sid": "539221d0-bd43-438e-8c17-40e6784719e7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6124aba7-09cf-4d5f-9247-306acf37ff21", "old_session_id": "e14de0f1-fb24-4b84-94a5-63ef7f6ec74d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:09" }, { "isJwt": false, "opbrowserState": "82f6f584-0d8b-4e09-87bc-cc607f1ac347", "deletable": true, "dn": "jansId=8183f989-80f6-480d-b160-2a74595b5fb1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:09", "creationDate": "2022-11-24T09:17:09", "ttl": 0, "sessionState": "b311782d12d0cf400b80130254fe7df737ea99c6ae6826412a47fa59a2eec769.166e3750-0743-4f06-8f61-37404d749052", "lastUsedAt": "2022-11-24T09:17:09", "permissionGrantedMap": { "permissionGranted": { "e27558d1-2bac-4581-b8dc-a7cf40a56474": true } }, "outsideSid": "8c87188b-74fb-48bf-b040-3358d50caab1", "id": "8183f989-80f6-480d-b160-2a74595b5fb1", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "82f6f584-0d8b-4e09-87bc-cc607f1ac347" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:09" }, { "isJwt": false, "opbrowserState": "2a10b1dc-5975-446e-bb5d-453391617673", "deletable": true, "dn": "jansId=9b853e5a-31d1-47a6-a7c3-ddcad3126a00,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:08", "creationDate": "2022-11-24T09:17:08", "ttl": 0, "sessionState": "b460540f35a7736e684bf234ea91a2292209dd2c679d8eb57956a949800665c4.44fec04c-b163-4966-ad26-0ec6beb88785", "lastUsedAt": "2022-11-24T09:17:08", "permissionGrantedMap": { "permissionGranted": { "ffa1bfbb-d277-4c51-b268-d919a9fbc9f3": true } }, "outsideSid": "33b0a078-0eca-4be4-add5-851cd056f28d", "id": "9b853e5a-31d1-47a6-a7c3-ddcad3126a00", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "2a10b1dc-5975-446e-bb5d-453391617673" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:08" }, { "isJwt": false, "opbrowserState": "699a58b6-6def-4c60-9033-1c5f39efb1e7", "deletable": true, "dn": "jansId=71cad81c-a767-4439-b052-e90bb1a1c806,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:08", "creationDate": "2022-11-24T09:17:08", "ttl": 0, "sessionState": "b7e55a15a311568da5f45a4764c8e11e955ea28ce195134d3044d1e1f033dccc.0b6aa2f9-8210-4b5d-bdb1-12ba1bf745ec", "lastUsedAt": "2022-11-24T09:17:08", "permissionGrantedMap": { "permissionGranted": { "4f64a48d-2dad-4229-85d2-cf5a6b1ff178": true } }, "outsideSid": "66736c73-0ea7-429e-a91b-bc5672e7e13b", "id": "71cad81c-a767-4439-b052-e90bb1a1c806", "state": "authenticated", "sessionAttributes": { "opbs": "699a58b6-6def-4c60-9033-1c5f39efb1e7", "response_type": "token", "session_id": "71cad81c-a767-4439-b052-e90bb1a1c806", "nonce": "d0a81ee8-9ed7-4a2d-bddb-bbe54d8759ca", "client_id": "4f64a48d-2dad-4229-85d2-cf5a6b1ff178", "sid": "66736c73-0ea7-429e-a91b-bc5672e7e13b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c26b04b7-3487-427c-a91f-26502edcad55", "old_session_id": "a122b37e-43e4-48db-99d1-b6f1539da521" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:08" }, { "isJwt": false, "opbrowserState": "f048c774-3562-44d5-a255-b3c1b55a720f", "deletable": true, "dn": "jansId=91d01844-a8c3-415e-80da-9c2a6511b079,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:08", "creationDate": "2022-11-24T09:17:07", "ttl": 0, "sessionState": "591113623412231255356a848e91f8cca53d2f4ba63d759c50c5b73e37ddfc6e.ca8d505b-167e-4e6f-bcaf-ca9f2925c266", "lastUsedAt": "2022-11-24T09:17:08", "permissionGrantedMap": { "permissionGranted": { "f63e463b-3b7a-4fd7-9ab1-5b213b17a5be": true } }, "outsideSid": "6af63acd-097a-4488-a616-2b43ef382c55", "id": "91d01844-a8c3-415e-80da-9c2a6511b079", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjI5Y2VmNDA0LTU5ZGItNGFiOS04ZjVjLTZkYThkNTc4ZDEwNyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzI1NiIKfQ.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJhdXRoX3RpbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAibWVtYmVyX29mIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfQogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJtZW1iZXJfb2YiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9CiAgICB9CiAgfSwKICAicmVzcG9uc2VfdHlwZSIgOiBbICJ0b2tlbiIsICJpZF90b2tlbiIgXSwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjIwMjJiZTM1LTU4ZjctNGNlMC05NTZlLTJiYjMzNjNhNzZmOSIsCiAgIm5vbmNlIiA6ICJkYjNiMDg2Yi0wMDM1LTQxNTAtODc4Mi1kNDk1ZDA0NjkzYjEiLAogICJjbGllbnRfaWQiIDogImY2M2U0NjNiLTNiN2EtNGZkNy05YWIxLTViMjEzYjE3YTViZSIKfQ.MFSfsScelJ1MP74J6-XaaGfrA8EIbuGEqXvl2dRGnZzFP0ygG0Ho7rS4ZK0GhznmKRE8s3x9Z-BLWwzlM7H5Hr4Y75kKWw7XLIt--Y-_45Q8LY_m3Qxyny9eZisKL9FBk2wLnZQFKbioI6J1dsgu8bOwukDQn0CQdqrWrKI7-t6cIxLCmWEP-N8_w2iS4D-uMck59NcTfWByiX2T8HMYddtqA6NyY2nlOS-j0pKxfa-r9-khKcecF90xO7q2YInOzNUPhA1hr6PWLHTndioffFWOBpDsC-K6k0IrWuQ38dTEb9xlOhEWeo3rySltLMBpVyxoB37iBs12ZbhNOUZ9ug", "opbs": "f048c774-3562-44d5-a255-b3c1b55a720f", "response_type": "token id_token", "session_id": "91d01844-a8c3-415e-80da-9c2a6511b079", "nonce": "db3b086b-0035-4150-8782-d495d04693b1", "client_id": "f63e463b-3b7a-4fd7-9ab1-5b213b17a5be", "sid": "6af63acd-097a-4488-a616-2b43ef382c55", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2022be35-58f7-4ce0-956e-2bb3363a76f9", "old_session_id": "8bba55db-9066-483d-bad4-6f95b4597b17" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:07" }, { "isJwt": false, "opbrowserState": "cd14ce2b-3f69-4f68-8013-ce7a90b63c77", "deletable": true, "dn": "jansId=aec7a00a-a733-4cd6-badb-b2c31d4e3f69,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:08", "creationDate": "2022-11-24T09:17:07", "ttl": 0, "sessionState": "ac8e808c1232f32d1b521b7384cbd64a8c9a6530801771b6bad8a502a1638590.5b350e4a-e893-4083-afde-f14e60da820b", "lastUsedAt": "2022-11-24T09:17:08", "permissionGrantedMap": { "permissionGranted": { "76395661-1307-4dd1-b343-d3a2df5dcff4": true } }, "outsideSid": "4f12dc5f-f0dc-4b1f-b3ed-07cb38c98153", "id": "aec7a00a-a733-4cd6-badb-b2c31d4e3f69", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAiY2xpZW50aW5mbyIgXSwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJtYXhfYWdlIiA6IDg2NDAwLAogICAgICAiYWNyIiA6IHsKICAgICAgICAidmFsdWVzIiA6IFsgImJhc2ljIiBdCiAgICAgIH0sCiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAiYXV0aF90aW1lIiA6IG51bGwsCiAgICAgICJuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgIm5pY2tuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJnaXZlbl9uYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJmYW1pbHlfbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAiZW1haWwiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJzdHJlZXRfYWRkcmVzcyIgOiBudWxsLAogICAgICAiY291bnRyeSIgOiBudWxsLAogICAgICAiem9uZWluZm8iIDogbnVsbCwKICAgICAgImVtYWlsX3ZlcmlmaWVkIiA6IG51bGwsCiAgICAgICJsb2NhbGl0eSIgOiBudWxsLAogICAgICAiZ2l2ZW5fbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAibG9jYWxlIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJuYW1lIiA6IG51bGwsCiAgICAgICJuaWNrbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAicmVnaW9uIiA6IG51bGwsCiAgICAgICJwb3N0YWxfY29kZSIgOiBudWxsLAogICAgICAiZmFtaWx5X25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwKICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiZWQ2MThhMmUtYTBlYy00MmE5LWI5MGUtZDE3YzE5N2IwNWEwIiwKICAibm9uY2UiIDogIjU3ZTc2YTAwLTBiZDctNGJlNS04NjgzLTFkYjdjMmM2N2ZkOSIsCiAgImNsaWVudF9pZCIgOiAiNzYzOTU2NjEtMTMwNy00ZGQxLWIzNDMtZDNhMmRmNWRjZmY0Igp9.FQ8F_XSkdF8kqqDKP41wudjWXexHMlirxjSqIJdO-8NZFoFT1GlarLJe8nyDTwKAlhTEqXsHYGQgm5wx_Q5AGy61shiOJdGctWQwsx8YGp_U-zfc3SSn_6xn-lUMECauiNOHQJuZxGjzFfvxpLAGwmaMSKtx03y5M4WMxHtuxYl-WMh_3PukBcqgE0buPm8FUYjjhXo0PPdB9b8p5VDwlI6iGIBfwgOMwax1VSfj-OBdmfIbs-py4HOKQzGZ8T0-5scmF1zdxV8xaGAp0gT74BMfPZkbaMxzO1VEsxzy6QD8yDJ2JL7qHU07pmm3k_QJNb594cAGPduV-1tP9MaGQQ", "opbs": "cd14ce2b-3f69-4f68-8013-ce7a90b63c77", "response_type": "token id_token", "session_id": "aec7a00a-a733-4cd6-badb-b2c31d4e3f69", "nonce": "57e76a00-0bd7-4be5-8683-1db7c2c67fd9", "client_id": "76395661-1307-4dd1-b343-d3a2df5dcff4", "sid": "4f12dc5f-f0dc-4b1f-b3ed-07cb38c98153", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid clientinfo", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ed618a2e-a0ec-42a9-b90e-d17c197b05a0", "old_session_id": "b746840b-25bc-4e32-af16-087b91123376" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:07" }, { "isJwt": false, "opbrowserState": "f25610af-5750-4110-b3d1-17521ecac59d", "deletable": true, "dn": "jansId=66e182fc-5b74-44f3-b54f-eadb4ab258d5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:07", "creationDate": "2022-11-24T09:17:07", "ttl": 0, "sessionState": "d6ffd7b848c91eece36f15fb7cb4acf30db7fa32aadb535567210d7ab6a7dcaf.c5db4b8a-8bb4-4110-8582-5c194f912091", "lastUsedAt": "2022-11-24T09:17:07", "permissionGrantedMap": { "permissionGranted": { "a94ae7d5-bddd-47f4-a816-9d27b328aec3": true } }, "outsideSid": "b89488f9-a249-4f79-abff-589df7ff9633", "id": "66e182fc-5b74-44f3-b54f-eadb4ab258d5", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "f25610af-5750-4110-b3d1-17521ecac59d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:07" }, { "isJwt": false, "opbrowserState": "b3cc8080-965b-4b71-b4d9-da0d0c5ceb6d", "deletable": true, "dn": "jansId=224621fa-700d-469d-90fd-031975cb2ec3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:07", "creationDate": "2022-11-24T09:17:06", "ttl": 0, "sessionState": "26cf8f28c59707c4f3b932cd8ebbfd64869ee32c10670691a21387625f0c21cd.cd55d2f8-587e-4d10-99ea-7f546603c92d", "lastUsedAt": "2022-11-24T09:17:07", "permissionGrantedMap": { "permissionGranted": { "abc1c62e-8571-46ae-9355-0c5874db5aa2": true } }, "outsideSid": "a83567a0-e7fe-4635-a824-a90d0bdd9460", "id": "224621fa-700d-469d-90fd-031975cb2ec3", "state": "authenticated", "sessionAttributes": { "opbs": "b3cc8080-965b-4b71-b4d9-da0d0c5ceb6d", "response_type": "code token", "session_id": "224621fa-700d-469d-90fd-031975cb2ec3", "nonce": "9c5cf0aa-ea6f-4187-8731-f3da681f75ee", "client_id": "abc1c62e-8571-46ae-9355-0c5874db5aa2", "sid": "a83567a0-e7fe-4635-a824-a90d0bdd9460", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "69555324-ac89-41dd-87c1-3de1cac34159", "old_session_id": "d0b02de2-2d96-426f-9e72-194a1f2f3aea" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:06" }, { "isJwt": false, "opbrowserState": "cd79f9e8-17a4-430b-88b2-b5b6df24e45c", "deletable": true, "dn": "jansId=848cde8e-af06-484d-8209-378e4064c694,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:07", "creationDate": "2022-11-24T09:17:06", "ttl": 0, "sessionState": "eb240b9a19b822a8e7f01640875506b55d4f6f16a2106a27cf62d6bc835b7b69.7a8b4650-80b9-4c58-80ab-646270f8febf", "lastUsedAt": "2022-11-24T09:17:07", "permissionGrantedMap": { "permissionGranted": { "96330fa2-1f82-40f3-b0b7-af29eb897d8a": true } }, "outsideSid": "c1654b94-dbcd-4bf9-afe4-a5eb5786063b", "id": "848cde8e-af06-484d-8209-378e4064c694", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAibm9uZSIKfQ.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJhdXRoX3RpbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAibWVtYmVyX29mIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfQogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJtZW1iZXJfb2YiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9CiAgICB9CiAgfSwKICAicmVzcG9uc2VfdHlwZSIgOiBbICJ0b2tlbiIsICJpZF90b2tlbiIgXSwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjY4NTg0YmYwLTFjYzktNGJlMC1iZmM1LTZlNTZjNjc5NDc5MCIsCiAgIm5vbmNlIiA6ICIyNDE4NTliZi01YjJjLTQ3MDktOGFkNi02MmFlZTllMDcwM2YiLAogICJjbGllbnRfaWQiIDogIjk2MzMwZmEyLTFmODItNDBmMy1iMGI3LWFmMjllYjg5N2Q4YSIKfQ.", "opbs": "cd79f9e8-17a4-430b-88b2-b5b6df24e45c", "response_type": "token id_token", "session_id": "848cde8e-af06-484d-8209-378e4064c694", "nonce": "241859bf-5b2c-4709-8ad6-62aee9e0703f", "client_id": "96330fa2-1f82-40f3-b0b7-af29eb897d8a", "sid": "c1654b94-dbcd-4bf9-afe4-a5eb5786063b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "68584bf0-1cc9-4be0-bfc5-6e56c6794790", "old_session_id": "7c8dc345-3586-457d-b4dd-bb8b216d2535" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:06" }, { "isJwt": false, "opbrowserState": "8a9fe03f-a795-4060-b274-9d6fc7cd1b4f", "deletable": true, "dn": "jansId=80b6ea22-e05c-4f92-b235-f08dd4c2afef,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:05", "creationDate": "2022-11-24T09:17:05", "ttl": 0, "sessionState": "2a338a1f7119d44647641e2b031ec94170e3de4243bd3c13833e6a882b7955ec.1cebc8ea-6917-453c-a91b-d6e1e13682c3", "lastUsedAt": "2022-11-24T09:17:05", "permissionGrantedMap": { "permissionGranted": { "d761d45b-1fcf-439a-aa7c-22ad19d18465": true } }, "outsideSid": "0749fb74-f8d5-4fa6-8698-557e4468fc72", "id": "80b6ea22-e05c-4f92-b235-f08dd4c2afef", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "8a9fe03f-a795-4060-b274-9d6fc7cd1b4f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:05" }, { "isJwt": false, "opbrowserState": "c0c26b6a-55ed-421b-9d43-ac73f26614e1", "deletable": true, "dn": "jansId=6ac372c5-b934-47e0-979c-9779a1f3d0ee,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:05", "creationDate": "2022-11-24T09:17:05", "ttl": 0, "sessionState": "9d67727ebe2d38a8841baa784ff7d0874d417b54d626a6a832f06ad0c5138f74.bd6ed2ef-e9b8-42a3-9d17-5e26f02ddca0", "lastUsedAt": "2022-11-24T09:17:05", "permissionGrantedMap": { "permissionGranted": { "ba051364-1383-47ea-805a-dd28d47046b4": true } }, "outsideSid": "7e4f8f0b-4ec4-44a7-8205-66c31435c31d", "id": "6ac372c5-b934-47e0-979c-9779a1f3d0ee", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "c0c26b6a-55ed-421b-9d43-ac73f26614e1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:05" }, { "isJwt": false, "opbrowserState": "f45c61b4-6062-4f3e-bbe9-1d06085e80f5", "deletable": true, "dn": "jansId=645a84b1-321c-43db-93a4-7da62d6a5618,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:05", "creationDate": "2022-11-24T09:17:04", "ttl": 0, "sessionState": "617ecf6afadc53ba30ef2e9788aed425d2a41926c9710e6b8d3621e8a75ceb72.e58838ca-9e18-401d-b531-1f9e630c913a", "lastUsedAt": "2022-11-24T09:17:05", "permissionGrantedMap": { "permissionGranted": { "f265a130-6740-4b51-9fde-9338590dba3a": true } }, "outsideSid": "d9bc494c-f36d-475d-84cf-137364aeaeb8", "id": "645a84b1-321c-43db-93a4-7da62d6a5618", "state": "authenticated", "sessionAttributes": { "opbs": "f45c61b4-6062-4f3e-bbe9-1d06085e80f5", "response_type": "token", "session_id": "645a84b1-321c-43db-93a4-7da62d6a5618", "nonce": "828c3867-8561-4387-989d-56dadc0d97bc", "client_id": "f265a130-6740-4b51-9fde-9338590dba3a", "sid": "d9bc494c-f36d-475d-84cf-137364aeaeb8", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "09297030-a2a0-4c1d-b0f8-e05ad320c7fd", "old_session_id": "92144b33-b81a-4ad2-a6be-69df358c9d83" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:04" }, { "isJwt": false, "opbrowserState": "e4ba9990-cfd3-4f44-93f6-dfc7bfc4bc80", "deletable": true, "dn": "jansId=21c06190-ae56-4401-9f2b-a2a4d218d3a5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:05", "creationDate": "2022-11-24T09:17:04", "ttl": 0, "sessionState": "77d6be97d57cdaba8811749e5910fd1dbc1c7c6d6e97e53af639985449b9cc8a.036cb68f-9c0a-4427-9acf-b6a6f0e4e5d8", "lastUsedAt": "2022-11-24T09:17:05", "permissionGrantedMap": { "permissionGranted": { "9e739ed9-1327-46ac-ba14-4d0c8f407413": true } }, "outsideSid": "98b8c238-f103-4cc0-8d07-2cb68f948e3b", "id": "21c06190-ae56-4401-9f2b-a2a4d218d3a5", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFM1MTIiCn0.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJhdXRoX3RpbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAibWVtYmVyX29mIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfQogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJtZW1iZXJfb2YiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9CiAgICB9CiAgfSwKICAicmVzcG9uc2VfdHlwZSIgOiBbICJ0b2tlbiIsICJpZF90b2tlbiIgXSwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogImJiY2JhZTYwLTMwYjktNGMzOC04MmQ1LTRkYjY4NmJlNjhmZSIsCiAgIm5vbmNlIiA6ICI1NTU2N2UwNS0yYTE4LTQ0YWUtODFmNS03YTYxZWEzNTcwMTAiLAogICJjbGllbnRfaWQiIDogIjllNzM5ZWQ5LTEzMjctNDZhYy1iYTE0LTRkMGM4ZjQwNzQxMyIKfQ.GdUlkVBoGkxDACbQRbfzO05Y76IDdSXFgpc-uvokjRo0zakxk9tO3teifXYmDnSIjq9x2e2HaRuQbJVahYs24A", "opbs": "e4ba9990-cfd3-4f44-93f6-dfc7bfc4bc80", "response_type": "token id_token", "session_id": "21c06190-ae56-4401-9f2b-a2a4d218d3a5", "nonce": "55567e05-2a18-44ae-81f5-7a61ea357010", "client_id": "9e739ed9-1327-46ac-ba14-4d0c8f407413", "sid": "98b8c238-f103-4cc0-8d07-2cb68f948e3b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "bbcbae60-30b9-4c38-82d5-4db686be68fe", "old_session_id": "82334a93-a029-4a58-8826-85527e9f7873" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:04" }, { "isJwt": false, "opbrowserState": "52de43b8-335c-4bb7-aa67-244518edf5a1", "deletable": true, "dn": "jansId=1d06ce7d-ac44-4b5c-a022-0a0b3e1a1ac3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:05", "creationDate": "2022-11-24T09:17:04", "ttl": 0, "sessionState": "c71e12f5609c0b09a48a89c7bd570719f5ed89141ccfcb17d0b2c0f98e964c6f.cc8b7106-bd1b-4fc2-a975-1276eea9d35e", "lastUsedAt": "2022-11-24T09:17:05", "permissionGrantedMap": { "permissionGranted": { "e4452f86-1378-48b5-bba7-41dac7fb61d1": true } }, "outsideSid": "b96b596d-d007-4bfd-8ad7-4aac30372414", "id": "1d06ce7d-ac44-4b5c-a022-0a0b3e1a1ac3", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAibm9uZSIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAiY2xpZW50aW5mbyIgXSwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJtYXhfYWdlIiA6IDg2NDAwLAogICAgICAiYWNyIiA6IHsKICAgICAgICAidmFsdWVzIiA6IFsgImJhc2ljIiBdCiAgICAgIH0sCiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAiYXV0aF90aW1lIiA6IG51bGwsCiAgICAgICJuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgIm5pY2tuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJnaXZlbl9uYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJmYW1pbHlfbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAiZW1haWwiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJzdHJlZXRfYWRkcmVzcyIgOiBudWxsLAogICAgICAiY291bnRyeSIgOiBudWxsLAogICAgICAiem9uZWluZm8iIDogbnVsbCwKICAgICAgImVtYWlsX3ZlcmlmaWVkIiA6IG51bGwsCiAgICAgICJsb2NhbGl0eSIgOiBudWxsLAogICAgICAiZ2l2ZW5fbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAibG9jYWxlIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJuYW1lIiA6IG51bGwsCiAgICAgICJuaWNrbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAicmVnaW9uIiA6IG51bGwsCiAgICAgICJwb3N0YWxfY29kZSIgOiBudWxsLAogICAgICAiZmFtaWx5X25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwKICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiMjBmNjY2MTYtODZiMS00NzBhLTkzN2YtNjAyOTA2YjhjNDdlIiwKICAibm9uY2UiIDogIjU5YmRiZTZkLTc4OWItNGViNS04NzliLTljZWM5MTU5MTkyZCIsCiAgImNsaWVudF9pZCIgOiAiZTQ0NTJmODYtMTM3OC00OGI1LWJiYTctNDFkYWM3ZmI2MWQxIgp9.", "opbs": "52de43b8-335c-4bb7-aa67-244518edf5a1", "response_type": "token id_token", "session_id": "1d06ce7d-ac44-4b5c-a022-0a0b3e1a1ac3", "nonce": "59bdbe6d-789b-4eb5-879b-9cec9159192d", "client_id": "e4452f86-1378-48b5-bba7-41dac7fb61d1", "sid": "b96b596d-d007-4bfd-8ad7-4aac30372414", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid clientinfo", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "20f66616-86b1-470a-937f-602906b8c47e", "old_session_id": "f1da3027-10e3-49bf-b74c-f4febdb817bf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:04" }, { "isJwt": false, "opbrowserState": "dea5bc2f-6ae0-402a-b4fa-e94c414d1e87", "deletable": true, "dn": "jansId=4aa0a05b-6263-440d-a5e5-1d4a26e8b610,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:04", "creationDate": "2022-11-24T09:17:04", "ttl": 0, "sessionState": "669295ed03fc55075759dc34eb884dc45ad6f6c178283f8e8df4fda4af0789e1.6fd4a499-2d62-458b-9869-c61e0ff44cb4", "lastUsedAt": "2022-11-24T09:17:04", "permissionGrantedMap": { "permissionGranted": { "aaa87604-d765-49df-8036-e51dbeaaa785": true } }, "outsideSid": "77ad7881-43f4-4e78-9b2d-feaf5dee6509", "id": "4aa0a05b-6263-440d-a5e5-1d4a26e8b610", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "dea5bc2f-6ae0-402a-b4fa-e94c414d1e87" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:04" }, { "isJwt": false, "opbrowserState": "61fbff88-cedf-4344-a74e-3406ca656612", "deletable": true, "dn": "jansId=a7cda39a-db95-45b5-b0b9-3e9e1fbe3546,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:03", "creationDate": "2022-11-24T09:17:03", "ttl": 0, "sessionState": "3a77569f4594c7fd51b6cbabb40ac48766d6daa0127dbbb2bef3385fbf967cf6.7862d03f-2255-4f4f-9e31-b7a362c16225", "lastUsedAt": "2022-11-24T09:17:03", "permissionGrantedMap": { "permissionGranted": { "d216c088-75bd-4967-b8b8-36d8fcd29cf1": true } }, "outsideSid": "cf4f27c8-ba1a-45ab-ad1e-9aecc02554ed", "id": "a7cda39a-db95-45b5-b0b9-3e9e1fbe3546", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "61fbff88-cedf-4344-a74e-3406ca656612" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:03" }, { "isJwt": false, "opbrowserState": "d09b728d-6d85-4496-a63a-d6afec6411c7", "deletable": true, "dn": "jansId=229e57a9-607a-469f-a410-ddaac310988d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:03", "creationDate": "2022-11-24T09:17:03", "ttl": 0, "sessionState": "32e122fef4df7e664251eaf5b4775f1ff3cb90f50f44cff82c933b37223bf45b.e773dc23-0003-427b-a365-ee674fc3b067", "lastUsedAt": "2022-11-24T09:17:03", "permissionGrantedMap": { "permissionGranted": { "28173f21-e966-4f6b-81aa-f7ceadb8ae50": true } }, "outsideSid": "b810bae0-a92a-41c8-8b09-a6f76b48936f", "id": "229e57a9-607a-469f-a410-ddaac310988d", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "d09b728d-6d85-4496-a63a-d6afec6411c7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:03" }, { "isJwt": false, "opbrowserState": "908e4325-3083-46f4-855f-61068607959d", "deletable": true, "dn": "jansId=a865c7dd-0385-43c3-8233-a8228816a2b3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:03", "creationDate": "2022-11-24T09:17:02", "ttl": 0, "sessionState": "5b9dbe04c078a95041bf2a0f04a197722fb7c4c50e2f0bb6931445a10a4829eb.e12f99f3-ea1f-4925-84fd-415389e27d80", "lastUsedAt": "2022-11-24T09:17:04", "permissionGrantedMap": { "permissionGranted": { "e448ea2b-e810-437c-b402-2cc4d1324db4": true } }, "outsideSid": "a235560b-84aa-4e58-a4ae-e5c416566141", "id": "a865c7dd-0385-43c3-8233-a8228816a2b3", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFMzODQiCn0.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJhdXRoX3RpbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAibWVtYmVyX29mIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfQogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJtZW1iZXJfb2YiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9CiAgICB9CiAgfSwKICAicmVzcG9uc2VfdHlwZSIgOiBbICJ0b2tlbiIsICJpZF90b2tlbiIgXSwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjYzNzIzMDcxLTQxZTktNDljNi04YTFjLTEyNGE5ZDZlODEzMiIsCiAgIm5vbmNlIiA6ICIzYmM3ZDY1My00MjEyLTRjZTUtOTI0Mi01ZTk0YzQyMjA0NzEiLAogICJjbGllbnRfaWQiIDogImU0NDhlYTJiLWU4MTAtNDM3Yy1iNDAyLTJjYzRkMTMyNGRiNCIKfQ.OKHvQ58lT1OGoU-XUtJcj9tRNYvMXBIN_jkLIM9r-bmezkQVXpI1C9s9pqOvljm_", "opbs": "908e4325-3083-46f4-855f-61068607959d", "response_type": "token id_token", "session_id": "a865c7dd-0385-43c3-8233-a8228816a2b3", "nonce": "3bc7d653-4212-4ce5-9242-5e94c4220471", "client_id": "e448ea2b-e810-437c-b402-2cc4d1324db4", "sid": "a235560b-84aa-4e58-a4ae-e5c416566141", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "63723071-41e9-49c6-8a1c-124a9d6e8132", "old_session_id": "137932d3-c87a-4599-9dfe-5ac4c27e8fac" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:02" }, { "isJwt": false, "opbrowserState": "398e8dc2-0b14-4cc3-a9bb-43a53edd9a7b", "deletable": true, "dn": "jansId=3a4a5ea7-80e7-4060-b3a4-78a161b780e1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:03", "creationDate": "2022-11-24T09:17:02", "ttl": 0, "sessionState": "2dce2cb6d3d11fb3339c0a679eea4bfd7fe775863ea4c4bf1bb6b9c732c425ed.db280dd2-a6f3-459d-9b93-48e694f3872a", "lastUsedAt": "2022-11-24T09:17:03", "permissionGrantedMap": { "permissionGranted": { "85faf989-1093-4240-9149-49b74b863674": true } }, "outsideSid": "e0b630a9-badd-4d1c-90f7-4e3929767b14", "id": "3a4a5ea7-80e7-4060-b3a4-78a161b780e1", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAibm9uZSIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAiY2xpZW50aW5mbyIgXSwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJtYXhfYWdlIiA6IDg2NDAwLAogICAgICAiYWNyIiA6IHsKICAgICAgICAidmFsdWVzIiA6IFsgImJhc2ljIiBdCiAgICAgIH0sCiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAiYXV0aF90aW1lIiA6IG51bGwsCiAgICAgICJuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgIm5pY2tuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJnaXZlbl9uYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJmYW1pbHlfbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAiZW1haWwiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJzdHJlZXRfYWRkcmVzcyIgOiBudWxsLAogICAgICAiY291bnRyeSIgOiBudWxsLAogICAgICAiem9uZWluZm8iIDogbnVsbCwKICAgICAgImVtYWlsX3ZlcmlmaWVkIiA6IG51bGwsCiAgICAgICJsb2NhbGl0eSIgOiBudWxsLAogICAgICAiZ2l2ZW5fbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAibG9jYWxlIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJuYW1lIiA6IG51bGwsCiAgICAgICJuaWNrbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAicmVnaW9uIiA6IG51bGwsCiAgICAgICJwb3N0YWxfY29kZSIgOiBudWxsLAogICAgICAiZmFtaWx5X25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwKICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiMWFmOTZjNGUtZmI4Yi00ZTFiLWIzNjQtNDgzMjY2MzExYzViIiwKICAibm9uY2UiIDogIjMzZTc3ZWI4LTljZWYtNDc5Yi1iN2YzLTcwNTE1ZTQ0ZmM0ZiIsCiAgImNsaWVudF9pZCIgOiAiODVmYWY5ODktMTA5My00MjQwLTkxNDktNDliNzRiODYzNjc0Igp9.", "opbs": "398e8dc2-0b14-4cc3-a9bb-43a53edd9a7b", "response_type": "token id_token", "session_id": "3a4a5ea7-80e7-4060-b3a4-78a161b780e1", "nonce": "33e77eb8-9cef-479b-b7f3-70515e44fc4f", "client_id": "85faf989-1093-4240-9149-49b74b863674", "sid": "e0b630a9-badd-4d1c-90f7-4e3929767b14", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid clientinfo", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1af96c4e-fb8b-4e1b-b364-483266311c5b", "old_session_id": "4eeba6a8-dd3f-4f25-afac-242642b24bf8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:02" }, { "isJwt": false, "opbrowserState": "c1a2cc04-42f5-4454-b834-a803f02cc54d", "deletable": true, "dn": "jansId=400af342-9f2f-43e0-b329-16664e569360,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:02", "creationDate": "2022-11-24T09:17:01", "ttl": 0, "sessionState": "5111cc9522c2686ff5d1add0cacd3712132be7bd48c44ef876171dd16b7a24e6.9c82d58f-5e9e-47d9-a2a3-0e64181465bd", "lastUsedAt": "2022-11-24T09:17:02", "permissionGrantedMap": { "permissionGranted": { "54d0f47a-85ba-43dc-9ed4-25ee7bb16be7": true } }, "outsideSid": "34315cfc-78de-4457-bc31-99e1fb1182f6", "id": "400af342-9f2f-43e0-b329-16664e569360", "state": "authenticated", "sessionAttributes": { "opbs": "c1a2cc04-42f5-4454-b834-a803f02cc54d", "response_type": "code", "session_id": "400af342-9f2f-43e0-b329-16664e569360", "nonce": "8d6a6fae-c5f4-4643-a631-43f7c5f8d546", "client_id": "54d0f47a-85ba-43dc-9ed4-25ee7bb16be7", "sid": "34315cfc-78de-4457-bc31-99e1fb1182f6", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "bbf4aea4-d090-4def-82ba-82e0798ea64d", "old_session_id": "0ddbd51c-1ad2-4af0-9337-099971e13772" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:01" }, { "isJwt": false, "opbrowserState": "23d664c0-e91e-44cf-a62d-adc1e8788aef", "deletable": true, "dn": "jansId=6f2a54c3-4caf-44df-b9f9-e80f09ece8af,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:01", "creationDate": "2022-11-24T09:17:01", "ttl": 0, "sessionState": "20529eb30280bff5b9061fafabef80e3c85bcb744073e3eae258a9bb51bbfa48.1e9ba155-cf08-44bc-88a9-ebd678e316df", "lastUsedAt": "2022-11-24T09:17:01", "permissionGrantedMap": { "permissionGranted": { "49483bd0-3b8b-4f26-9816-fd637beaae2d": true } }, "outsideSid": "0bbe6fe6-12ea-4caf-bbb4-42b5b4d67858", "id": "6f2a54c3-4caf-44df-b9f9-e80f09ece8af", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFM1MTIiCn0.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAiY2xpZW50aW5mbyIgXSwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJtYXhfYWdlIiA6IDg2NDAwLAogICAgICAiYWNyIiA6IHsKICAgICAgICAidmFsdWVzIiA6IFsgImJhc2ljIiBdCiAgICAgIH0sCiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAiYXV0aF90aW1lIiA6IG51bGwsCiAgICAgICJuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgIm5pY2tuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJnaXZlbl9uYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJmYW1pbHlfbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAiZW1haWwiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJzdHJlZXRfYWRkcmVzcyIgOiBudWxsLAogICAgICAiY291bnRyeSIgOiBudWxsLAogICAgICAiem9uZWluZm8iIDogbnVsbCwKICAgICAgImVtYWlsX3ZlcmlmaWVkIiA6IG51bGwsCiAgICAgICJsb2NhbGl0eSIgOiBudWxsLAogICAgICAiZ2l2ZW5fbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAibG9jYWxlIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJuYW1lIiA6IG51bGwsCiAgICAgICJuaWNrbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAicmVnaW9uIiA6IG51bGwsCiAgICAgICJwb3N0YWxfY29kZSIgOiBudWxsLAogICAgICAiZmFtaWx5X25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwKICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiODQ3NDQwNjgtMjU0Ni00MGNmLWFmMTAtNWFlYWEzM2QwZDRhIiwKICAibm9uY2UiIDogIjUyYWVkZjI2LTA0N2ItNDljYy05N2VmLTI2MzkzYWNkYTZjNiIsCiAgImNsaWVudF9pZCIgOiAiNDk0ODNiZDAtM2I4Yi00ZjI2LTk4MTYtZmQ2MzdiZWFhZTJkIgp9.dm7uNOjOCm15wqkl1HtyQog98_v0c7Rnt-j1Sqcf_z3H5GZUehL1XUZWi-d0-kQdwudyAmZYKY-Kl4-U-2_O3w", "opbs": "23d664c0-e91e-44cf-a62d-adc1e8788aef", "response_type": "token id_token", "session_id": "6f2a54c3-4caf-44df-b9f9-e80f09ece8af", "nonce": "52aedf26-047b-49cc-97ef-26393acda6c6", "client_id": "49483bd0-3b8b-4f26-9816-fd637beaae2d", "sid": "0bbe6fe6-12ea-4caf-bbb4-42b5b4d67858", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid clientinfo", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "84744068-2546-40cf-af10-5aeaa33d0d4a", "old_session_id": "091f295e-0d4a-4a30-bdd4-d1a7cbe7138d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:01" }, { "isJwt": false, "opbrowserState": "9df85470-835d-4bd2-9f63-6c71cdd1c722", "deletable": true, "dn": "jansId=1b66b0b8-f417-4f6f-b3bb-9d519cf2bdfa,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:01", "creationDate": "2022-11-24T09:17:00", "ttl": 0, "sessionState": "7123ae038efc7768e1dbe76ec78074a53c0f4d8b740dc3bb32138287049a71b1.0ebb1c90-8cfa-4b61-970f-2a223079ae7d", "lastUsedAt": "2022-11-24T09:17:01", "permissionGrantedMap": { "permissionGranted": { "6d5f9f3d-c506-45d5-b9aa-db34b7c13eae": true } }, "outsideSid": "ea99b09f-4e9d-4173-833c-ea80aed0fde8", "id": "1b66b0b8-f417-4f6f-b3bb-9d519cf2bdfa", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFMyNTYiCn0.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJtYXhfYWdlIiA6IDg2NDAwCiAgICB9LAogICAgInVzZXJpbmZvIiA6IHsKICAgICAgIm5hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9CiAgICB9CiAgfSwKICAicmVzcG9uc2VfdHlwZSIgOiAidG9rZW4iLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiMDM0MjdhYjgtYjZkZi00ZGIwLWJjYWQtMDdmNzU3MTcyYTk3IiwKICAibm9uY2UiIDogImZmNWEyOWFkLTc4NTItNGJlZS1hZDRhLTc1NmE1MjY1YmEwOCIsCiAgImNsaWVudF9pZCIgOiAiNmQ1ZjlmM2QtYzUwNi00NWQ1LWI5YWEtZGIzNGI3YzEzZWFlIgp9.q1svskBV6wpm7X3bxgdtVdwsGw6gAHpQjMXlBuyVPC4", "opbs": "9df85470-835d-4bd2-9f63-6c71cdd1c722", "response_type": "token", "session_id": "1b66b0b8-f417-4f6f-b3bb-9d519cf2bdfa", "nonce": "ff5a29ad-7852-4bee-ad4a-756a5265ba08", "client_id": "6d5f9f3d-c506-45d5-b9aa-db34b7c13eae", "sid": "ea99b09f-4e9d-4173-833c-ea80aed0fde8", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "03427ab8-b6df-4db0-bcad-07f757172a97", "old_session_id": "4a4bd300-0ee6-466a-9c4f-baccbaaba3b7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:00" }, { "isJwt": false, "opbrowserState": "5e1d9641-9aad-4dc8-886b-45270cc32d3b", "deletable": true, "dn": "jansId=ac35abbf-70e3-4ed5-8b68-8f12c8f171a6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:01", "creationDate": "2022-11-24T09:17:00", "ttl": 0, "sessionState": "d98c57764095af505dd83e2eb1f88d013d7395d24d1e69f7d4d08868d03f8999.48ab99f4-fcb0-44d9-8bda-be1afc5026e4", "lastUsedAt": "2022-11-24T09:17:01", "permissionGrantedMap": { "permissionGranted": { "966bec5c-f6e4-4e8e-bc20-b373e7238037": true } }, "outsideSid": "9444e14c-6c30-4c8f-a7cf-9ae3584ad268", "id": "ac35abbf-70e3-4ed5-8b68-8f12c8f171a6", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFMyNTYiCn0.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJhdXRoX3RpbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAibWVtYmVyX29mIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfQogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJtZW1iZXJfb2YiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9CiAgICB9CiAgfSwKICAicmVzcG9uc2VfdHlwZSIgOiBbICJ0b2tlbiIsICJpZF90b2tlbiIgXSwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjM5ZjJmNjllLWE1YWMtNGNjMy05MDU4LTI4ZDRiYjBiYmM5YiIsCiAgIm5vbmNlIiA6ICIwNDk2NzBlNy03ZDkxLTQ4NTQtOGUyMy02Nzg4ZDg0ZTQ2YzgiLAogICJjbGllbnRfaWQiIDogIjk2NmJlYzVjLWY2ZTQtNGU4ZS1iYzIwLWIzNzNlNzIzODAzNyIKfQ.fr2kTnQczYuk532V9h2FTFHZURvYI5Bcxk0QBwuUvXs", "opbs": "5e1d9641-9aad-4dc8-886b-45270cc32d3b", "response_type": "token id_token", "session_id": "ac35abbf-70e3-4ed5-8b68-8f12c8f171a6", "nonce": "049670e7-7d91-4854-8e23-6788d84e46c8", "client_id": "966bec5c-f6e4-4e8e-bc20-b373e7238037", "sid": "9444e14c-6c30-4c8f-a7cf-9ae3584ad268", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "39f2f69e-a5ac-4cc3-9058-28d4bb0bbc9b", "old_session_id": "e31a7d7a-a373-4357-84b2-87df77cafe07" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:17:00" }, { "isJwt": false, "opbrowserState": "b5615843-df12-4507-8dc7-73cfd9ccae74", "deletable": true, "dn": "jansId=b5131fc6-6917-4be1-a0c8-602ad325b3c8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:00", "creationDate": "2022-11-24T09:16:59", "ttl": 0, "sessionState": "ad55d07fcd36694501c1733b427bc744165c6d83b480052bfc02fe292d562905.ddc3c1ea-da42-4dc9-b3e3-62602478eadc", "lastUsedAt": "2022-11-24T09:17:00", "permissionGrantedMap": { "permissionGranted": { "4b0ccab4-9b8a-4d0e-a6a3-5e551d5c21c9": true } }, "outsideSid": "b7309cf0-c17b-4367-858f-110c0dde0760", "id": "b5131fc6-6917-4be1-a0c8-602ad325b3c8", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFM1MTIiCn0.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJzdWIiIDogewogICAgICAgICJ2YWx1ZSIgOiAidGVzdF91c2VyIgogICAgICB9CiAgICB9LAogICAgInVzZXJpbmZvIiA6IHsgfQogIH0sCiAgInJlc3BvbnNlX3R5cGUiIDogInRva2VuIiwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjhlNDE0MjA3LWIzYWMtNDYwOS1hNmMyLWFiYjU5MTViOTcxZiIsCiAgIm5vbmNlIiA6ICJhM2Y3YWQ1Zi03NThlLTRlNDMtYjgzZS00NmIwNWUyYWUzODIiLAogICJjbGllbnRfaWQiIDogIjRiMGNjYWI0LTliOGEtNGQwZS1hNmEzLTVlNTUxZDVjMjFjOSIKfQ.FV8koCJj1nuUBzvDI1evl0rUvntIdHA2OkXaVHvW-6Osavz4WfSnfISZ4dnQuxUgNzE1BAFwKFaeH1cwMYQs8A", "opbs": "b5615843-df12-4507-8dc7-73cfd9ccae74", "response_type": "token", "session_id": "b5131fc6-6917-4be1-a0c8-602ad325b3c8", "nonce": "a3f7ad5f-758e-4e43-b83e-46b05e2ae382", "client_id": "4b0ccab4-9b8a-4d0e-a6a3-5e551d5c21c9", "sid": "b7309cf0-c17b-4367-858f-110c0dde0760", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8e414207-b3ac-4609-a6c2-abb5915b971f", "old_session_id": "2f83c457-224d-4c7b-9290-1be4c0bf7677" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:59" }, { "isJwt": false, "opbrowserState": "58327ef5-bd3c-4b3e-8268-1136e3ed1c75", "deletable": true, "dn": "jansId=63e9dff1-3a77-4bec-889d-c96e560c2c3a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:17:00", "creationDate": "2022-11-24T09:16:59", "ttl": 0, "sessionState": "5bf0543aa40ecd542faae0d9b32283440843e758552fc70767b349c1d34d4d9d.cd115507-6971-4f2c-9e93-6f4ce81563ed", "lastUsedAt": "2022-11-24T09:17:00", "permissionGrantedMap": { "permissionGranted": { "894a252d-0e52-4423-b5d8-5d1dea6b4712": true } }, "outsideSid": "dc7752db-4d8e-4a45-aa11-0b597da7b586", "id": "63e9dff1-3a77-4bec-889d-c96e560c2c3a", "state": "authenticated", "sessionAttributes": { "opbs": "58327ef5-bd3c-4b3e-8268-1136e3ed1c75", "response_type": "code", "session_id": "63e9dff1-3a77-4bec-889d-c96e560c2c3a", "nonce": "4e74cfb5-fae5-4dc8-81c1-8fdea169fe4c", "client_id": "894a252d-0e52-4423-b5d8-5d1dea6b4712", "sid": "dc7752db-4d8e-4a45-aa11-0b597da7b586", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "49aee8c5-8708-4a6e-ada9-bfef7fcb32b0", "old_session_id": "be7ef91b-11c8-4f35-a266-a68786696223" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:59" }, { "isJwt": false, "opbrowserState": "1ba03c38-e0f8-4dcb-8654-93c96c4accd8", "deletable": true, "dn": "jansId=4ef2e1d2-95de-48fb-82f1-a6d64ef43bc5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:59", "creationDate": "2022-11-24T09:16:59", "ttl": 0, "sessionState": "9ce4890cc9defa596f2a1e7fda17f7d4d998e111b2f5257823e194678f710622.41055806-e899-4ed4-a0a8-b81fd0547735", "lastUsedAt": "2022-11-24T09:17:00", "permissionGrantedMap": { "permissionGranted": { "53f891c7-0259-47ee-8cbf-edaa66d4b307": true } }, "outsideSid": "6950bcaa-6a29-49e6-8909-9c4e8432211e", "id": "4ef2e1d2-95de-48fb-82f1-a6d64ef43bc5", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJhdXRoX3RpbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAibWVtYmVyX29mIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfQogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJtZW1iZXJfb2YiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9CiAgICB9CiAgfSwKICAicmVzcG9uc2VfdHlwZSIgOiBbICJ0b2tlbiIsICJpZF90b2tlbiIgXSwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjljOWRhNGUyLTYyMTEtNDI1YS05ZGFiLWM5OWU3YjMwM2Y0NyIsCiAgIm5vbmNlIiA6ICIyY2NiYjFiZC00YmM0LTQ1N2MtOGNjYi1jMTZkMWRiZWIwN2QiLAogICJjbGllbnRfaWQiIDogIjUzZjg5MWM3LTAyNTktNDdlZS04Y2JmLWVkYWE2NmQ0YjMwNyIKfQ.ATeHI1vkI5BTHy0sSya8s5j64g7h3z_hovLSdtKjlP6dAnV5regLvERnorlN4ju8FKHChFRRtaoeGtBqcnCcJpEOAZ6gr1cTNVsSiBJhxMEJ-xEmuf-WdJF5wE9bCVb9nDfwscwy7xjrOfGcfS1QrVln93SjIcpCauTnPOaF1d-nJI_V", "opbs": "1ba03c38-e0f8-4dcb-8654-93c96c4accd8", "response_type": "token id_token", "session_id": "4ef2e1d2-95de-48fb-82f1-a6d64ef43bc5", "nonce": "2ccbb1bd-4bc4-457c-8ccb-c16d1dbeb07d", "client_id": "53f891c7-0259-47ee-8cbf-edaa66d4b307", "sid": "6950bcaa-6a29-49e6-8909-9c4e8432211e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9c9da4e2-6211-425a-9dab-c99e7b303f47", "old_session_id": "00f6e988-8a6c-4e27-9d98-5fb07f5f56e7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:59" }, { "isJwt": false, "opbrowserState": "3453a74e-ad38-4964-8470-0d150d0c1182", "deletable": true, "dn": "jansId=635d994d-606c-4f8e-8818-b4ce495774e9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:57", "creationDate": "2022-11-24T09:16:56", "ttl": 0, "sessionState": "32cc53f440428819311d79fdd7c84e29973168c5513a4ec044c9364c72ba8adf.0b44c944-e003-4644-8d8c-5e8f28a4b3b1", "lastUsedAt": "2022-11-24T09:16:57", "permissionGrantedMap": { "permissionGranted": { "2df28b28-60ea-4117-b79d-e15b87674a6d": true } }, "outsideSid": "85460b09-5ec9-43f9-9ccd-3313f5a308c3", "id": "635d994d-606c-4f8e-8818-b4ce495774e9", "state": "authenticated", "sessionAttributes": { "opbs": "3453a74e-ad38-4964-8470-0d150d0c1182", "response_type": "code", "session_id": "635d994d-606c-4f8e-8818-b4ce495774e9", "nonce": "c94c2321-463d-429d-8eae-c484215dd5e7", "client_id": "2df28b28-60ea-4117-b79d-e15b87674a6d", "sid": "85460b09-5ec9-43f9-9ccd-3313f5a308c3", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "31e79a9a-a1ae-4ca2-af83-ff54682ff6f0", "old_session_id": "20744d48-33c4-4922-bbb1-7a1428362eda" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:56" }, { "isJwt": false, "opbrowserState": "10a61093-3ccd-45bb-89dd-fc1a58fe4f5d", "deletable": true, "dn": "jansId=8cc194ab-637a-4eff-add5-d6794f58d917,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:57", "creationDate": "2022-11-24T09:16:56", "ttl": 0, "sessionState": "5a5b7959f21bc22a8eb59ebe2d6c446c6668473168bce799a4370ad206dabfb1.9cf25c11-ec02-4c48-b4b6-d7d7ed4b9c76", "lastUsedAt": "2022-11-24T09:16:57", "permissionGrantedMap": { "permissionGranted": { "82d3de20-abf3-44c9-bf3a-78dc48fc3140": true } }, "outsideSid": "ae3f4fdd-13c3-478a-ae4f-dbfb392d709a", "id": "8cc194ab-637a-4eff-add5-d6794f58d917", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAiY2xpZW50aW5mbyIgXSwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJtYXhfYWdlIiA6IDg2NDAwLAogICAgICAiYWNyIiA6IHsKICAgICAgICAidmFsdWVzIiA6IFsgImJhc2ljIiBdCiAgICAgIH0sCiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAiYXV0aF90aW1lIiA6IG51bGwsCiAgICAgICJuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgIm5pY2tuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJnaXZlbl9uYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJmYW1pbHlfbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAiZW1haWwiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJzdHJlZXRfYWRkcmVzcyIgOiBudWxsLAogICAgICAiY291bnRyeSIgOiBudWxsLAogICAgICAiem9uZWluZm8iIDogbnVsbCwKICAgICAgImVtYWlsX3ZlcmlmaWVkIiA6IG51bGwsCiAgICAgICJsb2NhbGl0eSIgOiBudWxsLAogICAgICAiZ2l2ZW5fbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAibG9jYWxlIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJuYW1lIiA6IG51bGwsCiAgICAgICJuaWNrbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAicmVnaW9uIiA6IG51bGwsCiAgICAgICJwb3N0YWxfY29kZSIgOiBudWxsLAogICAgICAiZmFtaWx5X25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwKICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiODBlZDhmNGEtNmJjYi00MTIzLTlkMzMtYzBlYWNkZDAxYjFhIiwKICAibm9uY2UiIDogImU0ODJmYjY5LWUyYTMtNGRiYi1hOWVkLWVlYjcwYjYwODJmNSIsCiAgImNsaWVudF9pZCIgOiAiODJkM2RlMjAtYWJmMy00NGM5LWJmM2EtNzhkYzQ4ZmMzMTQwIgp9.AL-izJSPxnP9L8yg8NL-Y1p5ObZ3T-E-giC87eO7ggLtChxVFynpLQpblbdCa9vtYv9oIR2eirI1J2Wk4hG59ESOAazAHhSjUx2VXQpb6rN0gcon5YpvEbNMM2CJNzNwFovEEikQ2TNYAx9SQ3ust1-4lyZ0qc2JD2msPjp56gmS9Hi2", "opbs": "10a61093-3ccd-45bb-89dd-fc1a58fe4f5d", "response_type": "token id_token", "session_id": "8cc194ab-637a-4eff-add5-d6794f58d917", "nonce": "e482fb69-e2a3-4dbb-a9ed-eeb70b6082f5", "client_id": "82d3de20-abf3-44c9-bf3a-78dc48fc3140", "sid": "ae3f4fdd-13c3-478a-ae4f-dbfb392d709a", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid clientinfo", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "80ed8f4a-6bcb-4123-9d33-c0eacdd01b1a", "old_session_id": "234a4fed-1665-4c0d-a48b-eaadbbacd2c8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:56" }, { "isJwt": false, "opbrowserState": "4fd36dec-fe90-41da-8264-238dbf28b41f", "deletable": true, "dn": "jansId=05867e5b-4879-4c1c-a832-7a9cbfc76641,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:57", "creationDate": "2022-11-24T09:16:56", "ttl": 0, "sessionState": "02538a4d7333a7352ca86eb915d27a2dd84b17c8cf5723fcddf758ae8d39b9d7.bf543ae9-cb52-43f6-bfd3-eabdade9e445", "lastUsedAt": "2022-11-24T09:16:57", "permissionGrantedMap": { "permissionGranted": { "eb712ce7-6828-4bef-b85d-4a31d049f9b5": true } }, "outsideSid": "37ebdf65-1fa8-4e7d-b2c7-bf63a9b430c8", "id": "05867e5b-4879-4c1c-a832-7a9cbfc76641", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiAib3BlbmlkIiwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJhdXRoX3RpbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAibWVtYmVyX29mIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfQogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJtZW1iZXJfb2YiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9CiAgICB9CiAgfSwKICAicmVzcG9uc2VfdHlwZSIgOiBbICJ0b2tlbiIsICJpZF90b2tlbiIgXSwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjFjYWQ4OTc2LTMwZTEtNGE3NS1hYjA4LWY4NjNiN2QxOWY3OCIsCiAgIm5vbmNlIiA6ICIyYTNmN2RkNS00ZTE2LTQxOTktYmJlZC1kM2U0MjJhMWU3MzMiLAogICJjbGllbnRfaWQiIDogImViNzEyY2U3LTY4MjgtNGJlZi1iODVkLTRhMzFkMDQ5ZjliNSIKfQ.Iur2LJLQ6hhQ2_9Sso1r9qe8KWhwZbAdVyUhdLHU2JftpwgMAcDHJpCcc0gEZ_VvVQnK5jvi-U32_Bp3NWTh_A", "opbs": "4fd36dec-fe90-41da-8264-238dbf28b41f", "response_type": "token id_token", "session_id": "05867e5b-4879-4c1c-a832-7a9cbfc76641", "nonce": "2a3f7dd5-4e16-4199-bbed-d3e422a1e733", "client_id": "eb712ce7-6828-4bef-b85d-4a31d049f9b5", "sid": "37ebdf65-1fa8-4e7d-b2c7-bf63a9b430c8", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1cad8976-30e1-4a75-ab08-f863b7d19f78", "old_session_id": "89cca0b2-01ae-4d14-aa8d-2d54ca3df8fa" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:56" }, { "isJwt": false, "opbrowserState": "ddd9127e-92fb-41cb-a3d3-dafcdb6b8918", "deletable": true, "dn": "jansId=1e10c382-f63c-47e2-8802-d67e0f7fbf9f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:56", "creationDate": "2022-11-24T09:16:56", "ttl": 0, "sessionState": "4d364745f05a72249cf80bd8f877a4c1921fba9021bd5daa290f300413f5ee6b.21f59f13-9dfe-4100-9807-d48f6063f5fe", "lastUsedAt": "2022-11-24T09:16:56", "permissionGrantedMap": { "permissionGranted": { "2e390986-ecbf-49a8-9ef3-83ea192b0bad": true } }, "outsideSid": "0dff7d94-dfa4-4594-9649-e2289564cbba", "id": "1e10c382-f63c-47e2-8802-d67e0f7fbf9f", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFMyNTYiCn0.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhY3IiIDogewogICAgICAgICJ2YWx1ZXMiIDogWyAiYmFzaWMiIF0KICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiBudWxsCiAgICB9LAogICAgInVzZXJpbmZvIiA6IHsKICAgICAgImVtYWlsX3ZlcmlmaWVkIiA6IG51bGwsCiAgICAgICJuYW1lIiA6IG51bGwsCiAgICAgICJuaWNrbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAiZW1haWwiIDogbnVsbCwKICAgICAgInBpY3R1cmUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfQogICAgfQogIH0sCiAgInJlc3BvbnNlX3R5cGUiIDogWyAidG9rZW4iLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIxMGRmM2MzYS1lNjI1LTRiNDQtYjAzZi0xNTkxM2JiMjE4Y2EiLAogICJub25jZSIgOiAiNzg0NThiOTUtYjQ2OS00NTUxLTg2YjQtZjUyODkzMTgwZDdiIiwKICAiY2xpZW50X2lkIiA6ICIyZTM5MDk4Ni1lY2JmLTQ5YTgtOWVmMy04M2VhMTkyYjBiYWQiCn0.T2VWpVWqeLo7EWnNzrY2UvdyJ6nHAA9bYWn4CeCiZDI", "opbs": "ddd9127e-92fb-41cb-a3d3-dafcdb6b8918", "response_type": "token id_token", "session_id": "1e10c382-f63c-47e2-8802-d67e0f7fbf9f", "nonce": "78458b95-b469-4551-86b4-f52893180d7b", "client_id": "2e390986-ecbf-49a8-9ef3-83ea192b0bad", "sid": "0dff7d94-dfa4-4594-9649-e2289564cbba", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "10df3c3a-e625-4b44-b03f-15913bb218ca", "old_session_id": "03ce01bc-4617-4588-84c4-08596b779a0e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:56" }, { "isJwt": false, "opbrowserState": "55752c22-5906-4ba5-8dd0-f0ad4947f12e", "deletable": true, "dn": "jansId=88e07457-3bf4-4129-94df-349aabbc1716,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:56", "creationDate": "2022-11-24T09:16:55", "ttl": 0, "sessionState": "b8b43aa4a2452b4a9009840de773e796c1a992eaa11af92d08014636b4efd8d4.8df4980a-25eb-4cd6-9b23-ab3271f0e91c", "lastUsedAt": "2022-11-24T09:16:56", "permissionGrantedMap": { "permissionGranted": { "52e4dd19-ef06-4315-9428-fb9adc82afa6": true } }, "outsideSid": "bef57ca6-cda1-42b9-963a-20a9cd85788e", "id": "88e07457-3bf4-4129-94df-349aabbc1716", "state": "authenticated", "sessionAttributes": { "opbs": "55752c22-5906-4ba5-8dd0-f0ad4947f12e", "response_type": "code token", "session_id": "88e07457-3bf4-4129-94df-349aabbc1716", "nonce": "38600183-56b5-407f-8afd-7c72f60ba55b", "client_id": "52e4dd19-ef06-4315-9428-fb9adc82afa6", "sid": "bef57ca6-cda1-42b9-963a-20a9cd85788e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4f40b407-f5ff-487e-86df-d5a00e77459a", "old_session_id": "b7010df2-b38c-4b6a-95d8-ec5899702d94" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:55" }, { "isJwt": false, "opbrowserState": "feb3d46e-8934-4916-af54-14c843cffcd6", "deletable": true, "dn": "jansId=a27b8037-366c-48a9-b00a-6d4c2fae230a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:54", "creationDate": "2022-11-24T09:16:54", "ttl": 0, "sessionState": "5ffe586e1613863105a9672d858a48065926b0a6fcca67fdb08943a4b303aff1.283737c4-3bd7-4b36-8606-5cfa86479d1f", "lastUsedAt": "2022-11-24T09:16:54", "permissionGrantedMap": { }, "outsideSid": "f792a897-c76e-44a5-a06f-cb63448d2334", "id": "a27b8037-366c-48a9-b00a-6d4c2fae230a", "state": "authenticated", "sessionAttributes": { "opbs": "feb3d46e-8934-4916-af54-14c843cffcd6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:54" }, { "isJwt": false, "opbrowserState": "855b5af2-a9f8-48cf-a8fe-0186e065d9c6", "deletable": true, "dn": "jansId=6f17e980-8e12-4c19-b268-0d7d177da184,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:55", "creationDate": "2022-11-24T09:16:54", "ttl": 0, "sessionState": "c1f58a7e6a0af26df1917384cfd331a2e42e68f859b65821277b7ef0b2e64595.1a15f477-fa92-4d44-906b-3a213f58bcf1", "lastUsedAt": "2022-11-24T09:16:56", "permissionGrantedMap": { "permissionGranted": { "c8c24e4f-c4d0-40a0-b42e-4874194a4578": true } }, "outsideSid": "e6cd99d4-077f-4a1c-8bfe-61c8eca6e506", "id": "6f17e980-8e12-4c19-b268-0d7d177da184", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiI0Y2E3NjMyMi1mY2ZkLTQyNWQtOTc0ZS0zMjBlNTZmM2U2YjFfZW5jX3JzYS1vYWVwIiwidHlwIjoiand0IiwiZW5jIjoiQTI1NkdDTSIsImFsZyI6IlJTQS1PQUVQIn0.JLES9pq7ziR9LvDZcFcLfhQ2lg4yLA-88J3_gct0r8XreEvAQ_9emj-V2LQPWbndUnWlzEeiDvOJSQ7C9mwmAMA-FmAkrVo8mAClMdUpV0Kk5wCYTg-TYXKvB1fH5QmW6BWOvnlC4RfCVtdRI-iE7jiur6oj2qazHtPgIdnRTkvylxJqbNDTSCdSXfbW8eWwSTaRf7OIzj-XxL64IhLuy9uuvG-lP9KX-2ShUITAqnU5G-kQ7OpJ9lmf6HXeX8pEJJQQXu5iLzUe7wK3MNspSd-GvjUpBVIBoMQqOyBS1rg-mFZKTjznnuEu_zrioKh4p_Zq8qVTdANmF1KOYlSc6g.0P3N68llB9qo9CyE.wQj7wd-nhWa8ufVfM_rh4GFjL8qfV2nvOuhF7TpHxGkPqP0U_lMrr3nAa4_nOB0tbfuBUhvVmdi-s8KnfhHPYI2L7aim7TebzW4t2u6dEKb_3r7b1fOox9x12QzI0795kdXJifgtwR0gXPXfQWktphvc7sr4Ca3vlJo1F1JZzxN6aaJe-I9tbO5JqWucMu5s3Uuoki5O3yux020NlNSntE7xBXvu29AdINgs8COYhlv2GXlWLoOTP43RY8yQgL-5Gw03VkFovXiGEriFtxZGtjRvd_v0eEM2OU-WaHOqFO4NqASV4hjY5VXrIvTrDU8AuluYfW2LE6urhBNNJyHtbxMUs_cVLoN4YRiSk5oPiHU8N7hgZ9QoJZ98R3JEqWdkN9EQzhgNSHJ79WUBbW2p4wfH5NnltisiJT12yNP1DBw0k74TlBKDcj1UqwgVZPDpzq-9vq28jn0UG4hi01Ts288kEwXU9dRsurWzp28eHYz036G_6WeEWx2cwLe51IzlEh4zY1HdCyEhjMHlrHF4nrAGLW50EDUSxjs7LnvNWWTZX70KY4y4m8Czwo7SLJgaB6SHsGbLKl7zcXRxWN2uPsSC1WBWk5hlbX1J0u0s6rU-70_2CdamvrznLLD1-sUjO4hAFHKjwGAgcg6YeqE0RCNlTsqGS5eM41L9vs-FCSrle_cpDZyfGxK9tN_sroGUFA9Sfa8XTTKGohwffRhklY8c.1IKDhJCUstVgvPyai7zWSw", "opbs": "855b5af2-a9f8-48cf-a8fe-0186e065d9c6", "response_type": "token id_token", "session_id": "6f17e980-8e12-4c19-b268-0d7d177da184", "nonce": "fe05fecc-ad26-44df-b7b2-fc7d62b64c3f", "client_id": "c8c24e4f-c4d0-40a0-b42e-4874194a4578", "sid": "e6cd99d4-077f-4a1c-8bfe-61c8eca6e506", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "eeb84bb8-1eec-4d1b-9265-f6d900c7ba3c", "old_session_id": "67a8a5a6-4989-4554-be3c-b211f544025c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:54" }, { "isJwt": false, "opbrowserState": "f8f1aa2a-fe28-4cc8-b9e0-6bc7e034f59b", "deletable": true, "dn": "jansId=67ae4915-6d1f-4b18-8d2f-819fcf205ab9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:54", "creationDate": "2022-11-24T09:16:54", "ttl": 0, "sessionState": "d897361347e61d4342be4eeeb567ffbf742616457c31766560f6d2434402f0cb.c9920045-5b76-49ad-8626-4bf3c9080ab6", "lastUsedAt": "2022-11-24T09:16:54", "permissionGrantedMap": { }, "outsideSid": "762c295b-72e6-4f39-9f2e-d87f9e47144a", "id": "67ae4915-6d1f-4b18-8d2f-819fcf205ab9", "state": "authenticated", "sessionAttributes": { "opbs": "f8f1aa2a-fe28-4cc8-b9e0-6bc7e034f59b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:54" }, { "isJwt": false, "opbrowserState": "66a012bc-b6f3-432b-b0f2-d3240c4040ec", "deletable": true, "dn": "jansId=1df3a5b8-1f1a-4df3-9ca2-3b6a59f37080,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:54", "creationDate": "2022-11-24T09:16:54", "ttl": 0, "sessionState": "a8317952507cf925f5d735bef673c303bc6f86905c0a7d0b67541ce43e6d8b38.0a6d90b2-73f7-47d3-b045-45a4edcbbe13", "lastUsedAt": "2022-11-24T09:16:54", "permissionGrantedMap": { "permissionGranted": { "b30e6d00-93fc-4e4f-b333-b20a60c4876b": true } }, "outsideSid": "15e82c64-48ea-4556-92ec-1a3d3a4bc8f2", "id": "1df3a5b8-1f1a-4df3-9ca2-3b6a59f37080", "state": "authenticated", "sessionAttributes": { "opbs": "66a012bc-b6f3-432b-b0f2-d3240c4040ec", "response_type": "code token", "session_id": "1df3a5b8-1f1a-4df3-9ca2-3b6a59f37080", "nonce": "95630cd9-f666-4138-be68-8ca0ba644934", "client_id": "b30e6d00-93fc-4e4f-b333-b20a60c4876b", "sid": "15e82c64-48ea-4556-92ec-1a3d3a4bc8f2", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8968467a-2ea7-4090-923c-35eb281ae6c9", "old_session_id": "344719af-b6a3-46ff-b353-83581d24b740" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:54" }, { "isJwt": false, "opbrowserState": "04263b08-a684-452a-8a14-ed886d850cdc", "deletable": true, "dn": "jansId=1507db8a-cb4a-4192-9c32-a7b3592b2c1b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:53", "creationDate": "2022-11-24T09:16:53", "ttl": 0, "sessionState": "03a7e66778e666f5504f328d2256b288c0f7f872ae7fc69c83bac2b5aa974cc5.42d1f71e-125e-4975-9299-58073fa4b9e6", "lastUsedAt": "2022-11-24T09:16:53", "permissionGrantedMap": { "permissionGranted": { "1ad7cd5f-8fec-4745-9209-5310cc70ef4e": true } }, "outsideSid": "1f920374-4249-4f52-9d08-f57768992b02", "id": "1507db8a-cb4a-4192-9c32-a7b3592b2c1b", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAiY2xpZW50aW5mbyIgXSwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJtYXhfYWdlIiA6IDg2NDAwLAogICAgICAiYWNyIiA6IHsKICAgICAgICAidmFsdWVzIiA6IFsgImJhc2ljIiBdCiAgICAgIH0sCiAgICAgICJlbWFpbF92ZXJpZmllZCIgOiBudWxsLAogICAgICAiYXV0aF90aW1lIiA6IG51bGwsCiAgICAgICJuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgIm5pY2tuYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJnaXZlbl9uYW1lIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJmYW1pbHlfbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAiZW1haWwiIDogbnVsbAogICAgfSwKICAgICJ1c2VyaW5mbyIgOiB7CiAgICAgICJzdHJlZXRfYWRkcmVzcyIgOiBudWxsLAogICAgICAiY291bnRyeSIgOiBudWxsLAogICAgICAiem9uZWluZm8iIDogbnVsbCwKICAgICAgImVtYWlsX3ZlcmlmaWVkIiA6IG51bGwsCiAgICAgICJsb2NhbGl0eSIgOiBudWxsLAogICAgICAiZ2l2ZW5fbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAibG9jYWxlIiA6IG51bGwsCiAgICAgICJwaWN0dXJlIiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IGZhbHNlCiAgICAgIH0sCiAgICAgICJuYW1lIiA6IG51bGwsCiAgICAgICJuaWNrbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAicmVnaW9uIiA6IG51bGwsCiAgICAgICJwb3N0YWxfY29kZSIgOiBudWxsLAogICAgICAiZmFtaWx5X25hbWUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfSwKICAgICAgImVtYWlsIiA6IG51bGwKICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiN2FhYzY2MDAtZTQ1Ni00ZDg4LTk5ZWYtNjIyODg5MTc5NmZmIiwKICAibm9uY2UiIDogIjYxYThhMzA0LTllNTEtNDNlYi1hMjY5LTVlN2NiZWI1ZWNjYiIsCiAgImNsaWVudF9pZCIgOiAiMWFkN2NkNWYtOGZlYy00NzQ1LTkyMDktNTMxMGNjNzBlZjRlIgp9.qBPtXOsNFqgla0rZCPG7JduU6D5dKLd8hwiOxhAzYVTyvTYjBi9Fegs1mEUnU4MI7XLhj-OFzbhFWLPHOfO8HQ", "opbs": "04263b08-a684-452a-8a14-ed886d850cdc", "response_type": "token id_token", "session_id": "1507db8a-cb4a-4192-9c32-a7b3592b2c1b", "nonce": "61a8a304-9e51-43eb-a269-5e7cbeb5eccb", "client_id": "1ad7cd5f-8fec-4745-9209-5310cc70ef4e", "sid": "1f920374-4249-4f52-9d08-f57768992b02", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid clientinfo", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7aac6600-e456-4d88-99ef-6228891796ff", "old_session_id": "8c58db08-1f06-4993-bedc-57cda827e4d0" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:53" }, { "isJwt": false, "opbrowserState": "13ccd055-3408-4074-91ab-5bc251c4d843", "deletable": true, "dn": "jansId=5f879ee1-0831-4591-b3c8-4f080e4d2b2c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:52", "creationDate": "2022-11-24T09:16:52", "ttl": 0, "sessionState": "fbc5336b5026b41c6c63c942c211106fac4173fe1d8333bf8f9c5580cd0a37ba.73875695-2314-4bd4-b56f-ae18e694c44b", "lastUsedAt": "2022-11-24T09:16:52", "permissionGrantedMap": { "permissionGranted": { "efd1f943-b979-4451-a4f1-bfaeb80af55f": true } }, "outsideSid": "df9c4018-8a3e-453c-9005-2e80fe728d7e", "id": "5f879ee1-0831-4591-b3c8-4f080e4d2b2c", "state": "authenticated", "sessionAttributes": { "opbs": "13ccd055-3408-4074-91ab-5bc251c4d843", "response_type": "token id_token", "session_id": "5f879ee1-0831-4591-b3c8-4f080e4d2b2c", "nonce": "a6972227-7fb3-4487-8422-2707efe8cabe", "client_id": "efd1f943-b979-4451-a4f1-bfaeb80af55f", "sid": "df9c4018-8a3e-453c-9005-2e80fe728d7e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgImFkZGl0aW9uYWxfY2xhaW1zIiA6IHsKICAgICJtb3JlIiA6IFsgImZvbyIsICJiYXIiIF0sCiAgICAibGFzdF9uYW1lIiA6ICJSb2phcyIsCiAgICAiZmlyc3RfbmFtZSIgOiAiSmF2aWVyIiwKICAgICJhZ2UiIDogMzQKICB9LAogICJyZnAiIDogIjc5MGU0ZjUzLTMwMWUtNDQwZS1iOWRkLWZmYTFhYzM5MjJkYiIsCiAgImp0aSIgOiAiM2VjNDFhZGYtYmIyYS00N2E3LWFlZWQtMGU0NmU3NWVmNTFjIgp9.f_zpZYUMkdNYvAoshCCZInWSfJTz4-HD6lNYDj-FoPIZcp4Ei3AanuKNrLOqtxgbk4qlOkR4JrRHlmdxNG1kYy8o4DdG6aCrcgiCovYnglBLlpStoMJAd6kGYvLhXiZheYItPnnID4g80Cv83y70DxF9mdCtdVDK2fcywaZHi1Z0KfKuoGe-B_8U2cVt4pITHN0u56jTGC4-hAC-HWEH_dwW81ky-UDZRwgwx0IAPgBFmoXi8M3YRWk6MBEqB6qcDYMiDQCaM0868j1lxJWiwLVvqPoCsDZbUwvnkyFYBqShZkTUpRDmCXNpkv9D9l8L9ZqheXubz6t7LKoD1c-lIg", "old_session_id": "65f0772a-6144-4c0b-ae69-5039575b2636" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:52" }, { "isJwt": false, "opbrowserState": "853177d0-4e8e-4c31-9c27-a95ec7f923fd", "deletable": true, "dn": "jansId=be38e329-1697-4802-b2b0-aa83ad699eca,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:52", "creationDate": "2022-11-24T09:16:51", "ttl": 0, "sessionState": "b18d0c15bfb8d2cd7a1fb51b87054fb2926fab953d132f8d46125a257cce76c0.5617ecc0-1b98-406a-a007-68e13cea7c10", "lastUsedAt": "2022-11-24T09:16:52", "permissionGrantedMap": { "permissionGranted": { "e728d225-ed7f-452a-96a0-d85da0aadcf9": true } }, "outsideSid": "c425ae8c-d726-4911-990b-2fe0cdc9f38c", "id": "be38e329-1697-4802-b2b0-aa83ad699eca", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.dR2Sy62ml5HGCSB_usP2yJLgXI0Psv9_OwgRx08Wh62VIOHO5YhVmbAPxbcLi_xW9OKtpZ-6Jj6KojqBKOxMIPoxECm5wXrB0IqjBfOHkc8Hg4oSnWOwxgyGrmw8EpI6aXa07MFqiFRdaVxMxtaL4-4aNyv6MuOg-piErq1-hf0sLh48VoxqgnDlWxljlLeZC3a-o0jIOMv2E7_zD7jQaR1-f3NOnVsjnyjMMc3tC0Sa95vdw9g6BwyRdToliRhz0SGnvnTrSZxWgS12-yJoOhk4-5nG292Nf7nq1_FsdAQKgOok5_8_baGyPPcs3Zv98efTrhMqKepXD3wemgYoWA.zQtWM6dYiahPxRJ6gZyNfw.I53DcHQj3c7qd0Q6XUBErYJm3tYGQJNI3v0RBs_NzVCzqU0akaG19Hyb4lYBbgGKidaWeEsJ6dhClk6NUPbrHYY-XLDwbYUNMkEN9jE8bAIAepC1kbXEPXprfdRaJyiojnU0oME40begqON-_E_e5Zi8oLQGe7L0eW2AKvG9NIYRlbyZFDS9XZPzSuM3lvWInNU9VOvfbOOTZMN1dFBh09X4TGdO4nl-2EF5xzpL4AMKODeQ0zTQZyriXEGF4aC-90Fsm-coiz9Lvcq2_etCI-jhZLKp3gDXshT5LOZM5r-y3WcgFE4l8aK4hK7dinGzEBVe87KziO4VR6ZBu9byW6o8eU_Ji0awHyyWqogW0xYcbvL25488yOEiJyu6Vcn3s_x2DR0iWG08-Y7L3HPZQ6wMusJBoGprvObE92BOLRXcydjyh3vvYGWatj90mbSZHNvnT799hUifCTGd55kwet5seGv51I2A5IjfoySuxODDn3cVJuyxDDNle32lnD6TzbO17FiFqnl2IAGoPYJMEXjsLa0RZjUhpMHIrxYEFQwG4eaInv19dQXcXxODiwgoEjT4MGMOxnTjZPE6PAijZpBsRWqP_bcuiN3QJXl1KPdSwGdpypAoV6AkmSH0apZ1tzJa8On-xbSRjzdUECKachrp2NClTXF58YfuuOckLC7z8kZ6bscpcs5rRwG0oAYjX4vcQA3NN1q-1v_-DsNddBbB1iMjVYh2offizdvn4gc.j_HQiTCmM810fbvdR0IYPuqjIN6UPFXdPfOtT58rDKE", "opbs": "853177d0-4e8e-4c31-9c27-a95ec7f923fd", "response_type": "token id_token", "session_id": "be38e329-1697-4802-b2b0-aa83ad699eca", "nonce": "652776c1-d0af-407b-b9c5-52c4ca5cc526", "client_id": "e728d225-ed7f-452a-96a0-d85da0aadcf9", "sid": "c425ae8c-d726-4911-990b-2fe0cdc9f38c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3edfef1f-ac22-4343-9912-9f531a53a0ea", "old_session_id": "e17e84e4-266c-45c6-8319-142e6ade968e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:51" }, { "isJwt": false, "opbrowserState": "d5f1226f-9b7f-4d80-ba8a-983bd6274a74", "deletable": true, "dn": "jansId=afc3bde6-a09c-477d-8dad-07e515b2c212,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:50", "creationDate": "2022-11-24T09:16:50", "ttl": 0, "sessionState": "bdef25043085ed1c2751d47d22bcb593490ed4547e3c10a552a67d63b602f43b.515cc318-368d-4c95-b7cd-d9f8981316a4", "lastUsedAt": "2022-11-24T09:16:50", "permissionGrantedMap": { "permissionGranted": { "912fce78-13ce-4099-883d-9d545706891c": true } }, "outsideSid": "399d51b1-f106-4d69-8cad-a493bb324d87", "id": "afc3bde6-a09c-477d-8dad-07e515b2c212", "state": "authenticated", "sessionAttributes": { "opbs": "d5f1226f-9b7f-4d80-ba8a-983bd6274a74", "response_type": "code token", "session_id": "afc3bde6-a09c-477d-8dad-07e515b2c212", "nonce": "db4b5c22-4bde-4e6f-b8eb-e2210fb97efb", "client_id": "912fce78-13ce-4099-883d-9d545706891c", "sid": "399d51b1-f106-4d69-8cad-a493bb324d87", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "37daa4b7-0058-4bcf-83e8-12c68a1e05ff", "old_session_id": "6667fa80-b0b2-426c-b38d-040686896a0d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:50" }, { "isJwt": false, "opbrowserState": "0ad46efe-d768-4417-82f5-bfcc5ea8c09f", "deletable": true, "dn": "jansId=28201246-b611-4fef-963f-5949ea941193,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:50", "creationDate": "2022-11-24T09:16:49", "ttl": 0, "sessionState": "885489e56f6ef6e5afb6fc780c91c709bfb1aaa9ef637746488791f510c785ac.0d41ec68-47bd-45d9-8c5e-68c5ce1bb1b4", "lastUsedAt": "2022-11-24T09:16:50", "permissionGrantedMap": { "permissionGranted": { "0d05582e-5b51-4408-a828-1d07b7f53931": true } }, "outsideSid": "527398d6-428b-4711-9f78-4956ba01bbfd", "id": "28201246-b611-4fef-963f-5949ea941193", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkEyNTZDQkMrSFM1MTIiLCJhbGciOiJSU0ExXzUifQ.aTp4wu--sMNM0C1dPSxiVr4nmiFD-YEPP6MusMjbviAMOiqeUHbJfAWWiujRRVc40clLPq7W5xorc5IIFWK3T65ma64U30es7A7XQZRSeP4fKc3eDXUrgw7dV2_g3qeCKzyb75lG7NQIBnv7MD-037aYJZoJ7Zq8CmBaRoNZnEyAEDiIgQczLXhbD6Yb9wVScc2ppx2j-jaqKhxoy-60JNmBCxJDE9XnNXvMuqZKbXN-Z2HoEmM9Z_M_eZt61lnFmOifYOQU1A2zlqybp6K82fTHqFGGlQq3J9X4hIv9JkezdBrQH0aS1L_J2J_MArPCt_B0-dmglBsFcrreEKpq0A.9Gaf6aRm4DhkczRw3rFHJw.yStJbSLWsVS2UNidpMd4UruQdKxi5gYl337ztSE2begUgy-rFfyBhh_iLJfFwMq7IfzGj-zET-d3JM1-NuTuNrW8CDjrXFX1GbFQBaGMGgAyjw8kX3pPDmwZTQVURKXNlncPefUWZWdCS1yVad4ZgUtjsmfrSHyErKON5CTGbcng_lr3AjEz_mvAlvlIVjdnX4WM1FpKAvGTTWoAqGIGNL97Bj7aju4nv7AatvokHe_VGCvMxKIEFWeSCvYoSPzggaZ5PiFkQMHqTNJKzGj1aotwSlEBcIrECQ5bzEeLIIbUptjfEMkKYdDP4Lx7wQK_fesGA_Q6_8FrkVuHJ-5KZ7pQHP_2r66jjWPuBCb1Ego-93QpeeDI7E34xtTpv_4ldpA58kJVUkbjNQYO2EXB78l_ToDZ3zEwZu3Q1FydRcxHwGIFIoJSea2ZXGeCX1IGFIMXo0Nh3Uf7ErBJJW6FBCvO1GLvtaNiYqfl7m6h7ix5Rgd8FiSGDe0IMGIA_vsaLPDFNwiE4wOBpDg8JdYe9v1rQncHaLn_4e-x5YYIyHoPy8U5oGdalSHpnUw147l0N4uVzz1b8we0AV9aLNOkQuX1CPO2CNrat8aWny658EHJ-qjTDWpmBwYH66Xhru4mAyGTMBKflyV7Xq2s60ex055_6XjhyFbECQSj7Zt_a6BO8NH_iGmGdQkP9wF-4fB-xTCSrPD4og7sRKmA369CEUgKVlWGihNvj5GkX9qlUcc_lWpOMDQhNfKHP-7wPXPczuBTaxYUe1TPqCoNZaR1jcWElatz_Dshl-KLYL4E_SPtGUojDh2OtHdqEN64ZZoE5mKa9BUn_HY7uF_11YeS8OUAwTYmSf2BZ4_pKYObu5PDU15ABE-yEMo3ARYlrm3InSUsvD2Z-EeznhG2hFq7i8UT09k1UEVYA5AUTl7wH5J6veDMnCAcNBQANsQvrM1lAr1tA3EAvFHZuna6-4wo1_9ZEuQcgAGPy2y7CEXYVWphi6oWwrfcSMHIc_3cm0y-3l5ukv7WVgiEFBuT1n15JIHwe6y1RNcTwqTFHU89hkaVdn3ExMhAtjC0tGJbL7NIRVzmFsHr0QmA4rmPZd6VoInsaaAjcXVlStyhUpEr_pp7_au_a8FPRinl_euhK7OONZEEfOny8qodrCVpjZg28HgH2IRJggh8tX3zyTYKSLIaMmcF1ppw3_HTxkZLszWSTOEvTlaPjZIGelrADQpswY3_Rd0TR_HXxfX_PRWnOB_EBR33BvsT8s0qwjkVEhuLqMq1GA_p4jxCyjCHWwzChq1__VCOz4YmiMz6bGWoV9ociaJDcZ181EpCYThuwDyu_r510miC8rfl-ZAq1Yw7GDnBeuwNtQnUMjZl5Ko4VzLVJg0ti7lS_6sZYJcJJUQbkE6qW9cCwXjvEdKDO-0oDsGuJFtwfCB43JdKirWT2JGGh0eby0BV3_r1pzjxFjVY0AvIQ-5w4uV5rsTaWWrZk2bEUL8ScOtb06YzNhsEoV0.YB5Iskyhpwq9ATKGZq28QUcA_0mCF9YH7oGvBzGB-v47_8WOKFPT9x8mJpAS2PNWso7eRefXR4bSfT9LjE5TsQ", "opbs": "0ad46efe-d768-4417-82f5-bfcc5ea8c09f", "response_type": "token id_token", "session_id": "28201246-b611-4fef-963f-5949ea941193", "nonce": "f579ac9f-4317-45c6-9a69-487a2adb2be1", "client_id": "0d05582e-5b51-4408-a828-1d07b7f53931", "sid": "527398d6-428b-4711-9f78-4956ba01bbfd", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid clientinfo", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b01746a4-87fe-48aa-874d-cfb6aab58092", "old_session_id": "fb3e49e8-c5d3-4abc-87f2-092ea6e06c6c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:49" }, { "isJwt": false, "opbrowserState": "284b04e9-0c63-4a50-abd9-cec6fb71c9ed", "deletable": true, "dn": "jansId=1d9b3127-19a1-418c-870c-711e0748de38,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:50", "creationDate": "2022-11-24T09:16:49", "ttl": 0, "sessionState": "07ddd905b3d48a8fbc3e55feeeb8a3793723ad03b3cedf9087420608294fd551.fe68d1ea-7506-4ba1-8c0e-ef59a9d6a85e", "lastUsedAt": "2022-11-24T09:16:50", "permissionGrantedMap": { "permissionGranted": { "9f51fe65-ac80-4b14-b0a0-f928426d350e": true } }, "outsideSid": "1fa3fa44-8756-4fee-8bdf-214b4df5a771", "id": "1d9b3127-19a1-418c-870c-711e0748de38", "state": "authenticated", "sessionAttributes": { "opbs": "284b04e9-0c63-4a50-abd9-cec6fb71c9ed", "response_type": "token id_token", "session_id": "1d9b3127-19a1-418c-870c-711e0748de38", "nonce": "79b4f146-a3a5-4309-885f-bdf018e0e939", "client_id": "9f51fe65-ac80-4b14-b0a0-f928426d350e", "sid": "1fa3fa44-8756-4fee-8bdf-214b4df5a771", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgImFkZGl0aW9uYWxfY2xhaW1zIiA6IHsKICAgICJtb3JlIiA6IFsgImZvbyIsICJiYXIiIF0sCiAgICAibGFzdF9uYW1lIiA6ICJSb2phcyIsCiAgICAiZmlyc3RfbmFtZSIgOiAiSmF2aWVyIiwKICAgICJhZ2UiIDogMzQKICB9LAogICJyZnAiIDogIjJjMThhZjE1LTc4ZTktNDliYS1hODc4LWYwYWExNDBkMTM1ZiIsCiAgImp0aSIgOiAiODQwMTVjMGMtZjdjMy00OWFkLTg4Y2YtMmRiNjkwOTI3YmNkIgp9.DbdV62smnTNlj3L5vhxLY7YaXRErdpcGezcmccnngwRsN074nYPZfgS_ldAo6hsK-bN-ygK93x345dfMSolIg7gFcTKs4WKczxitUv7Uf04QpEU26YETfqUxUg7tx1iJm2kUXWjm5cTTkb_31QKzuoWH4sMp-Ji1v7Rks5D5L74-tZ3ZXz0QrfMzRFTX72G5X17pdOPx0BWBf90MnSAozuvoQHjUs4RYHneteVh7BLwEn1DMdeCLGUUWnx6gTgDYYBftTShtfbbiMvFe6xxOkheFaUJSN8NbqtOCNT_F6FnTX7JT7-r2-KmO_FsuVcAmdcvClaJzQryplpAI5wN_sQ", "old_session_id": "a1d9e9ae-d42c-4712-b037-03fa0128a4f6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:49" }, { "isJwt": false, "opbrowserState": "8108e346-f766-4e5c-96f4-62a8c06e312b", "deletable": true, "dn": "jansId=1a30003d-5273-4e19-9614-2dca51e6179e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:50", "creationDate": "2022-11-24T09:16:49", "ttl": 0, "sessionState": "cdab34f15d69970d8aa5e97831cc0fb2a7bf3d729e8287f08901bb56bfb81888.51b857ef-9d97-4b03-b048-c9f9fb1b9acc", "lastUsedAt": "2022-11-24T09:16:50", "permissionGrantedMap": { "permissionGranted": { "bb0560b2-14ff-47eb-ba5a-16655bd91982": true } }, "outsideSid": "7eba522b-b2b9-4871-b031-a5315bb6b09e", "id": "1a30003d-5273-4e19-9614-2dca51e6179e", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.eaOBL522K_xxqdBKEwdu9P0isEFSAAywvUe_0PQ9HcgAxYBVC1UKTQ.UzJ1-Z4ORNi6SZ3R.4J7hE3FOFRoSRnFvYirHjWC4cLik0fsF9Ek63SybG--0Y2T5zo1MZRFu2rPyhBSGlDT1JEWgG4PXyGOneEQdD4_vjOxC524wfVyJeCEMVnogoJgMSr5wFzEtnkt3OBmaXRNHUhfQ1fbWsfrmJobcs7l0Agw2Syg19Hp1A1z9Ia29mvTCWUzyAym1IMRHcgFa6Hl02wwuVKIwTUYqO_zAdpgftoyVV4e8b4Di0PkL-SDbuO7XYlkiISUr_CtQlq6epEvt-Q_HkJBkGoZ1jk1_1s7c692SV62DITtupW3gOZxGAW68wqSuhmDeVlD3MatJ4XWQuRLOUDILGb5tP4h7-vQVYJkLIzbIu4BYyno8nCWSByUhtQ4WPeqIUZcdg9ZzKF-ruHvwWUHJVLZV8HrxSe-UyZcreQnxtbJUw0bJNZ2VccGtzPyDAQEnnqgbTtVAGubTaQPhMknEyemgsoseWbXuvaUPh4_jWDu54Au0Wcl9mIYIcK3vXDN6b1qRPTR3gX2t7VQhMZhepUXnoXU0QwZt2wrVI8OWjItSvzbFzjO9trfZPymVDXnAIRwI1lyv6XZtKYJiJiWNRZWqzwmriKcZrpTa9CZfeh-iFl1Chvwjgmtv2mJ4C9oiEl7mpxVdOXZwrPdjCcwlG0z3-CdUHG8gePl_TYNER97rCwPihXb91O1gZ_ZZVzp0-uJUOOtgngxnqt6z-MykCx4v6UKP-vGz.EjgJfg2JGIFleZY7OKLXLg", "opbs": "8108e346-f766-4e5c-96f4-62a8c06e312b", "response_type": "token id_token", "session_id": "1a30003d-5273-4e19-9614-2dca51e6179e", "nonce": "550789cb-e54b-49da-842f-b5b583f551cf", "client_id": "bb0560b2-14ff-47eb-ba5a-16655bd91982", "sid": "7eba522b-b2b9-4871-b031-a5315bb6b09e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6549e999-c947-414d-a42b-95abc18060a4", "old_session_id": "116c9126-da4d-4c03-8716-8791de787ece" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:49" }, { "isJwt": false, "opbrowserState": "17bf9f12-b904-4a18-8428-3ebd348806fd", "deletable": true, "dn": "jansId=81b83b68-2ffa-42c7-a1bb-d84cae06906e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:49", "creationDate": "2022-11-24T09:16:48", "ttl": 0, "sessionState": "70a1d02a0d5d5f77036368050c93ae496e3106826daf19250439a78780da5f26.35e539f8-b82d-4317-bc7b-75385c9658f6", "lastUsedAt": "2022-11-24T09:16:49", "permissionGrantedMap": { "permissionGranted": { "1d287b5c-6952-42f6-a9a2-0bc2cb9ca37d": true } }, "outsideSid": "22522b30-2276-48aa-b6ea-2d258df4b96a", "id": "81b83b68-2ffa-42c7-a1bb-d84cae06906e", "state": "authenticated", "sessionAttributes": { "opbs": "17bf9f12-b904-4a18-8428-3ebd348806fd", "response_type": "token id_token", "session_id": "81b83b68-2ffa-42c7-a1bb-d84cae06906e", "nonce": "359449e7-ceef-470b-bb4c-e3c21e4bf7d3", "client_id": "1d287b5c-6952-42f6-a9a2-0bc2cb9ca37d", "sid": "22522b30-2276-48aa-b6ea-2d258df4b96a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgImFkZGl0aW9uYWxfY2xhaW1zIiA6IHsKICAgICJtb3JlIiA6IFsgImZvbyIsICJiYXIiIF0sCiAgICAibGFzdF9uYW1lIiA6ICJSb2phcyIsCiAgICAiZmlyc3RfbmFtZSIgOiAiSmF2aWVyIiwKICAgICJhZ2UiIDogMzQKICB9LAogICJyZnAiIDogIjYwOTY5NDhjLWIwMTktNGEyZS1hNTIyLTFiNjgzZjVjMWQ0YiIsCiAgImp0aSIgOiAiN2Q1ZWM1ZTYtMWUyMi00OTdjLTljN2EtNDA3MzdlMTUwY2E3Igp9.xa3NZbwnRJ6HxZcnVEtNMSsM9lOPN4EU6WI9IIqzm1lIm7q98Gr91lXVxhO_nkuLc0kDE60BAJSn893RENmBgbqJT5WB6nc5IFD7D5gfywcHWem40pNcstQj2BNrZ_r93WdaysWes3PmsAw32VvAnQJtLxwsD6V8XIUSGOyjEDTsE6ID-QwgaOsq3JWDRgCLoKVVO13aES-k5kKB33bhSjCXKr0-LOvJmBdiAeUZBU_c7LLoAwj_Dhz8q1PWv1SlTEhF7Z384kKtCtpOQgcECrGB9QHyXO-OLbydLzLKOhNqRUIXgNwMSUwFcbPU1akGaYBmRdVDMRXQcLf1hmz2Vw", "old_session_id": "8bf17069-90bc-43b9-bdeb-cd305ae90c4f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:48" }, { "isJwt": false, "opbrowserState": "ed66cd59-e750-4286-8ad7-d67932c50021", "deletable": true, "dn": "jansId=18aeb1c1-58fc-4c15-ad29-1c1609f3a9b0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:48", "creationDate": "2022-11-24T09:16:48", "ttl": 0, "sessionState": "5464d5646d44d3aebc4d4d67bb67401e0d20f6b8820802d0fa3481ac573cf0c1.c3a0bd11-ffa6-4de3-b1d9-0155f1dbe22f", "lastUsedAt": "2022-11-24T09:16:48", "permissionGrantedMap": { "permissionGranted": { "75ef69c7-44d5-45e6-94ca-df1cafecf01f": true } }, "outsideSid": "73b9daae-4289-4498-a28d-0be040998462", "id": "18aeb1c1-58fc-4c15-ad29-1c1609f3a9b0", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.PvMzsXvHbkmx0BnTikZEY-QOYPyKBO4H.8TZ4EEk8Qt1olWpa.LghjHPDzdCpnO8mcspgxCLFOAjqGMdjiUDf4wV-PIKFTIMWUCeEuKxOi-gTjKnY_wqaYTnuXSF1vDIqCoaEvmklordAqGXoVUt8BM_ZVEhGxJu7q8nvWCVHYSzyeD3rlOICtq6Qt51DEGJuGTpJ-yt8aFdzc4EkCEEGoDbDGLagYq7cIlt8K6UKG4_bTEg-qyb_m3Y7Aj8gMyHbDmcu8boYJc2wnry8x-JSjgpwXoD5O7vCaWMQrsQuzD_uCba7VpwwtR_xcyNfibzOfh3wIuFZ3DkLm4Yaofl021NBYFDU7at1WUJR5EUqIQ61uaYi-7sfCcCBka_Z09ik7PISB37x1bcnErBpxesFIORNr4V08Qt6893hTx2a3qGWwL_LJleBG4IM9DCwL-MMTdh3yC12l2WilXg4Cuxlyy7bGvgEsI76-8OHzlYs-0yY05cNutSZpNbGw5blxkzYIdcJ6rdcAx-ypiQ1VTApRCyvI9MY74KAsKu5TR_BURl60ETa1Tjr1ns0tBDZ7kY4rDgfBsaCtBDNDy7gtCzWDV-fDkzgK9L9QcKJM8SKc1yUmuPxJKX5myilTIT-jaWU9ajb_gT0k-ev_yEre_DPkZdJg-g3U8neU8I_zAyM-VOyL3Kf46XwVA82XzjMBcOP0CyGThLWhyEgfKHAo7ZExb8E8rtGDA9wagTdmnyfC6XYewiti7R_yKe6CXnoYNcpf1wEJgiL3.x7oHFfpF5noYPiid5UXK3Q", "opbs": "ed66cd59-e750-4286-8ad7-d67932c50021", "response_type": "token id_token", "session_id": "18aeb1c1-58fc-4c15-ad29-1c1609f3a9b0", "nonce": "65fda8f7-0736-44b9-98c6-71f07db22908", "client_id": "75ef69c7-44d5-45e6-94ca-df1cafecf01f", "sid": "73b9daae-4289-4498-a28d-0be040998462", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4453ccda-b6f3-4e76-86d9-4de5796a1b5d", "old_session_id": "bf2587e7-6b09-4a3d-b7fb-3185fa190f6d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:48" }, { "isJwt": false, "opbrowserState": "f1c70400-27a7-4891-97cc-cfca9a3c699d", "deletable": true, "dn": "jansId=335b8c2d-26e9-429b-8486-1036792e23f0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:48", "creationDate": "2022-11-24T09:16:48", "ttl": 0, "sessionState": "a84f376fb309e53f753b3869977dd715f893bff0a2e886673aa11690742a5d04.1186a1ea-c29f-463a-a59b-66db27efacac", "lastUsedAt": "2022-11-24T09:16:48", "permissionGrantedMap": { "permissionGranted": { "5beb3f38-009b-41b8-bd62-2c910e51f4e9": true } }, "outsideSid": "e53dc424-9b99-4f3c-a314-ba1aeaf103aa", "id": "335b8c2d-26e9-429b-8486-1036792e23f0", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.pgSSy42dG4v8fXJdKTThdEvLszy9Gi2fT1wRZFa5YVMKuVIr_JSqrUXhs01PMPrL8y5wbSbnYwC0aASKkyXKEo3K27qh512c_oHmbI-5aeJRKe13iNIx2SlnIPammi-_A91peFsEl1rWGfeTP8tvI1pqWsVdgKcGRHY0WVZH9FbiM03OpQ5D9HscDsr2JN_0rDY_HAAd17KCrU4RbjyCmRN0BkkichTqCCeiDEIAnovvPMLhS0w0y-Ol9Pzw7R8j7tUJ2AOQ3pKPQYpHKByfucN1_Vw0OHe9Z6Y4zw5skl8N1-e8Oh-eBFX-uIZGKk2uTdP2c6zcN7LduDkn3oMzyw.P4Fknabj7e1pF7CC0nsgRg.rlLOGi5zQ2f-bLitdbSrdcMMJYQKZx49-Yyu5Ugn7m-XRyoQVIFCLJFMpd_UoOO5GuFuXdp85gTHbzIwTvRA6a96CQUCApJ5eQA1oLvMxNAc4Rt1441XzbwWp1auEQVzAE10DixLZOUggPuYGOwjYkNsLkcAj3iSmHSIb9_4WuxJt8rr8PXQqquHaKPZdWbwqD_HxChFo_RuKx08WawthXg0n67Ca7qRfqbJS-2D380ooLxXAWfoyiebwawOqz7FdaoCxHeTmYhNIWooJLP7BcwFz3d03RIbEG4eRyzM1RASVw0uDVz_UKDKq3sUFrK_3R_DL4BikHFKi_Aah7PHXb7zo0Bu9b6y6mYB6ljtSjEBR0Y9Mm4GZPozlGn231RpX852u8OCclXDatzXroLEpNQo_OAPphmgtEKdAewAPpN7zZFCY4hvIEQC0h0a1J5iX3tb74owoC76LuZsimTPxOWel2NI_Gr88JowJ4MpMIbJSqgRUVZVyplgX0XENuJoxf9TzajI2wwj_ziXsD6NrCERIC_BeCy2hZu_Mdw39wC1j8MyTVBjzQ1HQ9QVQAPVNS1hw8n2Y09pOAwaB26Wy-8WgxvFbIJFEmBJYasgIZYfAch9V690q9Z_nb4Ty605rgU2wFNo1Dc09rNa__1_LIHWSHRz2n9Yf0ikVUZk1yabwXloBHzTCHbGZMC5-jXUTbhRg6U0f70wEwyRfX4ZwVxD3Goq4kvaPnYD0J59wVjZQcymj-wwEd4KUl_iZDGDt2tePVNurA3QuDIQpejCZbGuReu1uEygLIny17IvVUEfhTZL6gfWavbX61OQmBArsExUftychkBdaYYAdKNzkivdxcxvATidM-55olmYNhuGJdq2e-trq5UBzPPlb4QRRPTbyp6oZ_kRJ1RiSwneAevhkh4W4k3f32-L6Q9mAR-TlLHQQf-V4f1eIiMVjPpOc0LKJ1BmK67B0NSEb7_NR60s4ceeVkxGIbHF7WE2uO9Isv1-CA8syFonM23qZO5s0bHAO10Qy91QHcV8iuQXGFmNp_O37ZxwrtcQLxVcpzaysaRXE1uvJ4_a7-Weh62c5DOij8AiO9WMCd2baWfHyMvwoqy1JtDBZKH8wM7-K3Fj6NVIO8yAvf_TVyVaJ6nCWxIe_CIMammbl3JP_Nhrb8y-oiDulEBDcdzXWSbUd_SJs8Rh6YQZdkA1-mar_w0yIyGpjKjnj1r9xZTEyG0g-xRRW9e94SFqoKztwleGOOaJk4i9CExGI4f4I3Zs1PkVntmITpgbbgerDBeR-bZXlZVOB15DQn_rpk6e_tEYR2eyuWte8h3awfs7u9hgG1xelVV_pmG0ZiK9EIwDBoLA_EHm79b8Qk52A96FKFTs9t-SsWZgjCSr1xD0hb08mjrKtq0WIlDZgrAqQ41GzIIzGaSQNuAxB9NzlRAc-zEUmQRFdkLe9iF7IUiLcz4dkO6onX4BUtfqTphic0xFb8WSJQ7k9N_Ok5ew-AonpGirn-s.-gFPagGMeZSChda2JeaRnuVsl1Z4H3cisVtm4skhFio", "opbs": "f1c70400-27a7-4891-97cc-cfca9a3c699d", "response_type": "token id_token", "session_id": "335b8c2d-26e9-429b-8486-1036792e23f0", "nonce": "ac8205ad-a032-4041-98b7-d5076b2393d5", "client_id": "5beb3f38-009b-41b8-bd62-2c910e51f4e9", "sid": "e53dc424-9b99-4f3c-a314-ba1aeaf103aa", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid clientinfo", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d1f3a0c1-128d-4b7e-9984-b9400b70a4a8", "old_session_id": "df66dd37-a96c-4d2f-9c93-674d4188b40a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:48" }, { "isJwt": false, "opbrowserState": "0b726fdb-7a53-467c-a944-1889df4ee966", "deletable": true, "dn": "jansId=6c7d0493-880c-471e-bcda-98116d7be0b0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:48", "creationDate": "2022-11-24T09:16:47", "ttl": 0, "sessionState": "01b350dfb7094dd37c00254a34303e8e7d6065962bb569d1523d6e27fd03298f.45478102-b69a-4717-ba0b-afa4ec35f895", "lastUsedAt": "2022-11-24T09:16:48", "permissionGrantedMap": { "permissionGranted": { "72110e4b-bd0f-445c-86d3-a96d5cc14093": true } }, "outsideSid": "54c09b10-5051-4397-959f-4a586e4f89d7", "id": "6c7d0493-880c-471e-bcda-98116d7be0b0", "state": "authenticated", "sessionAttributes": { "opbs": "0b726fdb-7a53-467c-a944-1889df4ee966", "response_type": "code", "session_id": "6c7d0493-880c-471e-bcda-98116d7be0b0", "nonce": "adce8a15-942f-4e84-8496-afe2679aa8bb", "client_id": "72110e4b-bd0f-445c-86d3-a96d5cc14093", "sid": "54c09b10-5051-4397-959f-4a586e4f89d7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "dbc32c5f-a730-48d0-8341-03565845905c", "old_session_id": "a5ee605e-b196-43ea-b98a-a227f3dcbf0f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:47" }, { "isJwt": false, "opbrowserState": "593a031b-fed7-4975-90da-57db179e598f", "deletable": true, "dn": "jansId=a67f2ffa-dffb-4fe7-a61c-0af752004fe1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:48", "creationDate": "2022-11-24T09:16:47", "ttl": 0, "sessionState": "77ab27e3929f45cea6f780ad1f47195a3eca8ee6c7cda28b71ebb856ea557aa0.aef98247-31b2-45c8-8c41-a2afebc477a7", "lastUsedAt": "2022-11-24T09:16:48", "permissionGrantedMap": { "permissionGranted": { "cedc599d-7bf6-44f8-ad6b-6ffcad0a2fec": true } }, "outsideSid": "e85442d5-9970-4cf0-a42b-d739a585b224", "id": "a67f2ffa-dffb-4fe7-a61c-0af752004fe1", "state": "authenticated", "sessionAttributes": { "opbs": "593a031b-fed7-4975-90da-57db179e598f", "response_type": "token id_token", "session_id": "a67f2ffa-dffb-4fe7-a61c-0af752004fe1", "nonce": "43822c5f-f5d0-4848-8444-470d9051ec7f", "client_id": "cedc599d-7bf6-44f8-ad6b-6ffcad0a2fec", "sid": "e85442d5-9970-4cf0-a42b-d739a585b224", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgImFkZGl0aW9uYWxfY2xhaW1zIiA6IHsKICAgICJtb3JlIiA6IFsgImZvbyIsICJiYXIiIF0sCiAgICAibGFzdF9uYW1lIiA6ICJSb2phcyIsCiAgICAiZmlyc3RfbmFtZSIgOiAiSmF2aWVyIiwKICAgICJhZ2UiIDogMzQKICB9LAogICJyZnAiIDogIjBjNjczZDMxLWIxYTItNDliYS04OTczLTAzYTQ4MjgyN2ZjOCIsCiAgImp0aSIgOiAiMjU2ZWNlOTctOWY2Zi00NTFkLThhMzYtZDVjODY0ZTdiM2QxIgp9.Uk8SREiJzCOvn7eViY7TvpI03Agg4rlJJAQwGF_EN8QbVJLWndpq2z_eRAU4iNv97YWc27axVR8bZTffK2qQBb-zokGG2q-B9whE-6mKu4KzVXUASndujckIX699gMLZ29gG3XoXMj3b0Z7EdpBLX0VaJInqBo6Brq160EqrXXRd8rY0e0a3KeCdnexSjZdlK3B8Jvf17iOpaXEdsPtnV07HENEmMg35ds7df0Jh3J9LBdLrXaIHRDd9qhHGO6F2Gq1Y7o4FkMPH9QUVXjlvMPSQ2jDYKZc3qHetMj97k7DtsfOOtKcizI5TTRXp-cnt1noEhyiDXd0rEb-_JTAVhw", "old_session_id": "e762d31f-123e-444a-b6ba-c472ed3265d8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:47" }, { "isJwt": false, "opbrowserState": "49e07096-729e-4e7f-ae38-d46085b9dd66", "deletable": true, "dn": "jansId=1a730d55-4226-454f-a31f-10aa6ae8e70b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:47", "creationDate": "2022-11-24T09:16:47", "ttl": 0, "sessionState": "9fbc9193477a10d5bead5e59423f23444a93a26f90dc610da66917b9470801bd.4f3a652f-e467-47df-b7a1-94e0148776de", "lastUsedAt": "2022-11-24T09:16:47", "permissionGrantedMap": { "permissionGranted": { "28af8a86-537b-44ce-b44e-74a50dbca93a": true } }, "outsideSid": "252f4231-06eb-47bc-8f91-1cdd04f3c218", "id": "1a730d55-4226-454f-a31f-10aa6ae8e70b", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhY3IiIDogewogICAgICAgICJ2YWx1ZXMiIDogWyAiYmFzaWMiIF0KICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiBudWxsCiAgICB9LAogICAgInVzZXJpbmZvIiA6IHsKICAgICAgImVtYWlsX3ZlcmlmaWVkIiA6IG51bGwsCiAgICAgICJuYW1lIiA6IG51bGwsCiAgICAgICJuaWNrbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAiZW1haWwiIDogbnVsbCwKICAgICAgInBpY3R1cmUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfQogICAgfQogIH0sCiAgInJlc3BvbnNlX3R5cGUiIDogWyAidG9rZW4iLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICIwMTI3OWQxYi1iZGZkLTRhYWQtYjBjZS1kZWVlZjYyMDc0ZjYiLAogICJub25jZSIgOiAiNmI3OWE4ZjAtYTU2OS00NmEzLTliYjUtN2RmN2MxNzc4ZDQ2IiwKICAiY2xpZW50X2lkIiA6ICIyOGFmOGE4Ni01MzdiLTQ0Y2UtYjQ0ZS03NGE1MGRiY2E5M2EiCn0.bdi1IYNnU2V8FbFf_hBUiA2D8BKzbXyumta4ZQWs-8gp0hIi_-hnwkYc4CiZyfL_zZTZnuERoRv2EekXn6tDoSC6Ke1-13BL-3jEi4li8dplAgiaFeySM3NlhDCiAqADiB5u3egNCqrxSeAInR4PQkIEtlAFylUDJfZMAN_MKJ3_DywFnFehQ0Ce54eOGBd_CxgrpRRousWVNl6sk3anstm8qS7uZf4UQtU_P-GY2vqHtnZVIFUcE9qZFjHBkW5eO-QNj34QkcgVStTihWAd-6qLQS1eo3xJxSEkcAI9Bh03WPzAqkw2wp61QzcXXjk1juBvQpoeZvFD5XBnmHBesQ", "opbs": "49e07096-729e-4e7f-ae38-d46085b9dd66", "response_type": "token id_token", "session_id": "1a730d55-4226-454f-a31f-10aa6ae8e70b", "nonce": "6b79a8f0-a569-46a3-9bb5-7df7c1778d46", "client_id": "28af8a86-537b-44ce-b44e-74a50dbca93a", "sid": "252f4231-06eb-47bc-8f91-1cdd04f3c218", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "01279d1b-bdfd-4aad-b0ce-deeef62074f6", "old_session_id": "faf99574-137b-42de-85f4-90b566ff2916" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:47" }, { "isJwt": false, "opbrowserState": "c5f1f8da-4a9a-4edd-af7b-1e7c24084b26", "deletable": true, "dn": "jansId=72efa095-0bd1-4c3e-860e-91fe3a91636d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:47", "creationDate": "2022-11-24T09:16:46", "ttl": 0, "sessionState": "869ac83c0b051c09e645ce1b895f06355675ee35756be2c2cd4c72aa49a1d1cd.9e2a6bdc-a3ed-409e-b4fe-8ca9464e73f4", "lastUsedAt": "2022-11-24T09:16:47", "permissionGrantedMap": { "permissionGranted": { "c7ff0ee9-fc6f-42e5-8bfc-609d17d5b6f0": true } }, "outsideSid": "b93abb96-28c4-433d-8a4a-1324b2af718c", "id": "72efa095-0bd1-4c3e-860e-91fe3a91636d", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.WrpeEaHWiUTDpKoRbMJyavFQ2Zsy8zvIwyvYGaBCHAPs_W3e4wDW_Q.oNa4fz0pyOAsunKx.Y4oL5zZuKkKYsbflLL-ODg8j3cs72HUanqkoNI9VCET4NMqwsEbjQwBhCTMHgag4QOYPzvBOmnjlmdgJSZlejNjdkZffntK0A_cQ4YNOoMO1-D8Tr4YdjGMlU749psaN6dQ9uVY9Jo4I5OCId7G4O4B0sYtH3qvzXvw-q4zX9jqEABkQFcjMGzMI1eJyns4vWmicooHpG16AwTOA63QXcNWg-wl6q7DFkPKewZa8gl_8V8Tt9rWr8UOffsTiTVkTFcxdOAPQjlP_LhDHpDD9TRcAbkHD1PMu3jrja_UITqQkTnEPAnre09a1NFtRV0zQ33cjDqXgonkn2xZ4WmKqlB9R0-EQ9BR_f4cAIHtbfQsL0HdoSB_cxy3Djiztvs9mC7Q6sPwJL3MoXUEBopPKb99BAVDWQzv3wR4KOg_aFwp95Zos7FvZHoAPu8NfS1Pz6Osl_mizQtfAYXP3EOlOjW2V1kUcqloNs3VwjrxMK5WA6lCcAXWrMe0JGqaEVAQuHaZ4q1ChoXdAqpZofQX67niMMu28HzekN22bHlmtRbfLUY9hL18InjqhqUYHdrReH4XJopK_0zGV-47B2zigTm5fY4dQnaW3iRC2fsbIijNewiXTnZFQWr50PVdQejv-qRp6BNzFruWS0C8GWDAiliZ2fvcfhR83aJxgkol_ysr5aieHSEpBSqkITLAhMkZvbAvm764r4AfPXe6bUE5owY0ZOLQ-nbk3VTZoabPzZ12JezJxy18DC5wft1OBGYyvZyTRCTeBEcKy6E525dlGNG6l5pxbCLQn-yqXA8cvCJ2m3nHvYtlP-CFOwJu2cLkCaqPeVad3pMoSi3vrl0NgFe-fZthSh7YGRUVJC7CuBFiW4rgr4ONKwcju4KXKDIs_sjqrlPyBIflDnT-VgVXZt2QlSw2zY5KvOVXyfeIbYwQGio6ko07Jj46tTch-yXuYDd9XZ3NiAznnOhz82aKCD0EB_56DkW8yIRyKqJOTFbGnL_bdBfTDWAbagaLqYe5XY1gtMhJUqKs0fmZX3T0st-gA9EJeLn20SXjLWIJyb9FgcakFId2O7jebn37DU9LCsxgqtcw64ji96EWG49oEmwjcpc0jEbIDeZbVJzuJa3pAsE_976fMHc63lwCRYUZuVvxyifRRIN6SCfF92LcVq6alJnaHxa5s3ZdGh0-8UsavEy-wcIUqaI24FrT_YW_bG7UGcwPeccQRXhcUTCF7QqEHEMUvoUJkpgBlIa-Nx1jL3IA3Ulm16PCH9eCeEYFys2rFwUj6DOK0aqnsciFl4tzimSc7BB8SzAe-Z5NXBh4hOY0-LrOm5P8uFX-MqZp1geQc2RE2yuAlB8CwVnIgDWtlgQc4W4TLm8YR3rRDv6o8tE7OwB4waY8u7qkMaDt4o65JWP6Zikl78zk3tmssH0qaYf674-oEwot5bFGKAaJzTWhZP_ADjRL3Oczw4rBWejl2FoWzEYN1bnEkNYlXQjto.dL5v4LJRCHh8nEsX3TFImw", "opbs": "c5f1f8da-4a9a-4edd-af7b-1e7c24084b26", "response_type": "token id_token", "session_id": "72efa095-0bd1-4c3e-860e-91fe3a91636d", "nonce": "f8fe2444-6fe1-4771-9ebb-fbf33eeb3d8e", "client_id": "c7ff0ee9-fc6f-42e5-8bfc-609d17d5b6f0", "sid": "b93abb96-28c4-433d-8a4a-1324b2af718c", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid clientinfo", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4a6af749-7a63-4718-885c-23b1afabfca1", "old_session_id": "f489cd5b-8ede-4c4f-82d2-2f5a9fba178b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:46" }, { "isJwt": false, "opbrowserState": "25e77982-9a4b-4eae-ba1a-10e9db307217", "deletable": true, "dn": "jansId=2bd1351d-3e09-4d89-a592-fe8cd872a921,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:46", "creationDate": "2022-11-24T09:16:45", "ttl": 0, "sessionState": "da224015189f4a4dd26c7d69751f30af99c5ecfe7eb165db3ce28828fac93385.ab47b249-8ba5-4d15-acc5-ca3c74ef4d13", "lastUsedAt": "2022-11-24T09:16:46", "permissionGrantedMap": { "permissionGranted": { "61f2bc8d-4f5b-4f84-89bc-0477327ccc1f": true } }, "outsideSid": "059aa572-a898-452f-990a-9483732bdec6", "id": "2bd1351d-3e09-4d89-a592-fe8cd872a921", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.jS05yRePDxR7vY91jZ_G8zgx0zmSWkhw.a_zXEuyNQlFhRI0R.3unNmlET_qHbygaQn6Q1maLA7DCRdxzoOd_2nqZO34EbVWjc-o-0_IF8k6DO1Pd4O_THkJGtqLvuIsKIv22xob3-hBgFgbqxMWektEpyzqHfa4_xWEUGEEpTUlCS4lDWX1u5tltzpQhZ-6O1ULXAta6ugNJgJO-dMRRj_dslYjzh9sd7-4rFBTvUlF0Qo2UMLaWafxEzBFk02uyZecdvM3USmjmkD1yylZCFI4O3gLrYaYGi2TvdllA5uN__19DKNrINjhCgskEvKWMsXfvBkOfw8-Ccq4EgHS10GKDE9M5e3gJmaWDrca8fU7RHo1Szckgfm13I-rLBgAaeR0vvFIpui1lqm0Q-O331Ez173NqRECxtAQDN6GNAOOBXXo24krfxe3eIYPDMKqVn7emzee3GsFm_t_CY91l_H4PiTsNqI1rAq56ooFkzA--krAx1PMDMnINYhdg5Wsq6qRAFnV0tDPRNbSrh_bWSJJEHS_uC132Ywfev6X-A_M2-0OI7ywzLpnM4r-H-_eA55rVVTwYQMPGOtZXnASJWZvsbkByf97LYNvp8rvCNY3BoT5cHTyuIEGVrd8py7-wSWD4AvmAj8qrOl7KO010akOjbMyyVUh7e_P5NGDdoWiZ2jRFi2gdIH58Eg2lkVDc2hBy8h-oUDy1Hzia_VSnPDNes7xTz4GEWuyHT-odwUlamnOmbV8aqK7ghH0OKpCMIlMmbigkoOo5fSY_0GyNXlZa9jpeZktTkTewQPAG95meNS8Sl06rHsWdOJ3KIqcuBh1jRiMFHAoe84bBvKlUGpkrzRnlMpyqnDMIM-Ve7XG0pdV5iu4aq8dLdIm1x5eXMTGVrS-J2UKOlVHH50xXIJsivWegrLMh600O4me3ZmZHf_opXx2Oy1fU0Yzps1P_pG5Dr0rTyG6brlG60zOfjkSg-6BNMkAW6dcO4qIkCr0EHO7G1v_QU6N4M5S0Q8nc4WvPXigmmp5V-ZBjgsu65fke-HnRBZM2R5MUdaz6VAkVtt7cPaC63-tWFd_JPJDvgyWqbLPgoZdBW4_TB2oVKYRVsTVg2uO1cLniJS0EBO_g9yaOLqs-5cabxob-eySZbKNhXGlHvnec2P-39jW99Q1zJn90z1gXgYG6b1AeNkM8Lcm9o6-SxKQTsRHX1SekIxiACG_7mOUdfRw1JJtpf3OCkiyLPMPkwEkvC03Re7QWrcsDzDwtDJx2_GWNmqvP9fuGtHSCKypKxEio3RNpBcnoYmxpgU0MWuph2o7qje51L8JQmzIrVlmvYK4HNkJl1Y4rxRVlFWcuEYEPe4sOuVDmiBWNb0MX-ECRKidtVXh9ne7GEy8MBEizoy9KReGkd5T7a96toUwUFtyyEnbZyEyF4urpwXmZXShoFRZosJBTVmIVlXnNI4h5I-2OuyegzV1jxZTVl4K6nTBXicrvrYhBDfzf0oKNUfwfWswkSnv6tyUW66oQVAxnBhzSqadAfZdgRdqbw.01CBczYTV4bFXnF3wGSyfg", "opbs": "25e77982-9a4b-4eae-ba1a-10e9db307217", "response_type": "token id_token", "session_id": "2bd1351d-3e09-4d89-a592-fe8cd872a921", "nonce": "d3ac71ca-d0e9-431b-b570-b0b1c1922ca7", "client_id": "61f2bc8d-4f5b-4f84-89bc-0477327ccc1f", "sid": "059aa572-a898-452f-990a-9483732bdec6", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid clientinfo", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7845efc2-b49b-497b-8c77-de77e0283047", "old_session_id": "ee3590d0-9940-4180-898d-38559bca3a47" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:45" }, { "isJwt": false, "opbrowserState": "a93f4686-3b5d-4636-976e-b7de8c60b585", "deletable": true, "dn": "jansId=6f895a77-e61f-42ac-aa93-4173079dab41,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:45", "creationDate": "2022-11-24T09:16:44", "ttl": 0, "sessionState": "3d67eef5f5d0b20e50d5b61401b2e1c37a76cf413853f10198e6d8bbf6d3a952.ac4c3351-fbd2-4c41-898f-851bddfebcc9", "lastUsedAt": "2022-11-24T09:16:45", "permissionGrantedMap": { "permissionGranted": { "efbe3e45-1762-45d2-91e1-dd70297afde0": true } }, "outsideSid": "c2eb8aa7-ca7d-4f08-84a6-2df11d907bde", "id": "6f895a77-e61f-42ac-aa93-4173079dab41", "state": "authenticated", "sessionAttributes": { "opbs": "a93f4686-3b5d-4636-976e-b7de8c60b585", "response_type": "token id_token", "session_id": "6f895a77-e61f-42ac-aa93-4173079dab41", "nonce": "4ecfecff-9bbe-423d-9fe8-39d4e31cb97e", "client_id": "efbe3e45-1762-45d2-91e1-dd70297afde0", "sid": "c2eb8aa7-ca7d-4f08-84a6-2df11d907bde", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFM1MTIiCn0.ewogICJhZGRpdGlvbmFsX2NsYWltcyIgOiB7CiAgICAibW9yZSIgOiBbICJmb28iLCAiYmFyIiBdLAogICAgImxhc3RfbmFtZSIgOiAiUm9qYXMiLAogICAgImZpcnN0X25hbWUiIDogIkphdmllciIsCiAgICAiYWdlIiA6IDM0CiAgfSwKICAicmZwIiA6ICJlNWMyODYwNC1lNjQxLTQ2YTktYmMxZC00ZmUwY2ExZWEzZmEiLAogICJqdGkiIDogIjMyYmJjNTY4LWMzNzQtNDBjNC1iZjNiLWQ5MDk1ODAyNjhjZSIKfQ.Lw_OS5krGqBYnjDjxJaYRiKA32LmM68q3K21KrvrHxM3JPKMSUfFjEOZPipLk2HqfPtZ4GcP3JX65kiWZGcZgA", "old_session_id": "0f88a249-9d5a-40f8-a054-cc48b70200a2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:44" }, { "isJwt": false, "opbrowserState": "f33ed541-1537-4dc6-a515-0da99b204b25", "deletable": true, "dn": "jansId=580e43e4-aeb8-44cb-ba1f-83156c31cec2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:45", "creationDate": "2022-11-24T09:16:44", "ttl": 0, "sessionState": "3b928d63278ab0568a1bf37006332072e395179fd93e53d6decaf1c8369a0dc2.38ac5972-5c25-4c65-8524-3627d0c96af9", "lastUsedAt": "2022-11-24T09:16:45", "permissionGrantedMap": { "permissionGranted": { "caf77685-0d01-430c-bbfb-001c39598a3b": true } }, "outsideSid": "721fe507-3d00-4a3c-91f0-7a501e5f6529", "id": "580e43e4-aeb8-44cb-ba1f-83156c31cec2", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhY3IiIDogewogICAgICAgICJ2YWx1ZXMiIDogWyAiYmFzaWMiIF0KICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiBudWxsCiAgICB9LAogICAgInVzZXJpbmZvIiA6IHsKICAgICAgImVtYWlsX3ZlcmlmaWVkIiA6IG51bGwsCiAgICAgICJuYW1lIiA6IG51bGwsCiAgICAgICJuaWNrbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAiZW1haWwiIDogbnVsbCwKICAgICAgInBpY3R1cmUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfQogICAgfQogIH0sCiAgInJlc3BvbnNlX3R5cGUiIDogWyAidG9rZW4iLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI5ODg3ZWM0MS0xODA1LTRkMjUtOThmMC1jNzE0Yjg3NmUyYmIiLAogICJub25jZSIgOiAiNzJhNzQ2ZGItNmY0Yy00NTgzLTg0OWQtMmI4YjE4ZjYyMWI2IiwKICAiY2xpZW50X2lkIiA6ICJjYWY3NzY4NS0wZDAxLTQzMGMtYmJmYi0wMDFjMzk1OThhM2IiCn0.IVGmTT6vNir4y9QMgHpmx82XCnhpD-g0Lkd9JWcsNJhQNWg66Gud9y5XLQn33nG9s9rvK6xx3JCtXUjW4hea3Zgs38RW0UsKV0ty8qSxbU-LK0kpuf18L7P4ku47OAW-dWlgaAueuI1DBy1pXsgxfORsHE5KoXOQaQbQbB3UwHz6s40Rb34XSvdsGZUK-OybO_ftaPQPnABlbZTuzdlhrhsuhRpVubnCSLlWJwbEGaJgqzvgdHdznrjwYhCbcmleQCOxMzTE_QxYs8eo0-rMuEDFhzE-JD-JOL8waz3xGJC58MdqnwcXenSuGbXHpvkbxxaaXG8XwiNY11KmScUcTQ", "opbs": "f33ed541-1537-4dc6-a515-0da99b204b25", "response_type": "token id_token", "session_id": "580e43e4-aeb8-44cb-ba1f-83156c31cec2", "nonce": "72a746db-6f4c-4583-849d-2b8b18f621b6", "client_id": "caf77685-0d01-430c-bbfb-001c39598a3b", "sid": "721fe507-3d00-4a3c-91f0-7a501e5f6529", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9887ec41-1805-4d25-98f0-c714b876e2bb", "old_session_id": "57d6d35e-072e-488a-91e3-f90acb6b2a36" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:44" }, { "isJwt": false, "opbrowserState": "451c2e21-8edb-46d5-b46e-a8c205b52967", "deletable": true, "dn": "jansId=a4da3971-bf3f-427a-8151-4f0df3a384f7,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:44", "creationDate": "2022-11-24T09:16:43", "ttl": 0, "sessionState": "562f2b4e99ce154b1f42ddf9a8ee9a256935202bdc87295a440f4323cbb1fb8b.1843fff1-aa10-414d-aada-4b945ef2147b", "lastUsedAt": "2022-11-24T09:16:44", "permissionGrantedMap": { "permissionGranted": { "1ac9ea3c-d9db-4eee-b8e5-42df96570741": true } }, "outsideSid": "cca4d69c-9ab0-4037-8e99-35101e46f76c", "id": "a4da3971-bf3f-427a-8151-4f0df3a384f7", "state": "authenticated", "sessionAttributes": { "opbs": "451c2e21-8edb-46d5-b46e-a8c205b52967", "response_type": "token id_token", "session_id": "a4da3971-bf3f-427a-8151-4f0df3a384f7", "nonce": "78e0338b-8ffa-4b23-8347-7f888b76815d", "client_id": "1ac9ea3c-d9db-4eee-b8e5-42df96570741", "sid": "cca4d69c-9ab0-4037-8e99-35101e46f76c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFMzODQiCn0.ewogICJhZGRpdGlvbmFsX2NsYWltcyIgOiB7CiAgICAibW9yZSIgOiBbICJmb28iLCAiYmFyIiBdLAogICAgImxhc3RfbmFtZSIgOiAiUm9qYXMiLAogICAgImZpcnN0X25hbWUiIDogIkphdmllciIsCiAgICAiYWdlIiA6IDM0CiAgfSwKICAicmZwIiA6ICI4YjQyMDJmZS1mMGUxLTRmY2QtOWM1Yi0yOThmYTllYWIwMzEiLAogICJqdGkiIDogImE3NzliNDdjLTZmY2MtNGQ1ZS05NTllLTI3MWYzMjgwYTEyZiIKfQ.EMXOwHlEWbqfZzjfol_TvvdQJFGebvWjmhR6q-VS_jS-rveEnvNNHu_IKFAKMzS3", "old_session_id": "f96eb59e-1a3c-4b69-a49c-f645e60d0ffa" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:43" }, { "isJwt": false, "opbrowserState": "3eaca84f-1d6c-4f3d-8311-93c962a8ff5c", "deletable": true, "dn": "jansId=0d21ef8c-f3b7-4ebc-bf4e-2a46737e6f3e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:43", "creationDate": "2022-11-24T09:16:43", "ttl": 0, "sessionState": "125534fdbf19a4009678c1b0a9f2f5b90faf761e7f7552e3f8629a20c0391d0c.7b9ed364-cff7-4106-baeb-0ceef3951ae5", "lastUsedAt": "2022-11-24T09:16:43", "permissionGrantedMap": { "permissionGranted": { "9d56dd10-cc1e-4522-97b5-ba8645b268c8": true } }, "outsideSid": "a86fa32a-ad24-4044-9bda-5bd7fbc83ec7", "id": "0d21ef8c-f3b7-4ebc-bf4e-2a46737e6f3e", "state": "authenticated", "sessionAttributes": { "opbs": "3eaca84f-1d6c-4f3d-8311-93c962a8ff5c", "response_type": "token id_token", "session_id": "0d21ef8c-f3b7-4ebc-bf4e-2a46737e6f3e", "nonce": "992a5a6c-64b3-4079-b66a-cb423e4fbc09", "client_id": "9d56dd10-cc1e-4522-97b5-ba8645b268c8", "sid": "a86fa32a-ad24-4044-9bda-5bd7fbc83ec7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "ui_locales": "es", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "48d17398-7a20-4866-99c0-6f4d1e8f8d58", "old_session_id": "ec1a980d-2752-4a5f-902f-95fded7331e3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:43" }, { "isJwt": false, "opbrowserState": "8f66783a-7771-49fd-97fd-6927db0fbee8", "deletable": true, "dn": "jansId=6b08e817-f1ad-4f40-8b15-ea5e2e4cc376,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:43", "creationDate": "2022-11-24T09:16:42", "ttl": 0, "sessionState": "b97a4f49b2ff7f641ba3a4ab996516f2b7a451a01309a59101938d0b7a1d5064.967e922d-a761-411c-a47a-f58d0512a7c9", "lastUsedAt": "2022-11-24T09:16:43", "permissionGrantedMap": { "permissionGranted": { "145ed340-ea20-48a5-a1c4-31cb4ac65cae": true } }, "outsideSid": "5d26df82-e1c7-4466-84cf-451dc2ae0281", "id": "6b08e817-f1ad-4f40-8b15-ea5e2e4cc376", "state": "authenticated", "sessionAttributes": { "opbs": "8f66783a-7771-49fd-97fd-6927db0fbee8", "response_type": "token id_token", "session_id": "6b08e817-f1ad-4f40-8b15-ea5e2e4cc376", "nonce": "b8f374d7-e479-42be-9928-860472f8fc7e", "client_id": "145ed340-ea20-48a5-a1c4-31cb4ac65cae", "sid": "5d26df82-e1c7-4466-84cf-451dc2ae0281", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFMyNTYiCn0.ewogICJhZGRpdGlvbmFsX2NsYWltcyIgOiB7CiAgICAibW9yZSIgOiBbICJmb28iLCAiYmFyIiBdLAogICAgImxhc3RfbmFtZSIgOiAiUm9qYXMiLAogICAgImZpcnN0X25hbWUiIDogIkphdmllciIsCiAgICAiYWdlIiA6IDM0CiAgfSwKICAicmZwIiA6ICIyYzExMmZjZC01OTkyLTQxYTctYjFkOS1lZmQyMzY2N2RjYzMiLAogICJqdGkiIDogImYwZjY0NmIzLTEzY2YtNDRmZi05ZTlkLTMxMjMzMzMwZGYxMyIKfQ.SsEw1j0eKDfGIM0BSBw7ZMDmwAYMbtKrkPllRVB3yB4", "old_session_id": "97e39ff9-7924-4a9b-9ce0-787f4c79d9de" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:42" }, { "isJwt": false, "opbrowserState": "4c641d42-3145-477c-8067-62014d69d81c", "deletable": true, "dn": "jansId=a3d93903-b3b2-4095-9dd5-4e78a4701da6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:42", "creationDate": "2022-11-24T09:16:41", "ttl": 0, "sessionState": "26ef09a6576645a6fd4df11fcf4867111276d2f0f477b6fc61f70a85f25d7ab6.b369df00-ef18-4bc1-b8d5-c725a5dc3bdd", "lastUsedAt": "2022-11-24T09:16:42", "permissionGrantedMap": { "permissionGranted": { "1f7e0607-a399-421e-a358-d9f63b1ff401": true } }, "outsideSid": "f06ac28c-df95-440b-bd9b-e2ccaf0d83a5", "id": "a3d93903-b3b2-4095-9dd5-4e78a4701da6", "state": "authenticated", "sessionAttributes": { "opbs": "4c641d42-3145-477c-8067-62014d69d81c", "response_type": "token", "session_id": "a3d93903-b3b2-4095-9dd5-4e78a4701da6", "nonce": "488f7702-7aa2-4281-b988-6ff0c60a631b", "client_id": "1f7e0607-a399-421e-a358-d9f63b1ff401", "sid": "f06ac28c-df95-440b-bd9b-e2ccaf0d83a5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "438b4cbb-a53b-43a0-9ebd-8c691408b41a", "old_session_id": "2eeb8d96-282c-4e04-ae8f-2b46a545849c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:41" }, { "isJwt": false, "opbrowserState": "88dcc688-ae6a-43e3-ba1c-ed56fe6239c1", "deletable": true, "dn": "jansId=9878baac-ab21-407f-a487-072b8d5537c3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:42", "creationDate": "2022-11-24T09:16:41", "ttl": 0, "sessionState": "4b02dd65b9e2905fd781f2dabebaf249aab641bce9cae228b4040ffa9dfdf361.23ba3272-b279-4e4e-a2cb-fafb9e4ce8af", "lastUsedAt": "2022-11-24T09:16:42", "permissionGrantedMap": { "permissionGranted": { "d3584ce5-47af-41ea-b90a-f73c890feaff": true } }, "outsideSid": "b09e78ba-7c1a-4173-83f0-2195491b2411", "id": "9878baac-ab21-407f-a487-072b8d5537c3", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhY3IiIDogewogICAgICAgICJ2YWx1ZXMiIDogWyAiYmFzaWMiIF0KICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiBudWxsCiAgICB9LAogICAgInVzZXJpbmZvIiA6IHsKICAgICAgImVtYWlsX3ZlcmlmaWVkIiA6IG51bGwsCiAgICAgICJuYW1lIiA6IG51bGwsCiAgICAgICJuaWNrbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAiZW1haWwiIDogbnVsbCwKICAgICAgInBpY3R1cmUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfQogICAgfQogIH0sCiAgInJlc3BvbnNlX3R5cGUiIDogWyAidG9rZW4iLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJlNTUxOTU5MS0xODFlLTQzZDctYTM4Ny1mODE0NTdlZjE1NzciLAogICJub25jZSIgOiAiODNhOGJjYmMtNDE0OC00OTVmLTlhYzItYjE2MWIwODQ4ZWY5IiwKICAiY2xpZW50X2lkIiA6ICJkMzU4NGNlNS00N2FmLTQxZWEtYjkwYS1mNzNjODkwZmVhZmYiCn0.g7X_wIHtDsDpsI45vx7s3iR7MLtf-DhZ2kn_AXbGu4NlSSPtjUodaga9xscSUIOKZAW1m2000NKK-SJq-aBJp3cuoz-9iiPQhq52BeK3lHl6l-2b6tNR8gtA1hvANY-5f66_8913F3FkF8eeh_xOQSEyw92qIFbS2u2Z_nsQbG-6bgBNWnklz_5e6l9JVHT7YX9lXdUSdn6HC33_-RVU8yGNouRze01jiBCkFfLvHAEYN5eUMrR5c_MDZKXDCtg8t6tQN7Qtybxs9HdJkQ5KgkanMQi7BQqmsz1MAKHxO5BynsVI3O4s6uE_gX7-sUJgxXn7RAPwLIJqWL43NNyajw", "opbs": "88dcc688-ae6a-43e3-ba1c-ed56fe6239c1", "response_type": "token id_token", "session_id": "9878baac-ab21-407f-a487-072b8d5537c3", "nonce": "83a8bcbc-4148-495f-9ac2-b161b0848ef9", "client_id": "d3584ce5-47af-41ea-b90a-f73c890feaff", "sid": "b09e78ba-7c1a-4173-83f0-2195491b2411", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e5519591-181e-43d7-a387-f81457ef1577", "old_session_id": "a2030597-2dca-4527-8920-ce44a716d9ac" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:41" }, { "isJwt": false, "opbrowserState": "f32aa744-b6cd-4ab0-bc8d-0a8745db5c89", "deletable": true, "dn": "jansId=97bf8aee-cb56-4842-b3cf-d0706a6ac62a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:42", "creationDate": "2022-11-24T09:16:41", "ttl": 0, "sessionState": "0682e9f532881f97cc596e302d514aef59e20dea711f02974e8738a2ac1542dd.8e689e3d-d729-4240-ae1e-a30b9c38b89d", "lastUsedAt": "2022-11-24T09:16:42", "permissionGrantedMap": { "permissionGranted": { "d1c2b869-090f-46a0-bdb4-7cb195c7050a": true } }, "outsideSid": "1e90271c-66cd-4e31-8f6d-ee979a551d23", "id": "97bf8aee-cb56-4842-b3cf-d0706a6ac62a", "state": "authenticated", "sessionAttributes": { "opbs": "f32aa744-b6cd-4ab0-bc8d-0a8745db5c89", "response_type": "token id_token", "session_id": "97bf8aee-cb56-4842-b3cf-d0706a6ac62a", "nonce": "b71efcd2-4e6e-4661-adfa-da92fbe17362", "client_id": "d1c2b869-090f-46a0-bdb4-7cb195c7050a", "sid": "1e90271c-66cd-4e31-8f6d-ee979a551d23", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgImFkZGl0aW9uYWxfY2xhaW1zIiA6IHsKICAgICJtb3JlIiA6IFsgImZvbyIsICJiYXIiIF0sCiAgICAibGFzdF9uYW1lIiA6ICJSb2phcyIsCiAgICAiZmlyc3RfbmFtZSIgOiAiSmF2aWVyIiwKICAgICJhZ2UiIDogMzQKICB9LAogICJyZnAiIDogIjIyMTQ0NmFiLWFhMDEtNDY2Mi05YzNhLTBlNDJkOTNmNDc4ZSIsCiAgImp0aSIgOiAiNTlhYmViODMtOGJmZi00MzQwLWJhZTUtODM1OTJmMjI5Mzk1Igp9.AZKa0vzg3xBJof9GZn5Vkh5jkVeQkJWbOuyuLySq8eGygLL2x9XYx-OD7qenfkmhLIN385OFQSPuyRpQSKQyX9pwAeyFxeATZR5WMadss1UBFoifk3WIFRrmvBbdZASEPYOnF3X1aInSFULfFOgaBOVSFOPj1GLaM1CkYsI4n5_PNVIT", "old_session_id": "de14d1c7-04d7-4f8b-8cc9-ccb3e854b406" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:41" }, { "isJwt": false, "opbrowserState": "ffad8cd9-e82d-4fe2-b78d-53af4fce33c6", "deletable": true, "dn": "jansId=ac898289-f6aa-45e1-a3d7-f75b79c452a8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:40", "creationDate": "2022-11-24T09:16:40", "ttl": 0, "sessionState": "a949262ec70e5b5120534aebbebb91e0279a0f3ac602507ba9b5cad9126b1ca1.d9b8724a-efbe-4821-b44d-0c597fa57c6b", "lastUsedAt": "2022-11-24T09:16:40", "permissionGrantedMap": { "permissionGranted": { "88c145a3-bf82-4f37-9024-5a317dc9f16e": true } }, "outsideSid": "398b0d0f-198c-4300-8be5-5fad24ff5554", "id": "ac898289-f6aa-45e1-a3d7-f75b79c452a8", "state": "authenticated", "sessionAttributes": { "opbs": "ffad8cd9-e82d-4fe2-b78d-53af4fce33c6", "response_type": "token id_token", "session_id": "ac898289-f6aa-45e1-a3d7-f75b79c452a8", "nonce": "79d72a55-d4b0-4ca4-bf51-d6f2f9ba0bad", "client_id": "88c145a3-bf82-4f37-9024-5a317dc9f16e", "sid": "398b0d0f-198c-4300-8be5-5fad24ff5554", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzM4NCIKfQ.ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgImFkZGl0aW9uYWxfY2xhaW1zIiA6IHsKICAgICJtb3JlIiA6IFsgImZvbyIsICJiYXIiIF0sCiAgICAibGFzdF9uYW1lIiA6ICJSb2phcyIsCiAgICAiZmlyc3RfbmFtZSIgOiAiSmF2aWVyIiwKICAgICJhZ2UiIDogMzQKICB9LAogICJyZnAiIDogImI1ZDczMGI1LTZjNGEtNGM1ZC1hYmQ1LTc3N2JjMTI3ZjY3ZSIsCiAgImp0aSIgOiAiZjAwZmYzODQtNDUwYS00OGI4LWI0MjAtYWEzODNlMGZkMzI3Igp9.CKFuPtyjGoYFI1B3u321-XPIb3uo-8N0mBERkEdTpcjgD--Wn3fxUoRFjtTjH7YtrcemSQh2Qw8XuVbH6irhlKTNxZqlBhYWoOTGUu_YilBBNy4seK_fghZpEbmtetSk", "old_session_id": "23bcb1e0-0fb4-4413-8f99-c453b1a53904" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:40" }, { "isJwt": false, "opbrowserState": "dc64091e-f7d9-4013-904f-2df1fc64c604", "deletable": true, "dn": "jansId=9ba26542-44a1-4353-a094-2354b7cfff67,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:40", "creationDate": "2022-11-24T09:16:39", "ttl": 0, "sessionState": "4a479f8f346844500ec36321d164747d91a65bc033fa8819ffb9f2c95d66481f.62063404-d246-4b86-9cfd-a04e0bb66b57", "lastUsedAt": "2022-11-24T09:16:40", "permissionGrantedMap": { "permissionGranted": { "823426bd-ecfe-4a40-8504-e7bc710f5c19": true } }, "outsideSid": "042f9e37-a5e7-4da5-ba3d-de3f62c1d3e0", "id": "9ba26542-44a1-4353-a094-2354b7cfff67", "state": "authenticated", "sessionAttributes": { "opbs": "dc64091e-f7d9-4013-904f-2df1fc64c604", "response_type": "id_token", "session_id": "9ba26542-44a1-4353-a094-2354b7cfff67", "nonce": "761a79f1-b5c1-4d54-80db-4c7c0ec692fe", "client_id": "823426bd-ecfe-4a40-8504-e7bc710f5c19", "sid": "042f9e37-a5e7-4da5-ba3d-de3f62c1d3e0", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3a964bb9-7e69-49eb-bf21-2ef6c86240bc", "old_session_id": "0e1508f3-4fed-4988-be52-53238145856c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:39" }, { "isJwt": false, "opbrowserState": "b57ba881-2d3c-4eb9-b31a-9df7638cc81a", "deletable": true, "dn": "jansId=7e889ea2-18d7-4f31-a4b6-164792659d4b,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:39", "creationDate": "2022-11-24T09:16:39", "ttl": 0, "sessionState": "b33f63056096be2206f11c434a1eb3be16b3c3b2e105bb76091d899653e1aa17.dd7b41f6-3d30-4132-babe-114114623624", "lastUsedAt": "2022-11-24T09:16:39", "permissionGrantedMap": { "permissionGranted": { "b027f43d-7135-4630-bc66-1e1d13bffdbd": true } }, "outsideSid": "0c6e5a7d-de0d-4c44-af34-60b51ff02d65", "id": "7e889ea2-18d7-4f31-a4b6-164792659d4b", "state": "authenticated", "sessionAttributes": { "opbs": "b57ba881-2d3c-4eb9-b31a-9df7638cc81a", "response_type": "token id_token", "session_id": "7e889ea2-18d7-4f31-a4b6-164792659d4b", "nonce": "4eb6c52a-12eb-409c-9242-2492f5d8f8d7", "client_id": "b027f43d-7135-4630-bc66-1e1d13bffdbd", "sid": "0c6e5a7d-de0d-4c44-af34-60b51ff02d65", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "fb8015bf-034a-4323-bac9-33d8870fc609", "old_session_id": "1d53bacc-d81e-4b44-bb34-9d228fed7f9f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:39" }, { "isJwt": false, "opbrowserState": "bb8eae88-b1d6-45ed-9dc3-08c01e16122f", "deletable": true, "dn": "jansId=479381cc-aef9-4ed9-9ade-7089bd232140,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:39", "creationDate": "2022-11-24T09:16:39", "ttl": 0, "sessionState": "7f645806ea8ac09147b1bc6374b6b394562a8912bf7802090bb6b7501780998b.26c13aa9-6ee2-4b99-8915-bce02cb8ff32", "lastUsedAt": "2022-11-24T09:16:39", "permissionGrantedMap": { "permissionGranted": { "e30dd329-0ec5-4d9d-9cd9-ca72af215eb6": true } }, "outsideSid": "36e6fa26-efc7-4a04-b4c3-f1c22d18d692", "id": "479381cc-aef9-4ed9-9ade-7089bd232140", "state": "authenticated", "sessionAttributes": { "opbs": "bb8eae88-b1d6-45ed-9dc3-08c01e16122f", "response_type": "token id_token", "session_id": "479381cc-aef9-4ed9-9ade-7089bd232140", "nonce": "6d2784a6-259f-4c8d-b61c-a4d970b90e48", "client_id": "e30dd329-0ec5-4d9d-9cd9-ca72af215eb6", "sid": "36e6fa26-efc7-4a04-b4c3-f1c22d18d692", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgImFkZGl0aW9uYWxfY2xhaW1zIiA6IHsKICAgICJtb3JlIiA6IFsgImZvbyIsICJiYXIiIF0sCiAgICAibGFzdF9uYW1lIiA6ICJSb2phcyIsCiAgICAiZmlyc3RfbmFtZSIgOiAiSmF2aWVyIiwKICAgICJhZ2UiIDogMzQKICB9LAogICJyZnAiIDogIjBjNWIyZjEyLThhY2EtNDkwZi04ZDE0LTM1YWI0NGUwMjZkMSIsCiAgImp0aSIgOiAiZTg4OWNiYjktYjU4MS00MzQ5LTgwYzctY2VhMzQxZDJkZDVjIgp9.vcqT72ShTPEGbBjdTUJtDJ3thapNB4cEgVE7aG7uennO0ky2rIa6Zob6YiFnk7eXUTidgOskm6M0PS5Q3TDryA", "old_session_id": "265c1adb-3640-4d34-95fc-8eccb15e6d4e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:39" }, { "isJwt": false, "opbrowserState": "e891da34-d89e-4b60-abe8-7c20e9413371", "deletable": true, "dn": "jansId=3e136b99-c37b-4aee-9383-ee2f9a1ec891,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:39", "creationDate": "2022-11-24T09:16:38", "ttl": 0, "sessionState": "8c37be67eb7160b6eecacbe10575818431ac8915868b6ddebdb6c622213201e9.42bddc55-f3d1-4657-bf74-c68a784a2d57", "lastUsedAt": "2022-11-24T09:16:39", "permissionGrantedMap": { "permissionGranted": { "2ed9a14b-b967-4467-8dc5-b0413f92a46e": true } }, "outsideSid": "96e6f0a5-7d75-4fa1-b0e4-23088fb9ff1a", "id": "3e136b99-c37b-4aee-9383-ee2f9a1ec891", "state": "authenticated", "sessionAttributes": { "opbs": "e891da34-d89e-4b60-abe8-7c20e9413371", "response_type": "token", "session_id": "3e136b99-c37b-4aee-9383-ee2f9a1ec891", "nonce": "80791b7e-0e98-439c-842f-e96105ddccd5", "client_id": "2ed9a14b-b967-4467-8dc5-b0413f92a46e", "sid": "96e6f0a5-7d75-4fa1-b0e4-23088fb9ff1a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c9b6e379-21d8-4dea-b6aa-a36397f89142", "old_session_id": "5e1e4a08-c8e7-460e-adff-2c93de44480c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:38" }, { "isJwt": false, "opbrowserState": "31dff022-fd03-42fc-b4c1-f4c2ed5f8483", "deletable": true, "dn": "jansId=2f22e8d9-8980-48b7-8a80-3641dcff6a3e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:39", "creationDate": "2022-11-24T09:16:38", "ttl": 0, "sessionState": "dac45b31b37f41f39c3f1dc1cdc128690fdd6aadeb20bbeb6d4365c8e606c3ba.84c5c4ec-b475-4a91-a55f-a1a98d7d1772", "lastUsedAt": "2022-11-24T09:16:39", "permissionGrantedMap": { "permissionGranted": { "e0cd15c0-c014-4feb-8686-5f5eecd17333": true } }, "outsideSid": "e0764e7c-8c2b-492e-a803-1b22d05ff9e5", "id": "2f22e8d9-8980-48b7-8a80-3641dcff6a3e", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjA3YzkxN2VmLTk0M2YtNGE5YS05NjFjLWQzY2JhMjhjODFkNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhY3IiIDogewogICAgICAgICJ2YWx1ZXMiIDogWyAiYmFzaWMiIF0KICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiBudWxsCiAgICB9LAogICAgInVzZXJpbmZvIiA6IHsKICAgICAgImVtYWlsX3ZlcmlmaWVkIiA6IG51bGwsCiAgICAgICJuYW1lIiA6IG51bGwsCiAgICAgICJuaWNrbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAiZW1haWwiIDogbnVsbCwKICAgICAgInBpY3R1cmUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfQogICAgfQogIH0sCiAgInJlc3BvbnNlX3R5cGUiIDogWyAidG9rZW4iLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJhMDhkNDc5ZS05OTUwLTQ2ZjAtODk3Yi0xMmI2ZTIyZDFlZTEiLAogICJub25jZSIgOiAiNjY4NTdlMDktZGZlZC00YWM1LTliNmUtNjJiNDg3NGZmMzQzIiwKICAiY2xpZW50X2lkIiA6ICJlMGNkMTVjMC1jMDE0LTRmZWItODY4Ni01ZjVlZWNkMTczMzMiCn0.ALIjjdaKfF3j7XZPWIaY6jFbj_TqfoLZOK0CAOxFPYfXCSYs89HSJYO-QT_Q0EiY3-4jGd2U1gsTXD7716OSKzR4ATDmUU15OmK5uQmtYMQ0yjD3btOWZTSUMfyd5nbbROVU0AV7ukA9ooXDiJzBoyONzV7CNQxrDQokPClUBJD5zlDJ", "opbs": "31dff022-fd03-42fc-b4c1-f4c2ed5f8483", "response_type": "token id_token", "session_id": "2f22e8d9-8980-48b7-8a80-3641dcff6a3e", "nonce": "66857e09-dfed-4ac5-9b6e-62b4874ff343", "client_id": "e0cd15c0-c014-4feb-8686-5f5eecd17333", "sid": "e0764e7c-8c2b-492e-a803-1b22d05ff9e5", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a08d479e-9950-46f0-897b-12b6e22d1ee1", "old_session_id": "596cbcf1-17cf-4178-b344-fe271299d3b6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:38" }, { "isJwt": false, "opbrowserState": "6f396a62-f588-40f2-b440-37695c945d1b", "deletable": true, "dn": "jansId=55c402c7-070c-4efa-969f-c70009c63365,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:38", "creationDate": "2022-11-24T09:16:37", "ttl": 0, "sessionState": "2c0248c752cec7b08f0fe013c653cd92efe6a9aab6abdfda78fa8f821b979cc7.b353d5b9-b333-4bdf-8e08-1ae89013c7e2", "lastUsedAt": "2022-11-24T09:16:38", "permissionGrantedMap": { "permissionGranted": { "944a1e0a-1433-499e-9f05-1e1886b827d7": true } }, "outsideSid": "8dae6c3c-91d8-45b7-9fd0-959dfafda96f", "id": "55c402c7-070c-4efa-969f-c70009c63365", "state": "authenticated", "sessionAttributes": { "opbs": "6f396a62-f588-40f2-b440-37695c945d1b", "response_type": "token code", "session_id": "55c402c7-070c-4efa-969f-c70009c63365", "nonce": "089c9f7e-3d3a-4375-88e1-1f6f6ebd98e3", "client_id": "944a1e0a-1433-499e-9f05-1e1886b827d7", "sid": "8dae6c3c-91d8-45b7-9fd0-959dfafda96f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b6d0bbdb-ceeb-4b1c-9450-567b24c138d7", "old_session_id": "a14e69ee-2db7-4c4f-9a04-f38d876ae66f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:37" }, { "isJwt": false, "opbrowserState": "4b547a53-cf6f-4113-9df2-2218697ad693", "deletable": true, "dn": "jansId=2ab0ceaf-8d7c-4d5d-b8e6-6e9dc52e0d3d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:37", "creationDate": "2022-11-24T09:16:36", "ttl": 0, "sessionState": "388b54d388d2e590d3b98c3cf8b0ff33b9dd0945ce55dcc0aedcab47628e052b.9de08551-d350-4f2e-84b1-b8a0fdfabbe8", "lastUsedAt": "2022-11-24T09:16:37", "permissionGrantedMap": { "permissionGranted": { "9d79318d-80c3-4d51-adab-005de734777a": true } }, "outsideSid": "ed0a4fa7-ac8a-428c-9441-c7b6a5b0e4b7", "id": "2ab0ceaf-8d7c-4d5d-b8e6-6e9dc52e0d3d", "state": "authenticated", "sessionAttributes": { "opbs": "4b547a53-cf6f-4113-9df2-2218697ad693", "response_type": "code", "session_id": "2ab0ceaf-8d7c-4d5d-b8e6-6e9dc52e0d3d", "nonce": "f9beb891-e778-449e-89b2-c185ca00334d", "client_id": "9d79318d-80c3-4d51-adab-005de734777a", "sid": "ed0a4fa7-ac8a-428c-9441-c7b6a5b0e4b7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "28e67b63-5dac-4ac2-b200-0e599fb215b0", "old_session_id": "53c64d5a-2061-472d-ac64-18608912f7c5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:36" }, { "isJwt": false, "opbrowserState": "27425afa-e46e-4fcb-85b6-37c2b1002aa2", "deletable": true, "dn": "jansId=3d2b4c30-0b10-4e72-9911-6a14151dfcaa,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:36", "creationDate": "2022-11-24T09:16:36", "ttl": 0, "sessionState": "2ab0653df173778aae153608baa838d800c3432cae5b7cac5d84584f0ab927c0.7a01b7db-bf39-41cc-be4d-b7f79b05b6b6", "lastUsedAt": "2022-11-24T09:16:37", "permissionGrantedMap": { "permissionGranted": { "e3c7b0b7-de95-413b-abf9-2b056024d0a4": true } }, "outsideSid": "054da119-d865-4e56-83ef-900f5045ddf5", "id": "3d2b4c30-0b10-4e72-9911-6a14151dfcaa", "state": "authenticated", "sessionAttributes": { "opbs": "27425afa-e46e-4fcb-85b6-37c2b1002aa2", "response_type": "token code id_token", "session_id": "3d2b4c30-0b10-4e72-9911-6a14151dfcaa", "nonce": "72cca735-8a60-4c3c-bdde-187f71a2f282", "client_id": "e3c7b0b7-de95-413b-abf9-2b056024d0a4", "sid": "054da119-d865-4e56-83ef-900f5045ddf5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "efe758f0-b35b-4b1e-8b7f-3abffa82c82c", "old_session_id": "e3f568fc-1dfc-4ce9-b55b-5e0cd1eef98d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:36" }, { "isJwt": false, "opbrowserState": "146291c4-c288-4d4a-8016-d484364f43a2", "deletable": true, "dn": "jansId=5983358f-2ad0-46ee-b20e-0a0f0b2b1323,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:36", "creationDate": "2022-11-24T09:16:35", "ttl": 0, "sessionState": "516f06f905644e33d314c17a76fd9150b08814dddccdd51c8fef9ad88f612e31.b24e7c24-426e-47e7-a082-9622fa1453dc", "lastUsedAt": "2022-11-24T09:16:36", "permissionGrantedMap": { "permissionGranted": { "c010e573-9359-473a-8135-b53055efeaa8": true } }, "outsideSid": "c82c6f9e-9130-42ce-8f60-da8932b4bea1", "id": "5983358f-2ad0-46ee-b20e-0a0f0b2b1323", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhY3IiIDogewogICAgICAgICJ2YWx1ZXMiIDogWyAiYmFzaWMiIF0KICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiBudWxsCiAgICB9LAogICAgInVzZXJpbmZvIiA6IHsKICAgICAgImVtYWlsX3ZlcmlmaWVkIiA6IG51bGwsCiAgICAgICJuYW1lIiA6IG51bGwsCiAgICAgICJuaWNrbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAiZW1haWwiIDogbnVsbCwKICAgICAgInBpY3R1cmUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfQogICAgfQogIH0sCiAgInJlc3BvbnNlX3R5cGUiIDogWyAidG9rZW4iLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICJlYzhmYTI2My01OTA2LTRmOGItYjc3YS0zZTdmYWMzZWMwZTQiLAogICJub25jZSIgOiAiZDQ5ZThhMTgtOWZiNS00YmVjLWFmMGYtMzJiMjgxNTgzNzlmIiwKICAiY2xpZW50X2lkIiA6ICJjMDEwZTU3My05MzU5LTQ3M2EtODEzNS1iNTMwNTVlZmVhYTgiCn0.CfUq7VyVS8T2SNPTozxAVUaI8fkjr3tYK6YjGOPKH9viyPXfC9jp5NDJHb_hDVKqrBKwS2AJafLstXpBehBi7Q", "opbs": "146291c4-c288-4d4a-8016-d484364f43a2", "response_type": "token id_token", "session_id": "5983358f-2ad0-46ee-b20e-0a0f0b2b1323", "nonce": "d49e8a18-9fb5-4bec-af0f-32b28158379f", "client_id": "c010e573-9359-473a-8135-b53055efeaa8", "sid": "c82c6f9e-9130-42ce-8f60-da8932b4bea1", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ec8fa263-5906-4f8b-b77a-3e7fac3ec0e4", "old_session_id": "e678834b-5b85-4404-a056-01cf44687849" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:35" }, { "isJwt": false, "opbrowserState": "31a86d46-b442-4131-963e-865e1fadf8b7", "deletable": true, "dn": "jansId=6f0e25db-6c52-483a-89fc-50454382cc99,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:35", "creationDate": "2022-11-24T09:16:34", "ttl": 0, "sessionState": "a599bed4bd6c9c35441bd3956c671db780262eee2db273590b6f1e44e6a0f87b.b181f795-1c16-49ff-94bc-1352a917ab32", "lastUsedAt": "2022-11-24T09:16:35", "permissionGrantedMap": { "permissionGranted": { "47125e59-392e-4f27-9197-99aa1a8df334": true } }, "outsideSid": "7b117156-8415-4aaf-99ca-300a4c84d210", "id": "6f0e25db-6c52-483a-89fc-50454382cc99", "state": "authenticated", "sessionAttributes": { "opbs": "31a86d46-b442-4131-963e-865e1fadf8b7", "response_type": "token code id_token", "session_id": "6f0e25db-6c52-483a-89fc-50454382cc99", "nonce": "aedd5efa-77c4-4fa3-a205-3608fa6699a9", "client_id": "47125e59-392e-4f27-9197-99aa1a8df334", "sid": "7b117156-8415-4aaf-99ca-300a4c84d210", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a8f73b05-01c2-465f-b67f-10fdf0760437", "old_session_id": "cd7abac6-de89-4802-bef3-f5802f9bf880" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:34" }, { "isJwt": false, "opbrowserState": "21eae1d9-eb3a-451a-936c-b4a6de3bc24f", "deletable": true, "dn": "jansId=8097d3bb-3fc7-4d94-a48b-a7a8ad746b79,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:35", "creationDate": "2022-11-24T09:16:34", "ttl": 0, "sessionState": "d2fb947b299949d8a25909e5d9ce36f12c108c626731395d4657c0f440f48118.10432367-a207-480e-a75b-870c54ea1080", "lastUsedAt": "2022-11-24T09:16:35", "permissionGrantedMap": { "permissionGranted": { "c336bcf3-8bbf-4ec4-92df-47a33678f53a": true } }, "outsideSid": "250a3d3f-f24c-4805-b0de-b773623c631f", "id": "8097d3bb-3fc7-4d94-a48b-a7a8ad746b79", "state": "authenticated", "sessionAttributes": { "opbs": "21eae1d9-eb3a-451a-936c-b4a6de3bc24f", "response_type": "token id_token", "session_id": "8097d3bb-3fc7-4d94-a48b-a7a8ad746b79", "nonce": "30ff6b49-f72e-470d-9335-e56f5b9e0922", "client_id": "c336bcf3-8bbf-4ec4-92df-47a33678f53a", "sid": "250a3d3f-f24c-4805-b0de-b773623c631f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "eyJraWQiOiI2ZmIxODU5YS01NGQ5LTQ3YzYtYTI5My05MmNlMmNlZTYzZTAiLCJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4Q0JDK0hTMjU2IiwiYWxnIjoiUlNBMV81In0.B3b7wboY5VmffKlBnc6H652NcAJA13NrdTK7P3cDMZ3gnJxwKpmJ21otiyxIAKcOSKfW7kI8f1uc-_w5m62XUf75Omv2piMwqj2eSXDuH4_KNpmkxmhG7cRB0glkSLIG-vM15qeA1308aLKw39iUCYS8FPkbQrxCOy03RFcutY-NGtKUHZazsve3w6Qmsm50Z9bIzwB1LrgG1zRxXjff66UAgYKoo0o-DR5wRThoc5kJ3uR0w6xlOAiKekyfz4XpQho8jdbrphPKwBeJafeHQuurtqqCB9fe6QuVsQT2jmkwTRttQ2dOLyVU74X17BB7LRrL5gtuReZ87LkmpedOJA.9xDcVkzi-mIR0dE78kMK8w.S-kaOQFzjQcwIc7YeqjeehLZNb9jdyDfHwBAoGAhMR2MRWBqjAUkTFg_VOgcCGU0Xqlt1_R4k9HshcbMvBOryj4KwBIhrwUP3qcT2sQ4CAgbHVjT1JMEfHMuymnAL2KceT--PpP60DN8xWp4Ahwtpnas4U3y9rQ-Pss5cyGePU5Bf0eUZVPVuC31wRW9unWhUVLD3i3sr6VXKvAGFDIl5_jviIhVbsUSEF_IQpYVZIBiSFXzMxcUBqlCRZ9Gt4wigJf1iVdA3F9nhcHnQ9brept88TDY-nxF-3lk9jvLQ1yJECwqvmexlYEqwCQE66Jjl87dnd3KJ6ceS1wBtOShzIRxpQaX39aGyxgKnGeimzaoxUdL3UepaNj5zJBZ7yuV4j0-Zdc6oHgNeelU0MU_92ADPNJcRj6bQ8vvy3PDtR4.XA-6Is796yr8Uwwx5sIoalZtDVZQNIPuwGg9vBMAHf0", "old_session_id": "964b9b8e-6595-497f-96b3-07d3edd8b96a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:34" }, { "isJwt": false, "opbrowserState": "f3567024-6026-426c-bbeb-b81da00e44fd", "deletable": true, "dn": "jansId=7a6d115e-6c21-4269-b331-b880be399fe2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:34", "creationDate": "2022-11-24T09:16:33", "ttl": 0, "sessionState": "86e2bae11286d4409fa74b779ba551e0d01f80dba84540fe434b818973b04f18.6d12c814-80b5-49fe-891a-f64ebc38f64a", "lastUsedAt": "2022-11-24T09:16:34", "permissionGrantedMap": { "permissionGranted": { "9a172037-c73d-4d8a-8e74-882e6b028490": true } }, "outsideSid": "cb072f69-77eb-471b-bfa9-7138c1d637a2", "id": "7a6d115e-6c21-4269-b331-b880be399fe2", "state": "authenticated", "sessionAttributes": { "opbs": "f3567024-6026-426c-bbeb-b81da00e44fd", "response_type": "token code", "session_id": "7a6d115e-6c21-4269-b331-b880be399fe2", "nonce": "c634078e-d2b0-42e2-8d78-6fd68dec6344", "client_id": "9a172037-c73d-4d8a-8e74-882e6b028490", "sid": "cb072f69-77eb-471b-bfa9-7138c1d637a2", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "453a2e38-6b15-4b13-a27c-995dcb50977e", "old_session_id": "f5dfbaa4-5eca-49ef-9edb-dd150bfa91eb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:33" }, { "isJwt": false, "opbrowserState": "91c364ab-0d6a-4f95-87eb-3699c14c3b3d", "deletable": true, "dn": "jansId=0d0a746a-312a-4cd9-8eb8-2e6950831ba9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:33", "creationDate": "2022-11-24T09:16:33", "ttl": 0, "sessionState": "02995cace21e7204963bf1039b5d4d05faf41b413d3bcb0ccadd6357c4cd9395.f7108691-d009-4260-9942-26d504ac33b6", "lastUsedAt": "2022-11-24T09:16:33", "permissionGrantedMap": { "permissionGranted": { "90d3c3f3-c0b7-485f-8dc3-7c46c8eedbce": true } }, "outsideSid": "f00f8891-5a63-4367-88d5-c54f0c0b44eb", "id": "0d0a746a-312a-4cd9-8eb8-2e6950831ba9", "state": "authenticated", "sessionAttributes": { "opbs": "91c364ab-0d6a-4f95-87eb-3699c14c3b3d", "response_type": "token id_token", "session_id": "0d0a746a-312a-4cd9-8eb8-2e6950831ba9", "nonce": "ad62b88c-76ad-4b5c-8384-add2eff92b51", "client_id": "90d3c3f3-c0b7-485f-8dc3-7c46c8eedbce", "sid": "f00f8891-5a63-4367-88d5-c54f0c0b44eb", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.OONVyEi3SF6GSXhgpTABKJ2jgIVstBDAhATKTsXM8lD01N4XV-xkYg.fEjI0q3WUm5ZPykm.US_nVcy2ppmTnxJWBiXKicwsqLECkMU8JwKQZdH6YxsDXH1hjDrW1Wr6i4UclC4oYeO1lpN6xQt8bV2MXygf_c2FvU1hD6rBAgNHABmV8N1HIBc-m9MQwcLtKjyzg3H8rDIUJP07ASDqLIbIxJEl67ATUeKiiaWhxrCoYH7GfNz04DeTfII3EzcT0FSG53kLy0Uak_VWVulgkUszxfutRT6sNtj7E9_3oEePX2qiu3749kiwrN5nidwKdUidDNCOn50lrOcG71uisPnkZykUtsKl27G4sOKtpyDO_vd2Sci8LnacshU8zUXheu0gyBfXtIO_fZVVLQ.X3bvu9ERO2sBHi3Dt5xHvA", "old_session_id": "cf455a0d-504e-4f9f-ae74-83fb4f5461b3" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:33" }, { "isJwt": false, "opbrowserState": "e8af6a48-92c5-4fcf-a780-8115344b73a9", "deletable": true, "dn": "jansId=a6fbc9ec-4395-42b5-96ec-bd5eefd03de1,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:31", "creationDate": "2022-11-24T09:16:31", "ttl": 0, "sessionState": "e516401af55b28b26f1979190f9cb52e23813bc526a85a795af7a53dd20b4081.75715218-b2fb-4a95-ac0c-69ca5c4c0e47", "lastUsedAt": "2022-11-24T09:16:31", "permissionGrantedMap": { }, "outsideSid": "bb0f77d6-107d-4c80-af37-17ecbe60fade", "id": "a6fbc9ec-4395-42b5-96ec-bd5eefd03de1", "state": "authenticated", "sessionAttributes": { "opbs": "e8af6a48-92c5-4fcf-a780-8115344b73a9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:31" }, { "isJwt": false, "opbrowserState": "83c79c7f-a92e-4dbc-a5b5-c78280692242", "deletable": true, "dn": "jansId=6061c8bf-ef6e-4ced-9d25-99d53fc75049,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:31", "creationDate": "2022-11-24T09:16:30", "ttl": 0, "sessionState": "a5bb081be3f223311974150e5e390319123c799c70e2bcdf8cdebe79ff529bef.82486783-33d2-41e7-91c1-4d5f70558235", "lastUsedAt": "2022-11-24T09:16:31", "permissionGrantedMap": { "permissionGranted": { "d8d211bb-210e-460e-883a-408649a43cc7": true } }, "outsideSid": "6f971652-7831-49ef-83dd-a78473699474", "id": "6061c8bf-ef6e-4ced-9d25-99d53fc75049", "state": "authenticated", "sessionAttributes": { "opbs": "83c79c7f-a92e-4dbc-a5b5-c78280692242", "response_type": "id_token token", "session_id": "6061c8bf-ef6e-4ced-9d25-99d53fc75049", "nonce": "de9aa83c-448e-460b-aac0-6dcdd8920cbc", "client_id": "d8d211bb-210e-460e-883a-408649a43cc7", "response_mode": "query", "sid": "6f971652-7831-49ef-83dd-a78473699474", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8f0e7d8b-e69a-479f-80d1-063400bcbd8a", "old_session_id": "783971bd-0c83-42c9-9ec2-9e5ec6cca4f6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:30" }, { "isJwt": false, "opbrowserState": "eeef8354-074b-43ce-936f-d3fd8c04a63f", "deletable": true, "dn": "jansId=31d8e50e-fa39-46ad-ab07-123db4b20de5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:31", "creationDate": "2022-11-24T09:16:30", "ttl": 0, "sessionState": "3f675aaf2ba03073ccc6b4c1a20a483790dc246b5e294abe4bf3f87494c22c47.9813c520-6c58-455b-bba5-6cf0f2508f80", "lastUsedAt": "2022-11-24T09:16:31", "permissionGrantedMap": { "permissionGranted": { "9b8d2b72-e0d1-41a5-ac45-99feb0242930": true } }, "outsideSid": "03de941e-7ae9-4ea1-91d7-0deff4614db9", "id": "31d8e50e-fa39-46ad-ab07-123db4b20de5", "state": "authenticated", "sessionAttributes": { "opbs": "eeef8354-074b-43ce-936f-d3fd8c04a63f", "response_type": "code", "session_id": "31d8e50e-fa39-46ad-ab07-123db4b20de5", "client_id": "9b8d2b72-e0d1-41a5-ac45-99feb0242930", "sid": "03de941e-7ae9-4ea1-91d7-0deff4614db9", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3322f4c5-908f-4a09-9132-ca7d03353f89", "prompt": "consent", "old_session_id": "ce5105a2-ee60-41e7-aef7-935c6fb3ddc1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:30" }, { "isJwt": false, "opbrowserState": "72c99951-2f1f-4718-b18c-da9a56f49892", "deletable": true, "dn": "jansId=0091054c-da66-4c32-bbf9-a65808a87e29,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:30", "creationDate": "2022-11-24T09:16:29", "ttl": 0, "sessionState": "85e889c235d0229434800336ff070918005a70c74b0c0c2c108c4105b1b72fc9.1c76600f-a03f-4a9c-adea-afccdfb59477", "lastUsedAt": "2022-11-24T09:16:30", "permissionGrantedMap": { "permissionGranted": { "3c25c2fd-def9-4694-96a4-3c22cf0fe6b7": true } }, "outsideSid": "dd13826c-4aa5-4767-aa4e-d9aa75362396", "id": "0091054c-da66-4c32-bbf9-a65808a87e29", "state": "authenticated", "sessionAttributes": { "opbs": "72c99951-2f1f-4718-b18c-da9a56f49892", "response_type": "id_token", "session_id": "0091054c-da66-4c32-bbf9-a65808a87e29", "nonce": "947e544a-b155-447f-b93b-0aab251c0363", "client_id": "3c25c2fd-def9-4694-96a4-3c22cf0fe6b7", "response_mode": "query", "sid": "dd13826c-4aa5-4767-aa4e-d9aa75362396", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "03bc3de6-ba7b-49c9-a688-f3aaf0092a68", "old_session_id": "4ee9672d-748c-4866-b259-2c71eef6801e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:29" }, { "isJwt": false, "opbrowserState": "34f47027-1719-41cb-b11f-758c319ea031", "deletable": true, "dn": "jansId=091596cf-3dd3-4954-a809-d6e22c0ec6a0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:29", "creationDate": "2022-11-24T09:16:29", "ttl": 0, "sessionState": "623b84b72fa7498e0cf506236a937373151cf798c0a706bb84075e58fa380183.40dfd7fb-f1a3-481c-b085-49883b507cc8", "lastUsedAt": "2022-11-24T09:16:29", "permissionGrantedMap": { "permissionGranted": { "ef12bb85-fa48-447f-bffe-862da662a523": true } }, "outsideSid": "ccd67148-6a42-4ef5-80ed-76771ad25259", "id": "091596cf-3dd3-4954-a809-d6e22c0ec6a0", "state": "authenticated", "sessionAttributes": { "opbs": "34f47027-1719-41cb-b11f-758c319ea031", "response_type": "code", "session_id": "091596cf-3dd3-4954-a809-d6e22c0ec6a0", "client_id": "ef12bb85-fa48-447f-bffe-862da662a523", "sid": "ccd67148-6a42-4ef5-80ed-76771ad25259", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "71922118-7bb4-4c7b-af0e-26c8fe4df74c", "prompt": "consent", "old_session_id": "abbdd357-f851-40c8-a579-c715438fe7f6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:29" }, { "isJwt": false, "opbrowserState": "692f0001-9cb0-49ff-9311-17110ad4f999", "deletable": true, "dn": "jansId=3156572a-9b9e-4f0d-bd6a-e48f803e6087,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:29", "creationDate": "2022-11-24T09:16:28", "ttl": 0, "sessionState": "95e4bfab63274352efe76329764a38b90501188adac519d57d6289995983909f.20840279-e601-47d8-954e-58b61793c696", "lastUsedAt": "2022-11-24T09:16:29", "permissionGrantedMap": { "permissionGranted": { "641a2f4c-74fe-48a9-85f9-a7f9f56c2337": true } }, "outsideSid": "f6cec022-5678-4a40-96d5-b202d321f1f8", "id": "3156572a-9b9e-4f0d-bd6a-e48f803e6087", "state": "authenticated", "sessionAttributes": { "opbs": "692f0001-9cb0-49ff-9311-17110ad4f999", "response_type": "code id_token", "session_id": "3156572a-9b9e-4f0d-bd6a-e48f803e6087", "nonce": "2a4074f9-0888-4aa6-aabe-00a48c779de8", "client_id": "641a2f4c-74fe-48a9-85f9-a7f9f56c2337", "sid": "f6cec022-5678-4a40-96d5-b202d321f1f8", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email phone user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "84e5d53a-9517-488b-8340-9ef426a3a9f9", "old_session_id": "e95d8e1e-93ec-4cc4-b720-cd1cd2370abd" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:28" }, { "isJwt": false, "opbrowserState": "26b17d89-3d85-4072-9b2e-703f07c76503", "deletable": true, "dn": "jansId=3b4fd84b-8709-425c-9ad3-4a4087a16152,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:29", "creationDate": "2022-11-24T09:16:28", "ttl": 0, "sessionState": "186c40914d89d82c40a83f1a8b9425edb2e6af4d36be4604d04e0ed597714290.91bd3a3c-3afa-4040-a7db-a99cf25a5d49", "lastUsedAt": "2022-11-24T09:16:29", "permissionGrantedMap": { "permissionGranted": { "64f6e0c0-d153-4d27-8dc0-c1cd84a7e037": true } }, "outsideSid": "175b97f2-3bd9-4316-9225-ffbe90e2551d", "id": "3b4fd84b-8709-425c-9ad3-4a4087a16152", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiwgInBob25lIiwgInVzZXJfbmFtZSIsICJjbGllbnRpbmZvIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhY3IiIDogewogICAgICAgICJ2YWx1ZXMiIDogWyAiYmFzaWMiIF0KICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiBudWxsCiAgICB9LAogICAgInVzZXJpbmZvIiA6IHsKICAgICAgImVtYWlsX3ZlcmlmaWVkIiA6IG51bGwsCiAgICAgICJuYW1lIiA6IG51bGwsCiAgICAgICJuaWNrbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAiZW1haWwiIDogbnVsbCwKICAgICAgInBpY3R1cmUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfQogICAgfQogIH0sCiAgInJlc3BvbnNlX3R5cGUiIDogWyAiY29kZSIsICJ0b2tlbiIsICJpZF90b2tlbiIgXSwKICAicmVkaXJlY3RfdXJpIiA6ICJodHRwcyUzQSUyRiUyRmplbmtpbnMtYnVpbGQuamFucy5pbyUyRmphbnMtYXV0aC1ycCUyRmhvbWUuaHRtIiwKICAic3RhdGUiIDogIjU0MzFmYjhmLWFiYTctNDkxNi05M2YzLTBiMzNhYzAyMTUzMiIsCiAgIm5vbmNlIiA6ICI3Y2ViZTE2Ny0zZGZiLTQ1NmItOWZlOC1kMTk5ZDlmMGE3NDAiLAogICJjbGllbnRfaWQiIDogIjY0ZjZlMGMwLWQxNTMtNGQyNy04ZGMwLWMxY2Q4NGE3ZTAzNyIKfQ.AKasE5GSEUA1nD9swvvZhKDe2QjeV3VHLvEY4EQBMidQPdYNIYmtN3zK4naUgVTWG_FFckcjiFgDdyVGflz-G36HzMoTY7gk97oZiraH8hegAt94JoJKRhFX7dazKNdk7Rk5uZDxgN7STZ6ez6vMtys3OSKZgWerMsmedA5AwNqnfZ64o4IRgOk_wE6caWzC8JCKMP5U9u9ef8NIUXLbpx8BpRgPsC4V9g0vpthumkpCeH1-ZGfXYsIB7rukKDbVGIhATUNb42BYbQH68co3q-NeSUqkCwBxJil87mTUlMHhTJ-6BSFL1J-1kf-4U5kF55jrMiyMqYvA5WA5sB8Slg", "opbs": "26b17d89-3d85-4072-9b2e-703f07c76503", "response_type": "code token id_token", "session_id": "3b4fd84b-8709-425c-9ad3-4a4087a16152", "nonce": "7cebe167-3dfb-456b-9fe8-d199d9f0a740", "client_id": "64f6e0c0-d153-4d27-8dc0-c1cd84a7e037", "sid": "175b97f2-3bd9-4316-9225-ffbe90e2551d", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email phone user_name clientinfo", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5431fb8f-aba7-4916-93f3-0b33ac021532", "old_session_id": "91f01593-dac0-4d8b-8277-6d6eeca4fcca" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:28" }, { "isJwt": false, "opbrowserState": "fc3688fa-c882-42b8-89ea-6176384a38cf", "deletable": true, "dn": "jansId=4d4a6c90-537c-4c14-b22e-61e6fb46a970,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:28", "creationDate": "2022-11-24T09:16:27", "ttl": 0, "sessionState": "5bef00758ecf168d6ff1dba919c1af5e36a0edb85ad9f4c8afe8838eec609c7a.651ff906-8967-4a3a-81d4-454bb86deb22", "lastUsedAt": "2022-11-24T09:16:28", "permissionGrantedMap": { "permissionGranted": { "8d2342d8-87cc-4320-b075-818d92cefb55": true } }, "outsideSid": "dd4e1c27-047d-41bb-a16b-bf2d6581bd08", "id": "4d4a6c90-537c-4c14-b22e-61e6fb46a970", "state": "authenticated", "sessionAttributes": { "opbs": "fc3688fa-c882-42b8-89ea-6176384a38cf", "response_type": "code token", "session_id": "4d4a6c90-537c-4c14-b22e-61e6fb46a970", "nonce": "84c00f93-abd7-4916-9683-880764eba88a", "client_id": "8d2342d8-87cc-4320-b075-818d92cefb55", "response_mode": "query", "sid": "dd4e1c27-047d-41bb-a16b-bf2d6581bd08", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "406be13b-5dd1-457b-857c-0044ee6a63c7", "old_session_id": "e82dde08-820f-4c25-a13c-7f3db841aa03" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:27" }, { "isJwt": false, "opbrowserState": "bc0e51e5-338f-4025-b6ec-7c6da81a3ea6", "deletable": true, "dn": "jansId=43c5cf87-2479-4597-931b-7b13d140ffe4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:28", "creationDate": "2022-11-24T09:16:27", "ttl": 0, "sessionState": "bedd1cdde32b200918da53e313c02a3a378fad4ec01060eeec0552a2d9b15ae4.43f0071a-5961-4c68-a0a8-4a6ee4ca8574", "lastUsedAt": "2022-11-24T09:16:28", "permissionGrantedMap": { "permissionGranted": { "063d2914-4267-44bd-961f-404e0512ffb1": true } }, "outsideSid": "51aab642-cb71-41a1-a112-bed480a59945", "id": "43c5cf87-2479-4597-931b-7b13d140ffe4", "state": "authenticated", "sessionAttributes": { "opbs": "bc0e51e5-338f-4025-b6ec-7c6da81a3ea6", "response_type": "code", "session_id": "43c5cf87-2479-4597-931b-7b13d140ffe4", "client_id": "063d2914-4267-44bd-961f-404e0512ffb1", "sid": "51aab642-cb71-41a1-a112-bed480a59945", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3f74dd23-4ab8-4901-9683-1bff58d31a3b", "old_session_id": "88845abb-c4d0-42ab-a24c-c4c6d746b2a5" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:27" }, { "isJwt": false, "opbrowserState": "a1efedc0-4f5d-4407-b4a1-864b4730dcf2", "deletable": true, "dn": "jansId=6fb8ed29-a483-4d1c-9b13-d47601b86f69,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:27", "creationDate": "2022-11-24T09:16:26", "ttl": 0, "sessionState": "1c503b4c2d048e0ee054ebd265d244e69e0bd153b85df84a67c4336d11f1a757.87d33741-0388-4a03-80dd-b60bb3440949", "lastUsedAt": "2022-11-24T09:16:27", "permissionGrantedMap": { "permissionGranted": { "fa7ceefd-2a73-4ef8-bcec-c57362a18a70": true } }, "outsideSid": "d795be9a-13a0-4a53-932a-f018effc8b5c", "id": "6fb8ed29-a483-4d1c-9b13-d47601b86f69", "state": "authenticated", "sessionAttributes": { "opbs": "a1efedc0-4f5d-4407-b4a1-864b4730dcf2", "response_type": "code id_token token", "session_id": "6fb8ed29-a483-4d1c-9b13-d47601b86f69", "nonce": "bde74c18-30fa-45db-8962-55ff1f3a398e", "client_id": "fa7ceefd-2a73-4ef8-bcec-c57362a18a70", "response_mode": "query", "sid": "d795be9a-13a0-4a53-932a-f018effc8b5c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6f4db40e-4dad-45fc-a976-d68592204416", "old_session_id": "3dbf264f-59e6-4005-9ba7-dc61bc032284" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:26" }, { "isJwt": false, "opbrowserState": "7ff73491-0ae1-44cb-950b-f03e77943b90", "deletable": true, "dn": "jansId=81ec4dcd-ce8d-4393-a9b2-04b86887b760,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:26", "creationDate": "2022-11-24T09:16:25", "ttl": 0, "sessionState": "76d7d501106c091871cac987e3309b4b909fbe20309b127c74fc101f23e15e98.089d7524-d0f5-4a18-9f7a-7d17cf3a4881", "lastUsedAt": "2022-11-24T09:16:26", "permissionGrantedMap": { "permissionGranted": { "d76f7665-9fde-43cf-86ec-962a7b985351": true } }, "outsideSid": "be5c8141-9f62-47e2-9d06-f3a789574c06", "id": "81ec4dcd-ce8d-4393-a9b2-04b86887b760", "state": "authenticated", "sessionAttributes": { "opbs": "7ff73491-0ae1-44cb-950b-f03e77943b90", "response_type": "code", "session_id": "81ec4dcd-ce8d-4393-a9b2-04b86887b760", "client_id": "d76f7665-9fde-43cf-86ec-962a7b985351", "sid": "be5c8141-9f62-47e2-9d06-f3a789574c06", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6ac499c1-c929-4a66-be36-2bb295f08544", "prompt": "consent", "old_session_id": "4ad5b1db-302b-4d9c-8078-af7c3824444e" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:25" }, { "isJwt": false, "opbrowserState": "e0025e28-eacd-4175-87b0-75ed8220f7dc", "deletable": true, "dn": "jansId=4f00f32f-8da8-4454-b46f-c8e31bfd8c4f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:25", "creationDate": "2022-11-24T09:16:24", "ttl": 0, "sessionState": "40c5eb7ab5b17a65a3c138a39021272fc5be4a5302e5a15e73f714b93b52290d.0d14cfbe-ee80-4aea-9ee8-9e56666b86bc", "lastUsedAt": "2022-11-24T09:16:25", "permissionGrantedMap": { "permissionGranted": { "428765f9-631e-411b-a2bd-869d6f38dd0a": true } }, "outsideSid": "8fef644d-5d8a-40a3-af87-3cf484d6cb6f", "id": "4f00f32f-8da8-4454-b46f-c8e31bfd8c4f", "state": "authenticated", "sessionAttributes": { "opbs": "e0025e28-eacd-4175-87b0-75ed8220f7dc", "response_type": "code id_token", "session_id": "4f00f32f-8da8-4454-b46f-c8e31bfd8c4f", "nonce": "2f3806b1-5117-4b46-97c8-8224b1390445", "client_id": "428765f9-631e-411b-a2bd-869d6f38dd0a", "response_mode": "query", "sid": "8fef644d-5d8a-40a3-af87-3cf484d6cb6f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f115f2f8-e041-4a05-a11a-a0795fa52c2d", "old_session_id": "8101c52b-21b1-47de-ac0e-91edefd0f085" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:24" }, { "isJwt": false, "opbrowserState": "4fcdd72f-ce50-4c3f-a5a3-ab4d88f9e185", "deletable": true, "dn": "jansId=0cfad581-4553-4c9b-9b62-7f1e28d08230,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:24", "creationDate": "2022-11-24T09:16:23", "ttl": 0, "sessionState": "3c9a1b13027558d256d537db4de93174e55e08e754993a2b29763a290f975d73.0da4883c-71a8-4e61-8508-8c06054bdbfb", "lastUsedAt": "2022-11-24T09:16:24", "permissionGrantedMap": { "permissionGranted": { "f706b8e1-1836-40ca-a0a6-74be2262a64c": true } }, "outsideSid": "24a60190-1784-46bc-8584-d76dcc00dd74", "id": "0cfad581-4553-4c9b-9b62-7f1e28d08230", "state": "authenticated", "sessionAttributes": { "opbs": "4fcdd72f-ce50-4c3f-a5a3-ab4d88f9e185", "response_type": "code", "session_id": "0cfad581-4553-4c9b-9b62-7f1e28d08230", "client_id": "f706b8e1-1836-40ca-a0a6-74be2262a64c", "sid": "24a60190-1784-46bc-8584-d76dcc00dd74", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0bb40fa2-31fb-4c2c-b58c-afc83dfe7c44", "prompt": "consent", "old_session_id": "c1f687b2-59f7-4de2-aac2-5fcfaf68faa7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:23" }, { "isJwt": false, "opbrowserState": "d120ad90-ab15-49de-8f24-1579716bc333", "deletable": true, "dn": "jansId=9fef259f-89c5-4d85-8ec5-ae28cc1e940f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:23", "creationDate": "2022-11-24T09:16:22", "ttl": 0, "sessionState": "ef1b39e0e369871a335427bfe7f8cafd4adbf92dd02d16f2929ac00bc937e8b0.4b240201-7b76-4892-9700-9eee70447755", "lastUsedAt": "2022-11-24T09:16:23", "permissionGrantedMap": { "permissionGranted": { "76ea2821-df73-49f7-9f90-b1f7b1a3d71c": true } }, "outsideSid": "c16847a4-e474-4ba0-abff-1b95ec037179", "id": "9fef259f-89c5-4d85-8ec5-ae28cc1e940f", "state": "authenticated", "sessionAttributes": { "opbs": "d120ad90-ab15-49de-8f24-1579716bc333", "response_type": "token id_token", "session_id": "9fef259f-89c5-4d85-8ec5-ae28cc1e940f", "nonce": "201de8e5-6b6d-4d07-aab6-b7b4367e0b32", "client_id": "76ea2821-df73-49f7-9f90-b1f7b1a3d71c", "sid": "c16847a4-e474-4ba0-abff-1b95ec037179", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "clientinfo", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c3585794-d37a-4e5c-bae8-e67797ff1bce", "old_session_id": "b6853fa5-7215-4226-abfc-ae69b4857e04" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:22" }, { "isJwt": false, "opbrowserState": "64aab8f4-35fc-4c2d-a8ad-0cf80eb6f0b1", "deletable": true, "dn": "jansId=9c9dc0ce-3daf-4391-8429-5a9c9cb17c58,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:23", "creationDate": "2022-11-24T09:16:22", "ttl": 0, "sessionState": "5bd92635a5c681a72563cc368f9af5959e47a30457a719880af86912da0e5ed3.052bd34f-e322-4e48-9f62-b913be648ee3", "lastUsedAt": "2022-11-24T09:16:23", "permissionGrantedMap": { "permissionGranted": { "b24f0d7d-2c82-4252-a3b8-d6deb2d76ff2": true } }, "outsideSid": "22ac44cb-53bb-488b-bb90-a85b51a49291", "id": "9c9dc0ce-3daf-4391-8429-5a9c9cb17c58", "state": "authenticated", "sessionAttributes": { "opbs": "64aab8f4-35fc-4c2d-a8ad-0cf80eb6f0b1", "response_type": "code", "session_id": "9c9dc0ce-3daf-4391-8429-5a9c9cb17c58", "client_id": "b24f0d7d-2c82-4252-a3b8-d6deb2d76ff2", "response_mode": "query", "sid": "22ac44cb-53bb-488b-bb90-a85b51a49291", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4bb0b22f-961e-4972-9346-6821f1c9e1f7", "old_session_id": "fdf28c57-3933-4c5e-969a-c02fb68cbb7d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:22" }, { "isJwt": false, "opbrowserState": "28b80178-1910-4b75-9319-e3d0f23da6c2", "deletable": true, "dn": "jansId=6f0ccc72-98e7-4d29-8eee-86453e0efe75,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:22", "creationDate": "2022-11-24T09:16:21", "ttl": 0, "sessionState": "bfee9fb69e5b55f7a87a478e610f925581d780bfedef5f9c863201e8165b3aa1.d4924b2a-407d-47bd-a189-38602e310bd4", "lastUsedAt": "2022-11-24T09:16:22", "permissionGrantedMap": { "permissionGranted": { "b49dd39a-e1c3-4324-b97f-be2b30f29d94": true } }, "outsideSid": "9783aacf-8ae8-4c5e-8af0-eab5894080d7", "id": "6f0ccc72-98e7-4d29-8eee-86453e0efe75", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFMyNTYiCn0.ewogICJ1aV9sb2NhbGVzIiA6IFsgImVzIiBdLAogICJzY29wZSIgOiBbICJvcGVuaWQiLCAicHJvZmlsZSIsICJhZGRyZXNzIiwgImVtYWlsIiBdLAogICJjbGFpbXMiIDogewogICAgImlkX3Rva2VuIiA6IHsKICAgICAgIm1heF9hZ2UiIDogODY0MDAsCiAgICAgICJhY3IiIDogewogICAgICAgICJ2YWx1ZXMiIDogWyAiYmFzaWMiIF0KICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiBudWxsCiAgICB9LAogICAgInVzZXJpbmZvIiA6IHsKICAgICAgImVtYWlsX3ZlcmlmaWVkIiA6IG51bGwsCiAgICAgICJuYW1lIiA6IG51bGwsCiAgICAgICJuaWNrbmFtZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiBmYWxzZQogICAgICB9LAogICAgICAiZW1haWwiIDogbnVsbCwKICAgICAgInBpY3R1cmUiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogZmFsc2UKICAgICAgfQogICAgfQogIH0sCiAgInJlc3BvbnNlX3R5cGUiIDogWyAidG9rZW4iLCAiaWRfdG9rZW4iIF0sCiAgInJlZGlyZWN0X3VyaSIgOiAiaHR0cHMlM0ElMkYlMkZqZW5raW5zLWJ1aWxkLmphbnMuaW8lMkZqYW5zLWF1dGgtcnAlMkZob21lLmh0bSIsCiAgInN0YXRlIiA6ICI0OTViOGNlMS0xMzljLTRlYTQtODdlYy00ZDE3ODEwZGMxODkiLAogICJub25jZSIgOiAiZGIwNjYzYTMtYzZmYy00OWUwLWE4YTMtOWQ4MjgwMDBlMTQ4IiwKICAiY2xpZW50X2lkIiA6ICJiNDlkZDM5YS1lMWMzLTQzMjQtYjk3Zi1iZTJiMzBmMjlkOTQiCn0.LWU7v1r7tHWKFX9ToGUDAdtQHoWghebAWEJcHfWbuG8", "opbs": "28b80178-1910-4b75-9319-e3d0f23da6c2", "response_type": "token id_token", "session_id": "6f0ccc72-98e7-4d29-8eee-86453e0efe75", "nonce": "db0663a3-c6fc-49e0-a8a3-9d828000e148", "client_id": "b49dd39a-e1c3-4324-b97f-be2b30f29d94", "sid": "9783aacf-8ae8-4c5e-8af0-eab5894080d7", "max_age": "86400", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "ui_locales": "es", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "495b8ce1-139c-4ea4-87ec-4d17810dc189", "old_session_id": "149fddd7-4af4-4486-9ded-be5c52156df8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:21" }, { "isJwt": false, "opbrowserState": "1690b05f-d6db-48e1-b5be-9be3649969e6", "deletable": true, "dn": "jansId=5806aaaf-7072-415e-a290-cb7fde118bf3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:21", "creationDate": "2022-11-24T09:16:20", "ttl": 0, "sessionState": "3bc81fe9a16e38d056f6cf45802f32dc8611bc91dfd3ef169ada2d5bf720b69f.4c8eb825-0d24-4d68-b3c8-e8723b8176bb", "lastUsedAt": "2022-11-24T09:16:21", "permissionGrantedMap": { "permissionGranted": { "a502d0cb-229b-4207-a148-c7ca7625e51a": true } }, "outsideSid": "63362e96-f12a-4338-9921-d5772b9a788e", "id": "5806aaaf-7072-415e-a290-cb7fde118bf3", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjc5ZDEyZTY2LTBiYWEtNGI1OS04YThiLWJkMzE2NDI2MGJmNSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAiYWRkcmVzcyIgXSwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJzdHJlZXRfYWRkcmVzcyIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0sCiAgICAgICJjb3VudHJ5IiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0sCiAgICAidXNlcmluZm8iIDogewogICAgICAic3RyZWV0X2FkZHJlc3MiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAiY291bnRyeSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiOTQxNzdkYTEtYzkwYi00NDViLWFkMzItOGU2YzIyMTI0YzVlIiwKICAibm9uY2UiIDogIjZkNDNkNDg3LTQxZDAtNDY2Zi1iYTlmLTU0OTI0NGJkNzZhZiIsCiAgImNsaWVudF9pZCIgOiAiYTUwMmQwY2ItMjI5Yi00MjA3LWExNDgtYzdjYTc2MjVlNTFhIgp9.dpxHIC1sXVpvI8Fy2WlaHjei5xkti5ikGFMkN0hZIjtE-dt9OWMuiDhR6vA73LS3KAh7hda4q241FtXfXnAlzbzTX9OypEemM5jsMOlSrL599UD1yMkXmvG-TikQwUdon1bYTK4ntkcFAS0-Q3hp6lB9iRsqnG8em-Fuwc_YsSFRErfSRlrWB08bE1HS5-owbU9P7Z6FPJ1s80uLvmt4GEox1oTLsFluMsG3bZA9uEMp7KnKltqmHLoBhqKrVvYrfxTN318e3Mdg83J7_VobL7GoBwTCbU2V0_rixJC9-135btyd7TYAB3DFKqC-S-uo-V_tFkyXmBH7Qr6ybZN-HQ", "opbs": "1690b05f-d6db-48e1-b5be-9be3649969e6", "response_type": "token id_token", "session_id": "5806aaaf-7072-415e-a290-cb7fde118bf3", "nonce": "6d43d487-41d0-466f-ba9f-549244bd76af", "client_id": "a502d0cb-229b-4207-a148-c7ca7625e51a", "sid": "63362e96-f12a-4338-9921-d5772b9a788e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid address", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "94177da1-c90b-445b-ad32-8e6c22124c5e", "old_session_id": "801a6936-a427-4ac2-a1f3-123335f8db8a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:20" }, { "isJwt": false, "opbrowserState": "5fe199d5-fd0e-4a43-a2eb-6e1a2e31d58c", "deletable": true, "dn": "jansId=31f607ad-c541-41ed-a1ca-5b19a562f661,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:21", "creationDate": "2022-11-24T09:16:20", "ttl": 0, "sessionState": "e30de8a7ce5d4fb27a352878df97dc43ecd19e6c2703bdc42d4e75cffe4a1806.afdd71e5-c8e3-4b7f-a700-5e4d37990c82", "lastUsedAt": "2022-11-24T09:16:22", "permissionGrantedMap": { "permissionGranted": { "bd876f7e-5315-4b2a-99db-0e62a1f466d6": true } }, "outsideSid": "a26be561-ff5a-4ce3-a0c2-874f11773bc5", "id": "31f607ad-c541-41ed-a1ca-5b19a562f661", "state": "authenticated", "sessionAttributes": { "opbs": "5fe199d5-fd0e-4a43-a2eb-6e1a2e31d58c", "response_type": "id_token token", "session_id": "31f607ad-c541-41ed-a1ca-5b19a562f661", "nonce": "7f87d35e-9aa6-47a5-9f6b-ab39f7ca7d50", "client_id": "bd876f7e-5315-4b2a-99db-0e62a1f466d6", "response_mode": "fragment", "sid": "a26be561-ff5a-4ce3-a0c2-874f11773bc5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "21af4404-eb86-4705-8b98-6c87c1f4cf4a", "old_session_id": "5f5f0aa6-b753-4dcb-95c3-e259b3e79196" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:20" }, { "isJwt": false, "opbrowserState": "7db2f0a6-1bd3-48ab-9a35-93f6d0a3f452", "deletable": true, "dn": "jansId=215d0dd4-dd90-4b24-b483-3c2e39e5a4c4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:20", "creationDate": "2022-11-24T09:16:19", "ttl": 0, "sessionState": "8d4b439f463778c9fcd3e37940f31e3756bdaa2e1f686c8649a8de0435bb4054.60472d39-067b-4b0c-8b75-867c9565931d", "lastUsedAt": "2022-11-24T09:16:20", "permissionGrantedMap": { "permissionGranted": { "453d6be7-b81a-4a8e-ad76-99ecafa27326": true } }, "outsideSid": "ec0c2c84-8fe8-4495-ad96-43e62ee9b44d", "id": "215d0dd4-dd90-4b24-b483-3c2e39e5a4c4", "state": "authenticated", "sessionAttributes": { "opbs": "7db2f0a6-1bd3-48ab-9a35-93f6d0a3f452", "response_type": "id_token", "session_id": "215d0dd4-dd90-4b24-b483-3c2e39e5a4c4", "nonce": "55117ed1-9a18-424e-81fc-5a3a06411ee0", "client_id": "453d6be7-b81a-4a8e-ad76-99ecafa27326", "sid": "ec0c2c84-8fe8-4495-ad96-43e62ee9b44d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9217787a-0cfd-46bf-8350-a503c95d486d", "old_session_id": "eb64e7ad-3cc8-4d9d-99e2-1503c36665b7" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:19" }, { "isJwt": false, "opbrowserState": "d50604c2-7e3f-4fa5-8b41-95479e10fe17", "deletable": true, "dn": "jansId=a1cd8104-d09b-4e7b-bdc5-559f3d7c5e06,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:19", "creationDate": "2022-11-24T09:16:18", "ttl": 0, "sessionState": "af096c9980e24c63158969258843807fa635b9f586a35d29f760c008fc432c87.0cc19a5f-c0af-4f32-b238-6e4acbdfcc2b", "lastUsedAt": "2022-11-24T09:16:19", "permissionGrantedMap": { "permissionGranted": { "c42464bb-87cf-4f57-b1d5-feb4f01c9576": true } }, "outsideSid": "2490ac86-50d2-458d-a649-92e8142a3548", "id": "a1cd8104-d09b-4e7b-bdc5-559f3d7c5e06", "state": "authenticated", "sessionAttributes": { "opbs": "d50604c2-7e3f-4fa5-8b41-95479e10fe17", "response_type": "id_token", "session_id": "a1cd8104-d09b-4e7b-bdc5-559f3d7c5e06", "nonce": "077d1f0e-bf9e-4785-8f5b-dbefcacd0119", "client_id": "c42464bb-87cf-4f57-b1d5-feb4f01c9576", "response_mode": "fragment", "sid": "2490ac86-50d2-458d-a649-92e8142a3548", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b89daf0b-6eb1-4e2f-bfea-d9a0603e7b77", "old_session_id": "4b060c65-72aa-4983-a0d6-6303a6807a18" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:18" }, { "isJwt": false, "opbrowserState": "8b957e74-8e89-4771-9c3c-de12c2c7753f", "deletable": true, "dn": "jansId=738b62c2-e97a-4920-b5a9-a61a40b62541,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:19", "creationDate": "2022-11-24T09:16:18", "ttl": 0, "sessionState": "45a23edddbb2ed054dafa1a1397b938677e084c1371f0ad86ac77ab8179f59f7.1d5df7d4-5397-4a89-8124-66c6a63e0693", "lastUsedAt": "2022-11-24T09:16:19", "permissionGrantedMap": { "permissionGranted": { "24453a5a-9e72-418a-862f-d19ec4eaad74": true } }, "outsideSid": "8eef3ab1-c99e-446f-8c4b-40c24945808d", "id": "738b62c2-e97a-4920-b5a9-a61a40b62541", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2OGM2MWRkLWY4ZjYtNGZhZi04NTViLWZiYmI4YmVlMDI4YSIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAiYWRkcmVzcyIgXSwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJzdHJlZXRfYWRkcmVzcyIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0sCiAgICAgICJjb3VudHJ5IiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0sCiAgICAidXNlcmluZm8iIDogewogICAgICAic3RyZWV0X2FkZHJlc3MiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAiY291bnRyeSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiODJjMzY0ZjgtY2Q0Ny00NzIxLTgwNzMtYzFiYmRkYmY0OTE0IiwKICAibm9uY2UiIDogIjAxODQ1ZmJiLTUzOTgtNDBlOS1iNGZkLTVmNDc1MDVmOThhYiIsCiAgImNsaWVudF9pZCIgOiAiMjQ0NTNhNWEtOWU3Mi00MThhLTg2MmYtZDE5ZWM0ZWFhZDc0Igp9.Sv6vy8lD1NC65glCT5sM7gTv1YPQsKFK4eF6iwU_hmmRrMozVOvhvgrpMrgR3IB6OBzBiojKqz0yKtKFRopWtiOB1CNpGaX2fd8d7i605OI8cEZv23UOuzZ5Au_gUH3Rx6ztYk_SiaY2y0d-6C92htjl_Q0Vf7goKjJUXBQtnhXYd2JUJIcGq_JZARGQbRcZO2V1zLWj5DpAKtB7B4fxtUnFEtqm4j3Y5H4MOSNOA1gT5gApa61Y224yjp8MT6Rnb9_6ALaV0tubpDs55XD9Rk86EsQitt1ejY8dF8XnttMKHCRiNsoBYoQO0X_AJJ87-z0t_vgl4IJWz09lRhcEYQ", "opbs": "8b957e74-8e89-4771-9c3c-de12c2c7753f", "response_type": "token id_token", "session_id": "738b62c2-e97a-4920-b5a9-a61a40b62541", "nonce": "01845fbb-5398-40e9-b4fd-5f47505f98ab", "client_id": "24453a5a-9e72-418a-862f-d19ec4eaad74", "sid": "8eef3ab1-c99e-446f-8c4b-40c24945808d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid address", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "82c364f8-cd47-4721-8073-c1bbddbf4914", "old_session_id": "7cfada24-fca5-41c9-a670-d56e09a3a901" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:18" }, { "isJwt": false, "opbrowserState": "3766f37c-7851-41d5-8b69-8f311b0a1eb6", "deletable": true, "dn": "jansId=5fcb3452-b44a-4653-9476-d7fc7d6425ef,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:18", "creationDate": "2022-11-24T09:16:16", "ttl": 0, "sessionState": "d8f3f46a72277273740bc62196e71ff0f7eab4a884bea407b31662e83341fb2a.50bfcc27-d49c-4086-b20d-0f6d6a2cafae", "lastUsedAt": "2022-11-24T09:16:18", "permissionGrantedMap": { "permissionGranted": { "7608e388-f422-4910-b194-65f89a41bd7b": true } }, "outsideSid": "e50a169e-3334-46d9-8c2f-8a8806986825", "id": "5fcb3452-b44a-4653-9476-d7fc7d6425ef", "state": "authenticated", "sessionAttributes": { "opbs": "3766f37c-7851-41d5-8b69-8f311b0a1eb6", "response_type": "id_token", "session_id": "5fcb3452-b44a-4653-9476-d7fc7d6425ef", "nonce": "83b1f593-8437-48df-8366-68963db3ea4e", "client_id": "7608e388-f422-4910-b194-65f89a41bd7b", "sid": "e50a169e-3334-46d9-8c2f-8a8806986825", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b8ec73a0-7cc3-46aa-a67a-e3a5ce988aa9", "old_session_id": "86820c80-4d1d-411f-a6a2-4d8539095832" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:16" }, { "isJwt": false, "opbrowserState": "c6e3e609-a74f-423d-96a3-d4fbaa272ea8", "deletable": true, "dn": "jansId=3e5f813b-2372-49c0-9dc9-aa0653307dd4,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:17", "creationDate": "2022-11-24T09:16:16", "ttl": 0, "sessionState": "9b8aed12fc1fdfd68622da316e4651d7296cd368e6b61b3e3188c155a926c6f6.850401ea-82b7-44d3-9473-f69e1149a76d", "lastUsedAt": "2022-11-24T09:16:17", "permissionGrantedMap": { "permissionGranted": { "3ae80f61-6391-4559-aab0-941917780b91": true } }, "outsideSid": "e24cf0f3-a741-4483-a049-ffa92b852b0c", "id": "3e5f813b-2372-49c0-9dc9-aa0653307dd4", "state": "authenticated", "sessionAttributes": { "opbs": "c6e3e609-a74f-423d-96a3-d4fbaa272ea8", "response_type": "code token", "session_id": "3e5f813b-2372-49c0-9dc9-aa0653307dd4", "nonce": "22e8010c-83b0-4300-9a29-821b035706b5", "client_id": "3ae80f61-6391-4559-aab0-941917780b91", "response_mode": "fragment", "sid": "e24cf0f3-a741-4483-a049-ffa92b852b0c", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a4ee3dd2-fe75-4d0b-8d3f-39eccca37006", "old_session_id": "40219600-1960-4d98-9f08-81e77300551b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:16" }, { "isJwt": false, "opbrowserState": "63c1b0d3-e6b7-4447-ae79-d24c2f0babfa", "deletable": true, "dn": "jansId=a270f735-a2f1-4fd2-9581-22dbb7761770,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:16", "creationDate": "2022-11-24T09:16:16", "ttl": 0, "sessionState": "1349d92f51078f51e26adfa110e91ab60ced04c409022cf37119e9b0b25d42ca.998c0fce-e4f9-42b3-907d-5cf32518e755", "lastUsedAt": "2022-11-24T09:16:17", "permissionGrantedMap": { "permissionGranted": { "47c39b38-fadd-4e30-9bc6-e471a51fd2f8": true } }, "outsideSid": "8d34a9e8-1bb0-4a6a-b4dd-16723874e9d7", "id": "a270f735-a2f1-4fd2-9581-22dbb7761770", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAiYWRkcmVzcyIgXSwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJzdHJlZXRfYWRkcmVzcyIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0sCiAgICAgICJjb3VudHJ5IiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0sCiAgICAidXNlcmluZm8iIDogewogICAgICAic3RyZWV0X2FkZHJlc3MiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAiY291bnRyeSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiMzllNTIxODMtMTkwMC00MjVkLWI4NjAtMmZjZmNkOGY3NmU0IiwKICAibm9uY2UiIDogIjFjOWE2NTFlLTMxMDUtNGM0Zi04YzcwLTBlM2M0NjlmMWU5ZSIsCiAgImNsaWVudF9pZCIgOiAiNDdjMzliMzgtZmFkZC00ZTMwLTliYzYtZTQ3MWE1MWZkMmY4Igp9.bNUtps4sevNLNZTRfNgCKh6O6W1YBYpQYfCHvn-HjYUBCa4Yi9YPtUgYgG4JGReWDY8zFr52d5rtSyLMe6JuKpCeTT-2KWMW5EBh6MkEG-rfUqS2ihQkZ4fDoDq7DNVtgq1vBeIhRc6lMjnCWDPqojmHqumKYZydOjdQvQdLJsStm0wcCnYkzjfyPxEOomBbrxS7Go6hcYCNams0ltE8bixP6CTDz9Seru3xoKUMVAO37Gp2MjZCnXKLvh6k_y2wm-eQ4Gx55znT-RxzfaoXtekQRnK6qHMzxYZPGofjrTYbfsh6lqb3rbDhF8Og95cVxOfJ5sKRUapgORticbZy0A", "opbs": "63c1b0d3-e6b7-4447-ae79-d24c2f0babfa", "response_type": "token id_token", "session_id": "a270f735-a2f1-4fd2-9581-22dbb7761770", "nonce": "1c9a651e-3105-4c4f-8c70-0e3c469f1e9e", "client_id": "47c39b38-fadd-4e30-9bc6-e471a51fd2f8", "sid": "8d34a9e8-1bb0-4a6a-b4dd-16723874e9d7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid address", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "39e52183-1900-425d-b860-2fcfcd8f76e4", "old_session_id": "12fe2ace-8038-486a-83d9-f4bce3d14e90" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:16" }, { "isJwt": false, "opbrowserState": "658aba34-1584-4cb1-9987-9320f71aed0a", "deletable": true, "dn": "jansId=62f59443-82d9-476b-a7d9-1c367ded8ddc,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:15", "creationDate": "2022-11-24T09:16:14", "ttl": 0, "sessionState": "8856027b378247745e7b40763160f91bbd6e74d457549bc40f641c9f06f12f2c.a0688fa2-0137-4f6c-a062-b889532ef957", "lastUsedAt": "2022-11-24T09:16:16", "permissionGrantedMap": { "permissionGranted": { "5cf3ed94-d89b-415c-b88e-b79cca1f4908": true } }, "outsideSid": "bc072fe9-2b59-4194-b291-55205a76a889", "id": "62f59443-82d9-476b-a7d9-1c367ded8ddc", "state": "authenticated", "sessionAttributes": { "opbs": "658aba34-1584-4cb1-9987-9320f71aed0a", "response_type": "code id_token token", "session_id": "62f59443-82d9-476b-a7d9-1c367ded8ddc", "nonce": "012ddc79-d0b1-43f1-9820-c349db084bc2", "client_id": "5cf3ed94-d89b-415c-b88e-b79cca1f4908", "response_mode": "fragment", "sid": "bc072fe9-2b59-4194-b291-55205a76a889", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1f2dc3ee-09a4-49c2-812f-d6e6d94409fb", "old_session_id": "89e4fed7-4964-40b4-a8fc-a5491be8402b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:14" }, { "isJwt": false, "opbrowserState": "3878c1f1-680e-4e55-aed1-551941122d74", "deletable": true, "dn": "jansId=58736a4a-d1fe-4fb0-889e-8f8ecb5f6174,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:14", "creationDate": "2022-11-24T09:16:13", "ttl": 0, "sessionState": "683a7b7d88646a33561ad1c9cf1fc863a585dd743ddb46ab7afb551c11d2f34e.f96ae00c-e7a8-4684-bd15-bd5f0d5076fd", "lastUsedAt": "2022-11-24T09:16:16", "permissionGrantedMap": { "permissionGranted": { "1aeb10a1-889a-4ab2-abed-964c54f2130e": true } }, "outsideSid": "6c21e1c0-f12f-4325-ad0e-30b7ae6d1ec6", "id": "58736a4a-d1fe-4fb0-889e-8f8ecb5f6174", "state": "authenticated", "sessionAttributes": { "opbs": "3878c1f1-680e-4e55-aed1-551941122d74", "response_type": "code", "session_id": "58736a4a-d1fe-4fb0-889e-8f8ecb5f6174", "client_id": "1aeb10a1-889a-4ab2-abed-964c54f2130e", "sid": "6c21e1c0-f12f-4325-ad0e-30b7ae6d1ec6", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "c70bc75c-ac51-42d7-a5f8-0fdce62934fd", "old_session_id": "7bb4bf3d-cadf-48ec-8657-5cf6e8ac3843" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:13" }, { "isJwt": false, "opbrowserState": "727811d6-2744-407d-b1ed-33fd5044d175", "deletable": true, "dn": "jansId=a6467125-77b3-4509-804d-1b218fc44093,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:14", "creationDate": "2022-11-24T09:16:13", "ttl": 0, "sessionState": "bda6931cd624607a62cd349a6b0fdae47d25b13551834dfd695aa4668089c4d0.68b404fc-da56-430d-a3f3-878ba6f461d8", "lastUsedAt": "2022-11-24T09:16:15", "permissionGrantedMap": { "permissionGranted": { "14e4513b-ddcf-4d7d-9f96-56f5274d93a7": true } }, "outsideSid": "4fe4f02f-9481-479b-b4ac-700c24e645a9", "id": "a6467125-77b3-4509-804d-1b218fc44093", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE2MTRkNmFlLWU4MGYtNDY5YS1hMzA0LTUxYjliYmVmYzk1ZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzUxMiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAiYWRkcmVzcyIgXSwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJzdHJlZXRfYWRkcmVzcyIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0sCiAgICAgICJjb3VudHJ5IiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0sCiAgICAidXNlcmluZm8iIDogewogICAgICAic3RyZWV0X2FkZHJlc3MiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAiY291bnRyeSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiNWRiN2VmNmUtMjJiNS00MjE1LWJmMjEtODZlZTZlOGUzYThmIiwKICAibm9uY2UiIDogIjA4MWE4MGFlLWZjM2ItNDRjMC05MjBmLTBlNmRiYzE3OGVmMiIsCiAgImNsaWVudF9pZCIgOiAiMTRlNDUxM2ItZGRjZi00ZDdkLTlmOTYtNTZmNTI3NGQ5M2E3Igp9.RAvtt_iwj97OBku0ErIG9QpbKndpEX6hVvjy-oG8NpeAwiTiLvOW1qvPGaUd1n_lfiNNLk7Nm1s_rEHd8V7KdPcHZgz0-mJJde4pErd-mIEzUqV30w5F7JdXkAR6ajGWVG-8_9Yi4U0lMcTT_muvXiqMedJXHO0kNIPWEOZFndx5kfioWtQWxzEFCgHw5lXxFSdNfSnZZsB5NevDfL0T4PZSqf5rl7PEvW6MFzpZuPR-nUxzY9HRutR59jUDgvfAfPHY9uL47q_i0NteZdRlZFLXHIqzjZXfuOHIWykZ6XNAFeP3T5E5xYX2K2e_kZ4GLS1h72UsAm-wpqTHw5tANg", "opbs": "727811d6-2744-407d-b1ed-33fd5044d175", "response_type": "token id_token", "session_id": "a6467125-77b3-4509-804d-1b218fc44093", "nonce": "081a80ae-fc3b-44c0-920f-0e6dbc178ef2", "client_id": "14e4513b-ddcf-4d7d-9f96-56f5274d93a7", "sid": "4fe4f02f-9481-479b-b4ac-700c24e645a9", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid address", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5db7ef6e-22b5-4215-bf21-86ee6e8e3a8f", "old_session_id": "37edbf65-d10d-468a-a73b-5fa2ae74c8b2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:13" }, { "isJwt": false, "opbrowserState": "17a1c162-d66c-4944-aa8a-1687db108a9f", "deletable": true, "dn": "jansId=27d43878-26bc-4c6b-a6f1-dad45d2bcc5e,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:13", "creationDate": "2022-11-24T09:16:13", "ttl": 0, "sessionState": "e7c0a5bab3874c8c51cdd39c5e2c3e38c58f0b61ea082b3e03fdcace5b82a2da.cd141011-47b3-40f5-b1b2-43b3224683c6", "lastUsedAt": "2022-11-24T09:16:13", "permissionGrantedMap": { "permissionGranted": { "c1cb3cfc-bbb4-4e2e-800c-7ef956087a0c": true } }, "outsideSid": "e56d9e8b-2529-4db5-851c-c0d28d7cd8ce", "id": "27d43878-26bc-4c6b-a6f1-dad45d2bcc5e", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "17a1c162-d66c-4944-aa8a-1687db108a9f" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:13" }, { "isJwt": false, "opbrowserState": "461bd23e-35a6-4981-834f-8e786695e043", "deletable": true, "dn": "jansId=adbbd5b0-a43a-45c6-985e-1efbbcfc99ec,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:13", "creationDate": "2022-11-24T09:16:13", "ttl": 0, "sessionState": "2835ed9f28a77a23938d75d78b871d7012e8b24767ce901e779575a5533d410e.edec8c5f-c268-416d-aa7d-896ac4c21296", "lastUsedAt": "2022-11-24T09:16:13", "permissionGrantedMap": { }, "outsideSid": "944438a6-b498-46c5-8047-d20f08bf2e7a", "id": "adbbd5b0-a43a-45c6-985e-1efbbcfc99ec", "state": "authenticated", "sessionAttributes": { "opbs": "461bd23e-35a6-4981-834f-8e786695e043" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:13" }, { "isJwt": false, "opbrowserState": "b96bc56e-a9b3-471b-9188-5f0a2a6732f1", "deletable": true, "dn": "jansId=7753558c-fbd3-4079-9b0b-5c66a91deb5c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:13", "creationDate": "2022-11-24T09:16:12", "ttl": 0, "sessionState": "2a1e62ef5c178197ee6fdc4156cfeab1e77289c8d9c531533f99058ed27c4e86.449a7325-c460-452a-8c8b-d22a8c4b2cc4", "lastUsedAt": "2022-11-24T09:16:14", "permissionGrantedMap": { "permissionGranted": { "ca519cef-5800-4a30-bdb1-a4ed32eeca91": true } }, "outsideSid": "58c4c959-5bb1-478f-ac92-49a981a31fb1", "id": "7753558c-fbd3-4079-9b0b-5c66a91deb5c", "state": "authenticated", "sessionAttributes": { "opbs": "b96bc56e-a9b3-471b-9188-5f0a2a6732f1", "response_type": "code id_token", "session_id": "7753558c-fbd3-4079-9b0b-5c66a91deb5c", "nonce": "67288c27-9d98-4771-861d-c77d5e3fcbd3", "client_id": "ca519cef-5800-4a30-bdb1-a4ed32eeca91", "response_mode": "fragment", "sid": "58c4c959-5bb1-478f-ac92-49a981a31fb1", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "b2cffa0f-ad19-4f9a-9b18-729a8de77ea0", "old_session_id": "3ae9b822-33a6-435c-af96-299e845e6071" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:12" }, { "isJwt": false, "opbrowserState": "88433cec-69f9-4588-89ad-d7ea69924adf", "deletable": true, "dn": "jansId=ac4f8ce6-e6a0-4b2a-aca9-a54996e22dc3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:11", "creationDate": "2022-11-24T09:16:11", "ttl": 0, "sessionState": "f1d6060b51e481b11af65d3133d6cfd0af1b5377712a1ef2422cb0be0f400fc8.01e6b809-3f43-4a59-b965-949dcc427626", "lastUsedAt": "2022-11-24T09:16:11", "permissionGrantedMap": { "permissionGranted": { "5ff2153b-91cf-4f1a-b708-318d438ae3e2": true } }, "outsideSid": "0819b2e8-3aa1-46ab-9b10-b925c6b6847b", "id": "ac4f8ce6-e6a0-4b2a-aca9-a54996e22dc3", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "88433cec-69f9-4588-89ad-d7ea69924adf" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:11" }, { "isJwt": false, "opbrowserState": "bbe7bd25-7f47-40b5-86ae-4502ecd9bdcc", "deletable": true, "dn": "jansId=adf897ad-e9d6-4531-9f7a-6c9d48b9010c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:12", "creationDate": "2022-11-24T09:16:11", "ttl": 0, "sessionState": "713666b4c26318c22cfb50032543db64438f534a38f56c22cfedc34a31c3ecb0.27cffe53-1b4c-402d-9809-4ac7e15e4370", "lastUsedAt": "2022-11-24T09:16:12", "permissionGrantedMap": { "permissionGranted": { "3f7f6e2b-82b8-4712-bb76-7e99590a9648": true } }, "outsideSid": "ac35a050-69b7-40ab-8bd5-bc5f89cd44c1", "id": "adf897ad-e9d6-4531-9f7a-6c9d48b9010c", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZiZDdjYzBjLWUxNzYtNGRhOS1iNjQ2LWZlNzc4MjM5M2RjMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJQUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAiYWRkcmVzcyIgXSwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJzdHJlZXRfYWRkcmVzcyIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0sCiAgICAgICJjb3VudHJ5IiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0sCiAgICAidXNlcmluZm8iIDogewogICAgICAic3RyZWV0X2FkZHJlc3MiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAiY291bnRyeSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiYTdkNzU3ZjUtOTZiMi00YzIxLWFiZDItOTZjY2Y3MjU3ZjVkIiwKICAibm9uY2UiIDogIjQxNzMzNTIxLTM0ZTctNDRhNi05YjQwLTYwZDQ1MzJhZWY5NyIsCiAgImNsaWVudF9pZCIgOiAiM2Y3ZjZlMmItODJiOC00NzEyLWJiNzYtN2U5OTU5MGE5NjQ4Igp9.MdbpYQfp8SOoY0tiA8jvFYjhDlB9T3o7eWGv99FhrGWHuSBWZN7GJkElDvjLpf0-gxM_DWXTaAmowTrogAdTcWahub8LFtYxbYnn24pQZaWZ5_UOUqmRKQfrYA00O20j2VMv7ezLbAI0KZrzT8wpN95jQ9NxjOj5AXGvgUaKksMqv14F0mlDsAQqcPsoLIzpyuSLosqnkYly8I-Rsh0ejIyY8GPgs1aFNiwLq6BytORhwVsE51NWfG7zRU6wLvIb4U50yK9YW69EIEzzFtfzj68E2oU5wKIb0YCbzKE_yHpfo3ici__zZN0dJ0vMNg_BRCrb5ctC_AtTux6Eh3rfYg", "opbs": "bbe7bd25-7f47-40b5-86ae-4502ecd9bdcc", "response_type": "token id_token", "session_id": "adf897ad-e9d6-4531-9f7a-6c9d48b9010c", "nonce": "41733521-34e7-44a6-9b40-60d4532aef97", "client_id": "3f7f6e2b-82b8-4712-bb76-7e99590a9648", "sid": "ac35a050-69b7-40ab-8bd5-bc5f89cd44c1", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid address", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a7d757f5-96b2-4c21-abd2-96ccf7257f5d", "old_session_id": "c63de8d8-650f-49dc-b5b5-63e5a752f90a" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:11" }, { "isJwt": false, "opbrowserState": "0735e16e-6646-43a3-b489-c9b1f5580392", "deletable": true, "dn": "jansId=82925a98-fe69-4cf7-80ec-7528a1728eb3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:11", "creationDate": "2022-11-24T09:16:10", "ttl": 0, "sessionState": "2ee284d90db0c81373a81ff6a8ec64c3cf29e713e7feed58fc8fc78d248f895d.17236e46-f950-4656-b6fe-1dd5d06627b6", "lastUsedAt": "2022-11-24T09:16:11", "permissionGrantedMap": { "permissionGranted": { "e83927e3-2d72-48b9-8d97-dba32840c418": true } }, "outsideSid": "a69e6da0-4e86-4520-9cfb-cb1324510cf4", "id": "82925a98-fe69-4cf7-80ec-7528a1728eb3", "state": "authenticated", "sessionAttributes": { "opbs": "0735e16e-6646-43a3-b489-c9b1f5580392", "response_type": "code", "session_id": "82925a98-fe69-4cf7-80ec-7528a1728eb3", "client_id": "e83927e3-2d72-48b9-8d97-dba32840c418", "response_mode": "fragment", "sid": "a69e6da0-4e86-4520-9cfb-cb1324510cf4", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7b6f99c5-84ea-4188-b690-5083c2ef06a0", "old_session_id": "e06e3008-6967-4494-9b2a-207610878318" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:10" }, { "isJwt": false, "opbrowserState": "f5b22de6-89a1-4c2b-8e96-0244caca1d33", "deletable": true, "dn": "jansId=23103e24-2c7e-4e54-9b80-6fe8b3af26e6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:10", "creationDate": "2022-11-24T09:16:10", "ttl": 0, "sessionState": "44d99206ee70cdb000b8d02fe988aa5f573bdc92b944d56731034ee4d665ed44.0eb276c7-5750-40a2-b4c5-e79f471bedd0", "lastUsedAt": "2022-11-24T09:16:10", "permissionGrantedMap": { "permissionGranted": { "5ff2153b-91cf-4f1a-b708-318d438ae3e2": true } }, "outsideSid": "599b55e8-cd8c-417a-a6e5-dd90d01aca51", "id": "23103e24-2c7e-4e54-9b80-6fe8b3af26e6", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "f5b22de6-89a1-4c2b-8e96-0244caca1d33" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:10" }, { "isJwt": false, "opbrowserState": "4b94554a-99c8-4eb4-81c3-599f7f32c614", "deletable": true, "dn": "jansId=4c83598a-ebf0-4076-ad38-db8187b4e8fd,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:10", "creationDate": "2022-11-24T09:16:10", "ttl": 0, "sessionState": "43b7a8cb9b9f15a8363fba6e04ea4c2a3210f91407b5349c14152a73735dd480.e65356cf-1229-42ff-9bcc-c6b950a56c26", "lastUsedAt": "2022-11-24T09:16:10", "permissionGrantedMap": { "permissionGranted": { "5ff2153b-91cf-4f1a-b708-318d438ae3e2": true } }, "outsideSid": "c2b34aaf-7abd-4267-9a80-2cf9b3a36813", "id": "4c83598a-ebf0-4076-ad38-db8187b4e8fd", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "4b94554a-99c8-4eb4-81c3-599f7f32c614" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:10" }, { "isJwt": false, "opbrowserState": "17553866-3b7f-450e-a5e6-b8189c75aa01", "deletable": true, "dn": "jansId=a14773ce-3194-4668-9071-dc18bf5fb3c5,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:10", "creationDate": "2022-11-24T09:16:10", "ttl": 0, "sessionState": "b37d5c85d61399dfe699e942b8fd94c0119ee5b135a8c4adf7ecd85f44e8634d.c6aff90b-574a-45c1-ad92-1d3538f7339a", "lastUsedAt": "2022-11-24T09:16:10", "permissionGrantedMap": { "permissionGranted": { "4dffed3b-1011-4a05-9b8e-d1261f10bd9c": true } }, "outsideSid": "4ff80db4-8416-42f6-9863-6bc9f50a45c1", "id": "a14773ce-3194-4668-9071-dc18bf5fb3c5", "state": "authenticated", "sessionAttributes": { "opbs": "17553866-3b7f-450e-a5e6-b8189c75aa01", "response_type": "code", "session_id": "a14773ce-3194-4668-9071-dc18bf5fb3c5", "client_id": "4dffed3b-1011-4a05-9b8e-d1261f10bd9c", "sid": "4ff80db4-8416-42f6-9863-6bc9f50a45c1", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ee0d7c32-6676-4cee-b562-8c547004c8db", "old_session_id": "9361214a-19f8-410f-9bf1-3ce5a98cddd6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:10" }, { "isJwt": false, "opbrowserState": "390baa97-4f30-4fb3-a510-77a21fb84681", "deletable": true, "dn": "jansId=7267a484-7933-42f3-a641-eadcc7ce9dba,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:10", "creationDate": "2022-11-24T09:16:10", "ttl": 0, "sessionState": "c2e45f65347b383901764aa6489c31a9635d69ea4236730548b0f3a213ab9739.418db68a-0f56-4bf0-83fe-dae48e9c1f78", "lastUsedAt": "2022-11-24T09:16:10", "permissionGrantedMap": { "permissionGranted": { "5ff2153b-91cf-4f1a-b708-318d438ae3e2": true } }, "outsideSid": "ff65c171-6ebc-488e-994d-2d7dad366ccf", "id": "7267a484-7933-42f3-a641-eadcc7ce9dba", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "390baa97-4f30-4fb3-a510-77a21fb84681" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:10" }, { "isJwt": false, "opbrowserState": "55675314-db3a-43af-b18d-e4adcf28e607", "deletable": true, "dn": "jansId=5ff69e28-6a79-4a68-b0c4-bd36988abaee,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:09", "creationDate": "2022-11-24T09:16:08", "ttl": 0, "sessionState": "4b518dd3eed577c9524bd80f52de49f88af46f4f4a347877781348f720735999.4c5f4dff-7fb7-4bd3-a039-27850dde10f7", "lastUsedAt": "2022-11-24T09:16:09", "permissionGrantedMap": { "permissionGranted": { "c2c8c75e-0693-4383-b8f6-5ad22c026267": true } }, "outsideSid": "1914a222-47eb-4b01-ad4a-ed2ccfec4d18", "id": "5ff69e28-6a79-4a68-b0c4-bd36988abaee", "state": "authenticated", "sessionAttributes": { "opbs": "55675314-db3a-43af-b18d-e4adcf28e607", "response_type": "code", "session_id": "5ff69e28-6a79-4a68-b0c4-bd36988abaee", "client_id": "c2c8c75e-0693-4383-b8f6-5ad22c026267", "sid": "1914a222-47eb-4b01-ad4a-ed2ccfec4d18", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a908171b-210b-438b-aa22-76c5129e58bc", "old_session_id": "a56e143c-f033-4281-85a9-3b618e0f6411" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:08" }, { "isJwt": false, "opbrowserState": "307f9c57-896b-44d3-b8e6-aae69aea4804", "deletable": true, "dn": "jansId=b27f0c4a-88f3-455e-b851-638c78777578,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:09", "creationDate": "2022-11-24T09:16:08", "ttl": 0, "sessionState": "21f41e2918e05d5cbf00526ce545ca259ebc0e93dbcf3b631595f89dd242a6ce.5f658f99-de0e-4fb4-8bf4-316e225326c0", "lastUsedAt": "2022-11-24T09:16:09", "permissionGrantedMap": { "permissionGranted": { "d11a3b45-9dba-4d97-ab1f-9af804694350": true } }, "outsideSid": "0b6cbbfd-3199-44cd-985b-e7daf920ab15", "id": "b27f0c4a-88f3-455e-b851-638c78777578", "state": "authenticated", "sessionAttributes": { "opbs": "307f9c57-896b-44d3-b8e6-aae69aea4804", "response_type": "code", "session_id": "b27f0c4a-88f3-455e-b851-638c78777578", "client_id": "d11a3b45-9dba-4d97-ab1f-9af804694350", "sid": "0b6cbbfd-3199-44cd-985b-e7daf920ab15", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "47d5217e-ed15-441a-b2e7-9c7ee168ac2e", "old_session_id": "bef36da6-2606-486f-9230-61a0aa33bb1c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:08" }, { "isJwt": false, "opbrowserState": "68ea5c0d-e0f4-443c-96f9-3ec73b941045", "deletable": true, "dn": "jansId=b7aeea94-99bf-4eaf-9e19-b5fb1cd64ef3,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:08", "creationDate": "2022-11-24T09:16:07", "ttl": 0, "sessionState": "7d27ae119527ee241567c837e5251346d666e342d277ea0c6fb9a0ac04adedc1.0c097696-132b-4feb-827e-483f1767a389", "lastUsedAt": "2022-11-24T09:16:08", "permissionGrantedMap": { "permissionGranted": { "b54c1906-3e5c-4788-a85b-1d135ddc9476": true } }, "outsideSid": "5698573c-8dfd-48cc-9474-170941cb2762", "id": "b7aeea94-99bf-4eaf-9e19-b5fb1cd64ef3", "state": "authenticated", "sessionAttributes": { "opbs": "68ea5c0d-e0f4-443c-96f9-3ec73b941045", "response_type": "id_token", "session_id": "b7aeea94-99bf-4eaf-9e19-b5fb1cd64ef3", "nonce": "284d8b23-7883-42a2-a155-7e1e4d2bd886", "client_id": "b54c1906-3e5c-4788-a85b-1d135ddc9476", "response_mode": "form_post", "sid": "5698573c-8dfd-48cc-9474-170941cb2762", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "e4cba08c-7446-4718-b0dc-402aeba95125", "old_session_id": "6a209400-55de-4031-8c7b-dfc521930e7d" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:07" }, { "isJwt": false, "opbrowserState": "711cf462-cd4e-4f87-b409-45c0d161e6ff", "deletable": true, "dn": "jansId=36ba93a3-1870-4713-9cbf-a250c64ccc61,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:07", "creationDate": "2022-11-24T09:16:06", "ttl": 0, "sessionState": "296938e64c32c46d63a77f598b1f37fb68ef612d5839ed47b76b086fc0927607.81fec2cb-bf25-4acd-a282-9caf5548abbb", "lastUsedAt": "2022-11-24T09:16:07", "permissionGrantedMap": { "permissionGranted": { "728faabe-3091-469e-9bf0-80e411a1d9af": true } }, "outsideSid": "46fa2624-d044-41ca-a21f-0daca5b1d100", "id": "36ba93a3-1870-4713-9cbf-a250c64ccc61", "state": "authenticated", "sessionAttributes": { "opbs": "711cf462-cd4e-4f87-b409-45c0d161e6ff", "response_type": "code id_token", "session_id": "36ba93a3-1870-4713-9cbf-a250c64ccc61", "nonce": "e9f1b4dc-8ff2-4676-95af-769a75001b6a", "client_id": "728faabe-3091-469e-9bf0-80e411a1d9af", "sid": "46fa2624-d044-41ca-a21f-0daca5b1d100", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "58923241-5a7a-4126-9053-19974ccac80f", "old_session_id": "9181b970-5a7e-44e6-8ff8-a900bce837ed" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:06" }, { "isJwt": false, "opbrowserState": "fe754963-ac1f-49d0-8af7-691d07802695", "deletable": true, "dn": "jansId=678a681a-3bb8-4d3e-b652-b3f8a75e9b58,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:06", "creationDate": "2022-11-24T09:16:05", "ttl": 0, "sessionState": "24968681e86cc711c10a0e7d4fa60c907c629cd8918bc91168f02984992f32e5.9556d7c2-1827-4fd2-bf44-d435b59411e2", "lastUsedAt": "2022-11-24T09:16:06", "permissionGrantedMap": { "permissionGranted": { "42645818-03f9-4a6c-8d6e-9efbe3f242bb": true } }, "outsideSid": "2101b502-8ca0-4764-ad1d-ed2b0ae3cae7", "id": "678a681a-3bb8-4d3e-b652-b3f8a75e9b58", "state": "authenticated", "sessionAttributes": { "opbs": "fe754963-ac1f-49d0-8af7-691d07802695", "response_type": "code", "session_id": "678a681a-3bb8-4d3e-b652-b3f8a75e9b58", "client_id": "42645818-03f9-4a6c-8d6e-9efbe3f242bb", "sid": "2101b502-8ca0-4764-ad1d-ed2b0ae3cae7", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "069830b0-1d7d-4440-9046-3dc574d0b574", "old_session_id": "0ca5dd12-b972-42af-97a1-7e84eae7c2fb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:05" }, { "isJwt": false, "opbrowserState": "a96104c6-c840-4ff1-b3f0-2bbed82a6d28", "deletable": true, "dn": "jansId=33c6afd4-61eb-41f2-a97f-b7f3cbf7845f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:06", "creationDate": "2022-11-24T09:16:05", "ttl": 0, "sessionState": "8ffbea36e897209ee207afd521595ee00c4d1eef0a5149256eb3faace3d7d1ce.950d094d-ee82-4a7b-81af-bf09ac6b597d", "lastUsedAt": "2022-11-24T09:16:06", "permissionGrantedMap": { "permissionGranted": { "9ac37a3f-64ca-49eb-af49-1ff7c1fce148": true } }, "outsideSid": "f44a3d5d-21e7-4537-87c4-078a28643051", "id": "33c6afd4-61eb-41f2-a97f-b7f3cbf7845f", "state": "authenticated", "sessionAttributes": { "opbs": "a96104c6-c840-4ff1-b3f0-2bbed82a6d28", "response_type": "code token", "session_id": "33c6afd4-61eb-41f2-a97f-b7f3cbf7845f", "nonce": "ee6a4410-b32a-4281-8b70-e3d657da2a8c", "client_id": "9ac37a3f-64ca-49eb-af49-1ff7c1fce148", "response_mode": "form_post", "sid": "f44a3d5d-21e7-4537-87c4-078a28643051", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "419c21ce-82c8-457d-acf4-12bcc46606b0", "old_session_id": "fd28c1af-4a9b-43aa-a9f9-45cee9991861" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:05" }, { "isJwt": false, "opbrowserState": "3f57f815-13e5-4d4c-b448-250cd49a93f3", "deletable": true, "dn": "jansId=786f0fd7-0c78-4b12-8e27-14a527a0af1c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:05", "creationDate": "2022-11-24T09:16:05", "ttl": 0, "sessionState": "3c641575f855612e073405c87e1e44c70217b8fccaf062c540ff5a88a1d36770.6b21c504-d436-41e3-bf0d-9fff871565de", "lastUsedAt": "2022-11-24T09:16:05", "permissionGrantedMap": { "permissionGranted": { "0efbd6d5-f178-4edd-b62f-ac43df14f019": true } }, "outsideSid": "381c0394-7794-4992-9aa5-089f16c866d1", "id": "786f0fd7-0c78-4b12-8e27-14a527a0af1c", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFMzODQiCn0.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAiYWRkcmVzcyIgXSwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJzdHJlZXRfYWRkcmVzcyIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0sCiAgICAgICJjb3VudHJ5IiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0sCiAgICAidXNlcmluZm8iIDogewogICAgICAic3RyZWV0X2FkZHJlc3MiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAiY291bnRyeSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiY2Y3M2NmYTUtMGNjZi00YjI0LWE3MTMtNTA2N2FmMjRjNTMwIiwKICAibm9uY2UiIDogImFhYTJlOTkwLTcyZmItNDg4ZS1iOTdhLTA1MzlmOWIyMzYxYiIsCiAgImNsaWVudF9pZCIgOiAiMGVmYmQ2ZDUtZjE3OC00ZWRkLWI2MmYtYWM0M2RmMTRmMDE5Igp9.yHawM6sBJw_OpiDmqAm1S-d2pykINypF-ETwAvqqUdGw34RUiG8JIXsYToN8ZQTp", "opbs": "3f57f815-13e5-4d4c-b448-250cd49a93f3", "response_type": "token id_token", "session_id": "786f0fd7-0c78-4b12-8e27-14a527a0af1c", "nonce": "aaa2e990-72fb-488e-b97a-0539f9b2361b", "client_id": "0efbd6d5-f178-4edd-b62f-ac43df14f019", "sid": "381c0394-7794-4992-9aa5-089f16c866d1", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid address", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "cf73cfa5-0ccf-4b24-a713-5067af24c530", "old_session_id": "74dee610-043b-4b74-9e39-128ba84ba2e2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:05" }, { "isJwt": false, "opbrowserState": "73d28453-4084-4a64-a7c4-866df00e64e4", "deletable": true, "dn": "jansId=12a7e80f-1c00-4aa4-b21b-818f7475c6e8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:05", "creationDate": "2022-11-24T09:16:04", "ttl": 0, "sessionState": "609aef82efb30da196d53bd9015402f397d274771efc0d01e54df2f3c005c84f.288624a4-8bd6-44ac-b35a-4e59112158ea", "lastUsedAt": "2022-11-24T09:16:05", "permissionGrantedMap": { "permissionGranted": { "21621518-41d9-4b17-b24d-c00625b58184": true } }, "outsideSid": "5ef27ae3-56e4-4f33-a330-30d9da7fd947", "id": "12a7e80f-1c00-4aa4-b21b-818f7475c6e8", "state": "authenticated", "sessionAttributes": { "opbs": "73d28453-4084-4a64-a7c4-866df00e64e4", "response_type": "code id_token", "session_id": "12a7e80f-1c00-4aa4-b21b-818f7475c6e8", "nonce": "3f7d181a-8106-4620-8aa4-62bfeacb6556", "client_id": "21621518-41d9-4b17-b24d-c00625b58184", "sid": "5ef27ae3-56e4-4f33-a330-30d9da7fd947", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "8726c7aa-7869-4251-ac7f-fab1693d534a", "old_session_id": "761c6848-f8b8-41b7-8e83-01aca06ef8bb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:04" }, { "isJwt": false, "opbrowserState": "79e76742-63a3-4676-8f66-14705cc538e1", "deletable": true, "dn": "jansId=5fd4c7fc-170f-4d3d-a789-461b2a234043,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:04", "creationDate": "2022-11-24T09:16:04", "ttl": 0, "sessionState": "17f4e4362ab8cd88dce0d7e16b49c0cf4d5440bb1cb0ddcfbe1038a6763768bf.d997be11-a70e-48e7-8f15-3996139c8778", "lastUsedAt": "2022-11-24T09:16:04", "permissionGrantedMap": { "permissionGranted": { "f5764c01-637f-4efb-a42c-97d3fc59ffed": true } }, "outsideSid": "11db1dbc-e89d-4605-8b3d-85d4505696c2", "id": "5fd4c7fc-170f-4d3d-a789-461b2a234043", "state": "authenticated", "sessionAttributes": { "opbs": "79e76742-63a3-4676-8f66-14705cc538e1", "response_type": "code id_token token", "session_id": "5fd4c7fc-170f-4d3d-a789-461b2a234043", "nonce": "050f3f82-287d-49d4-8b55-4705d641b880", "client_id": "f5764c01-637f-4efb-a42c-97d3fc59ffed", "response_mode": "form_post", "sid": "11db1dbc-e89d-4605-8b3d-85d4505696c2", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "32076dfb-509b-4822-b5b4-66fd08a801e0", "old_session_id": "bfaf53de-b7b3-47fb-90e7-541f9c3945a9" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:04" }, { "isJwt": false, "opbrowserState": "75e14cff-8dc1-41f7-955d-c7a8d83fdfd1", "deletable": true, "dn": "jansId=99d4a0f3-7210-45dd-815a-be44782917d2,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:03", "creationDate": "2022-11-24T09:16:03", "ttl": 0, "sessionState": "2e1d4a059634cd20ccf43f61143d7cce060f957e4ad75a0ae08b9a84b1d7089d.813197f9-8bb7-43a4-9fba-d48eef950266", "lastUsedAt": "2022-11-24T09:16:03", "permissionGrantedMap": { }, "outsideSid": "f6e0b8d0-997a-4afa-a15b-b35fbe6e8ec6", "id": "99d4a0f3-7210-45dd-815a-be44782917d2", "state": "authenticated", "sessionAttributes": { "opbs": "75e14cff-8dc1-41f7-955d-c7a8d83fdfd1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:03" }, { "isJwt": false, "opbrowserState": "15187696-7d22-4dca-bd27-a3e30a78dac6", "deletable": true, "dn": "jansId=10df111a-b8cd-4af4-9148-715388366357,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:03", "creationDate": "2022-11-24T09:16:03", "ttl": 0, "sessionState": "cf4612e83cab5a9cf7c00cb4b4b58c9aa7aea70e2fd6d1fd38fb461d4c39bdf1.84b74624-eafc-427d-a1de-dbf0454b8606", "lastUsedAt": "2022-11-24T09:16:03", "permissionGrantedMap": { }, "outsideSid": "9a0521c8-6702-4a28-9e2b-9693ff750ff7", "id": "10df111a-b8cd-4af4-9148-715388366357", "state": "authenticated", "sessionAttributes": { "opbs": "15187696-7d22-4dca-bd27-a3e30a78dac6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:03" }, { "isJwt": false, "opbrowserState": "cc88195e-43de-4ec1-8e8e-91508159e7cd", "deletable": true, "dn": "jansId=213d70c5-366d-4f3f-b9aa-5578954cee64,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:03", "creationDate": "2022-11-24T09:16:02", "ttl": 0, "sessionState": "4aafae1ab95a32259742929f41abb8f3df2ba1548e40c7c197613e2b51855fd9.2bfae3dc-7ef2-4f34-bfa6-e972378459a6", "lastUsedAt": "2022-11-24T09:16:04", "permissionGrantedMap": { "permissionGranted": { "0e7fbc09-e070-4fef-8ba9-aa110ceb5c0d": true } }, "outsideSid": "9535df2c-9eea-4c64-b00a-c7940b5b5bf5", "id": "213d70c5-366d-4f3f-b9aa-5578954cee64", "state": "authenticated", "sessionAttributes": { "request": "ewogICJ0eXAiIDogImp3dCIsCiAgImFsZyIgOiAiSFMyNTYiCn0.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAiYWRkcmVzcyIgXSwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJzdHJlZXRfYWRkcmVzcyIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0sCiAgICAgICJjb3VudHJ5IiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0sCiAgICAidXNlcmluZm8iIDogewogICAgICAic3RyZWV0X2FkZHJlc3MiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAiY291bnRyeSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiMjAwNzk1OWQtYWYyOS00NWIzLTk5ZmMtNWQ4YWJkZWVlY2JmIiwKICAibm9uY2UiIDogIjkyNmViOTk5LTU4ZjQtNGQ1Ny05MjRmLTg4MDM4NTM5OGI1NCIsCiAgImNsaWVudF9pZCIgOiAiMGU3ZmJjMDktZTA3MC00ZmVmLThiYTktYWExMTBjZWI1YzBkIgp9.ya3cUtqh7e8n4PkzSPohPM9oifXRQikEO7b5kXH_UYg", "opbs": "cc88195e-43de-4ec1-8e8e-91508159e7cd", "response_type": "token id_token", "session_id": "213d70c5-366d-4f3f-b9aa-5578954cee64", "nonce": "926eb999-58f4-4d57-924f-880385398b54", "client_id": "0e7fbc09-e070-4fef-8ba9-aa110ceb5c0d", "sid": "9535df2c-9eea-4c64-b00a-c7940b5b5bf5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid address", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2007959d-af29-45b3-99fc-5d8abdeeecbf", "old_session_id": "cb6bcfcb-89e2-48f9-8c58-99f35310c338" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:02" }, { "isJwt": false, "opbrowserState": "6433e1e2-c548-4028-9bab-e29bc7c0ffc9", "deletable": true, "dn": "jansId=22c754ad-a952-402b-80eb-e4886c5a7a00,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:03", "creationDate": "2022-11-24T09:16:02", "ttl": 0, "sessionState": "f60ceb126a60f76915f383c82804a30603402e2789c93c1174c09081ed0580d6.4be170cd-25d4-4e6c-af8a-4910a01be1ba", "lastUsedAt": "2022-11-24T09:16:03", "permissionGrantedMap": { "permissionGranted": { "ca6c24bb-7028-42ce-a3e9-cdf7a0043ff3": true } }, "outsideSid": "d457243b-ae54-49ab-9324-3f58cc2fbdba", "id": "22c754ad-a952-402b-80eb-e4886c5a7a00", "state": "authenticated", "sessionAttributes": { "opbs": "6433e1e2-c548-4028-9bab-e29bc7c0ffc9", "response_type": "code", "session_id": "22c754ad-a952-402b-80eb-e4886c5a7a00", "client_id": "ca6c24bb-7028-42ce-a3e9-cdf7a0043ff3", "sid": "d457243b-ae54-49ab-9324-3f58cc2fbdba", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "6abd2166-cfbb-4e8b-8ea0-9a59a1671dcd", "old_session_id": "339cb8a9-a41b-4a2e-9588-1b6f596fe7b8" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:02" }, { "isJwt": false, "opbrowserState": "9f23c573-ea54-4774-bb6c-da087d0730cc", "deletable": true, "dn": "jansId=1ddac84d-0b4d-4acb-856c-577fb38093ca,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:02", "creationDate": "2022-11-24T09:16:01", "ttl": 0, "sessionState": "d39ea7a66356e6ffcdf5da5a2d332696e56df0ac903e716cc95ca0a3a3e0423e.7883bbc7-3a32-4607-8265-7674134b8347", "lastUsedAt": "2022-11-24T09:16:03", "permissionGrantedMap": { "permissionGranted": { "d928b840-a5cc-46f2-a646-c8e054623398": true } }, "outsideSid": "b67ec492-7f3f-4c3e-8138-ec8538dfe1fe", "id": "1ddac84d-0b4d-4acb-856c-577fb38093ca", "state": "authenticated", "sessionAttributes": { "opbs": "9f23c573-ea54-4774-bb6c-da087d0730cc", "response_type": "code id_token", "session_id": "1ddac84d-0b4d-4acb-856c-577fb38093ca", "nonce": "f3e1ab4d-927d-48bd-b117-915e6e39e817", "client_id": "d928b840-a5cc-46f2-a646-c8e054623398", "response_mode": "form_post", "sid": "b67ec492-7f3f-4c3e-8138-ec8538dfe1fe", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ebd15cdc-7809-453b-8900-a57583053342", "old_session_id": "f2260d77-fa32-4880-8677-7896cfe6cdae" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:01" }, { "isJwt": false, "opbrowserState": "7db2bad8-51bc-4a02-9f4e-1f850c591ec0", "deletable": true, "dn": "jansId=963cedae-839f-410b-9c33-114854b3a925,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:00", "creationDate": "2022-11-24T09:16:00", "ttl": 0, "sessionState": "b783fad037578459a173aa0b27c8293873bf1c820cad65192910f40d3e195712.07296f81-cef2-4458-9dce-3bbd739e01e0", "lastUsedAt": "2022-11-24T09:16:00", "permissionGrantedMap": { "permissionGranted": { "005e5e6c-1211-4d60-adca-cf823069fc43": true } }, "outsideSid": "88754511-c1ac-403c-94d6-6f6147d72f7a", "id": "963cedae-839f-410b-9c33-114854b3a925", "state": "authenticated", "sessionAttributes": { "opbs": "7db2bad8-51bc-4a02-9f4e-1f850c591ec0", "response_type": "code id_token", "session_id": "963cedae-839f-410b-9c33-114854b3a925", "nonce": "63c5cca6-7eb5-42ac-aa38-d2415f1d5053", "client_id": "005e5e6c-1211-4d60-adca-cf823069fc43", "sid": "88754511-c1ac-403c-94d6-6f6147d72f7a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "2fcf6d96-4db2-4fdc-9431-64d7f66b787b", "old_session_id": "d368346d-f293-4fbf-a0e5-66269bf6fd4b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:00" }, { "isJwt": false, "opbrowserState": "bc964f03-5884-489e-85b1-0a6ed62b5ed6", "deletable": true, "dn": "jansId=961fdcc1-29c7-46fb-aabe-7dadfc49d5e9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:00", "creationDate": "2022-11-24T09:16:00", "ttl": 0, "sessionState": "93e19fbbb56baa6f1a47c96d771f8318cfc242fd9f9d1b9044ed7870574e8622.dfc67ab7-6724-42c3-b873-77bfd2e6873a", "lastUsedAt": "2022-11-24T09:16:00", "permissionGrantedMap": { "permissionGranted": { "b7875d72-2507-43f3-9b63-3502d97dc969": true } }, "outsideSid": "5cf2eaa3-118f-41ee-a00f-d3312e8d29bf", "id": "961fdcc1-29c7-46fb-aabe-7dadfc49d5e9", "state": "authenticated", "sessionAttributes": { "opbs": "bc964f03-5884-489e-85b1-0a6ed62b5ed6", "response_type": "code", "session_id": "961fdcc1-29c7-46fb-aabe-7dadfc49d5e9", "client_id": "b7875d72-2507-43f3-9b63-3502d97dc969", "response_mode": "form_post", "sid": "5cf2eaa3-118f-41ee-a00f-d3312e8d29bf", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d1dbb74a-8ed0-4cef-b568-f7ceabb8f7de", "old_session_id": "dd9e57f4-4e81-469f-b877-4093b2f69be2" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:16:00" }, { "isJwt": false, "opbrowserState": "826051b9-b6eb-4e32-b63e-1300a15854db", "deletable": true, "dn": "jansId=9f901443-7719-46e4-996b-77b16c350766,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:16:00", "creationDate": "2022-11-24T09:15:59", "ttl": 0, "sessionState": "aa89aaeb1d2b07eb3f11d1af21e68c4bcc3657384ec3a0d873dd671a560bea48.a424c726-b269-448a-8b44-58669d9730bf", "lastUsedAt": "2022-11-24T09:16:00", "permissionGrantedMap": { "permissionGranted": { "38bc8a47-235d-4183-93e4-87136126fa06": true } }, "outsideSid": "2c1cfc65-68c3-46ba-8159-9f02d670fe3a", "id": "9f901443-7719-46e4-996b-77b16c350766", "state": "authenticated", "sessionAttributes": { "opbs": "826051b9-b6eb-4e32-b63e-1300a15854db", "response_type": "token id_token", "session_id": "9f901443-7719-46e4-996b-77b16c350766", "nonce": "938766b4-a94e-49a9-bc69-0be475f212bd", "client_id": "38bc8a47-235d-4183-93e4-87136126fa06", "sid": "2c1cfc65-68c3-46ba-8159-9f02d670fe3a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f68c4102-266c-452b-b0fc-0ae28e24232b", "old_session_id": "55d247eb-a597-41c7-a3c7-54efd4d2a757" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:59" }, { "isJwt": false, "opbrowserState": "77eb93e5-3148-41e8-ae47-fb3a34d23892", "deletable": true, "dn": "jansId=450cf2c4-e909-4b47-ab7f-146f662c3e17,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:59", "creationDate": "2022-11-24T09:15:58", "ttl": 0, "sessionState": "17f385466ff592cc2fc82a17c5945d3410e743d0547ba5587d55bdc98a3386dd.f5efeda1-136c-4e10-8f05-3dcdea26122d", "lastUsedAt": "2022-11-24T09:15:59", "permissionGrantedMap": { "permissionGranted": { "4e602154-aadd-4954-a3c6-2a82f529c9c4": true } }, "outsideSid": "89f22d76-fbb0-4473-8a00-bf4910fd9b5d", "id": "450cf2c4-e909-4b47-ab7f-146f662c3e17", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjBiMWEwMTlmLWZjZmItNGQzZC05ODFiLTE2YjQ1MzU1ZGZkZiIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzM4NCIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAiYWRkcmVzcyIgXSwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJzdHJlZXRfYWRkcmVzcyIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0sCiAgICAgICJjb3VudHJ5IiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0sCiAgICAidXNlcmluZm8iIDogewogICAgICAic3RyZWV0X2FkZHJlc3MiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAiY291bnRyeSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiMWFhNzI4OTMtYWMzZC00MTM4LTg5Y2ItMjg4MDk0NzgxZTZmIiwKICAibm9uY2UiIDogImFlZWI3ZjI4LWQ2NGItNDA3OS1hZjVmLTI1ZjNhNWYzODE4YSIsCiAgImNsaWVudF9pZCIgOiAiNGU2MDIxNTQtYWFkZC00OTU0LWEzYzYtMmE4MmY1MjljOWM0Igp9.Uw-n-vxcEtJqzQ0Rpu01Z7tmvwejVcVhb0sQaifixAyo0U6TKQ3elnWVgSsGRPnJuzn7XJ2kX76kIFdEmSzSPv_uRiK27U4JZhLr2MsOuseLqf1rtOEeOvUGp0AkKIEz", "opbs": "77eb93e5-3148-41e8-ae47-fb3a34d23892", "response_type": "token id_token", "session_id": "450cf2c4-e909-4b47-ab7f-146f662c3e17", "nonce": "aeeb7f28-d64b-4079-af5f-25f3a5f3818a", "client_id": "4e602154-aadd-4954-a3c6-2a82f529c9c4", "sid": "89f22d76-fbb0-4473-8a00-bf4910fd9b5d", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid address", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "1aa72893-ac3d-4138-89cb-288094781e6f", "old_session_id": "492122f4-e17c-4696-986e-15ce7dbd4ab4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:58" }, { "isJwt": false, "opbrowserState": "b04bc297-fc81-4af9-bc67-4311f67e6e67", "deletable": true, "dn": "jansId=b9b10b68-4015-4b88-8ea0-7f0fa47a575a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:59", "creationDate": "2022-11-24T09:15:58", "ttl": 0, "sessionState": "5746e2c4d2c13742b001d699fa2fed9ca2e8b32f36f3ec718b09eaf9f4d8ccd0.de52d57e-4134-4824-a4ba-389ee801898d", "lastUsedAt": "2022-11-24T09:15:59", "permissionGrantedMap": { "permissionGranted": { "3ae5ac3a-4486-400d-8da7-44dc2df9dc4c": true } }, "outsideSid": "45ab3e73-7184-4cc7-8e8f-0cfa0f843eaf", "id": "b9b10b68-4015-4b88-8ea0-7f0fa47a575a", "state": "authenticated", "sessionAttributes": { "opbs": "b04bc297-fc81-4af9-bc67-4311f67e6e67", "response_type": "id_token token", "session_id": "b9b10b68-4015-4b88-8ea0-7f0fa47a575a", "nonce": "136bf070-dfd9-4ede-8ec2-7bc020a88345", "client_id": "3ae5ac3a-4486-400d-8da7-44dc2df9dc4c", "sid": "45ab3e73-7184-4cc7-8e8f-0cfa0f843eaf", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "cac5483f-24e7-420e-9f03-6ad3abf5dac2", "old_session_id": "dad4b9d9-0b4f-420d-a5b5-18d25b43cfd1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:58" }, { "isJwt": false, "opbrowserState": "26caa9e5-7c7c-42ef-b24a-93a33da8a483", "deletable": true, "dn": "jansId=2f521f41-c1ee-40ab-9d99-6c21e69a8f03,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:59", "creationDate": "2022-11-24T09:15:58", "ttl": 0, "sessionState": "6a743060d013c81423031cccc35deda461750da59519d3c157827bf55d60e477.5bdda1b1-beaa-43fe-93d7-e2256770ba83", "lastUsedAt": "2022-11-24T09:15:59", "permissionGrantedMap": { "permissionGranted": { "08e6c8a8-39d2-4cad-916a-0e84877e0c29": true } }, "outsideSid": "a3f84c5a-ab82-4384-8d94-6b0c8f49762a", "id": "2f521f41-c1ee-40ab-9d99-6c21e69a8f03", "state": "authenticated", "sessionAttributes": { "opbs": "26caa9e5-7c7c-42ef-b24a-93a33da8a483", "response_type": "code id_token", "session_id": "2f521f41-c1ee-40ab-9d99-6c21e69a8f03", "nonce": "566d3905-009f-4389-a907-4f65eb6a30fe", "client_id": "08e6c8a8-39d2-4cad-916a-0e84877e0c29", "sid": "a3f84c5a-ab82-4384-8d94-6b0c8f49762a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name mobile_phone", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3d700ed4-9a87-4ab0-8e66-dbe9feff6cf9", "old_session_id": "3ca83c4f-2608-4413-89bc-22dfac95f0e6" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:58" }, { "isJwt": false, "opbrowserState": "129fbaa5-4fba-4aca-ac02-db23b4ae918f", "deletable": true, "dn": "jansId=5a30e8ba-e34c-42c2-aa85-9b5f7c3c4aeb,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:59", "creationDate": "2022-11-24T09:15:58", "ttl": 0, "sessionState": "93f2003f14ddb4b993836646be7d4ed785919d7aab2cb4cddb19c99c6366ce37.861525aa-f2cc-4fa8-b6cb-f22bc05bcda7", "lastUsedAt": "2022-11-24T09:15:59", "permissionGrantedMap": { "permissionGranted": { "facb4558-513b-4260-8110-757a6d2d2196": true } }, "outsideSid": "4686c028-7543-4346-8097-5e22b254865a", "id": "5a30e8ba-e34c-42c2-aa85-9b5f7c3c4aeb", "state": "authenticated", "sessionAttributes": { "opbs": "129fbaa5-4fba-4aca-ac02-db23b4ae918f", "response_type": "token id_token", "session_id": "5a30e8ba-e34c-42c2-aa85-9b5f7c3c4aeb", "nonce": "7ef8e7e2-1a0e-41b0-bcdd-7f51c49ba11a", "client_id": "facb4558-513b-4260-8110-757a6d2d2196", "sid": "4686c028-7543-4346-8097-5e22b254865a", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "49e8c9ee-8825-4b67-97e3-8d455ba81338", "old_session_id": "0d8902e4-b817-435f-b163-bd6b2cbd7cc1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:58" }, { "isJwt": false, "opbrowserState": "be58426f-c2db-4555-9948-4fff327cd343", "deletable": true, "dn": "jansId=7cb98e87-faa3-4985-8884-3b8e7ea615a6,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:58", "creationDate": "2022-11-24T09:15:57", "ttl": 0, "sessionState": "33aafd3f71192b8bacd1c552a5a56f89996c0e77a2135df265b33dcb7a66efc4.40115863-3c2c-4931-8a5e-e92b7b92c549", "lastUsedAt": "2022-11-24T09:15:58", "permissionGrantedMap": { "permissionGranted": { "00cbd2ba-fe39-49bf-8968-0fe4420d014c": true } }, "outsideSid": "e2ac972c-05c3-44f9-ae1a-c46c153c1ee5", "id": "7cb98e87-faa3-4985-8884-3b8e7ea615a6", "state": "authenticated", "sessionAttributes": { "opbs": "be58426f-c2db-4555-9948-4fff327cd343", "response_type": "id_token", "session_id": "7cb98e87-faa3-4985-8884-3b8e7ea615a6", "nonce": "f7687737-2791-4b71-8707-7046f17eb578", "client_id": "00cbd2ba-fe39-49bf-8968-0fe4420d014c", "sid": "e2ac972c-05c3-44f9-ae1a-c46c153c1ee5", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d1df5b9b-7062-4aa9-bfc7-c8c818a501ea", "old_session_id": "7d6021cb-82ea-4c48-97ed-5ba9952e7b30" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:57" }, { "isJwt": false, "opbrowserState": "28c6dfc5-f289-4ed7-99b5-ef4336b92420", "deletable": true, "dn": "jansId=b37c13d0-eea7-4a4f-b9f7-478cf98bc30f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:57", "creationDate": "2022-11-24T09:15:56", "ttl": 0, "sessionState": "255baab40ee5c0e02ce3234e99bcdca9d95387984f470dae5d8b0444e6e32a83.90c65393-2741-41f6-8773-b08756b31cc8", "lastUsedAt": "2022-11-24T09:15:57", "permissionGrantedMap": { "permissionGranted": { "7406bfad-e3b7-4f35-b8a3-667587497290": true } }, "outsideSid": "177a5f80-bddb-45de-97b1-405fcf9a9037", "id": "b37c13d0-eea7-4a4f-b9f7-478cf98bc30f", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogImE4YjYyYzlkLTY1ZWEtNDM4NC1hNDkxLWU1MjkyNGM0YTBlMyIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJFUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAiYWRkcmVzcyIgXSwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJzdHJlZXRfYWRkcmVzcyIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0sCiAgICAgICJjb3VudHJ5IiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0sCiAgICAidXNlcmluZm8iIDogewogICAgICAic3RyZWV0X2FkZHJlc3MiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAiY291bnRyeSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiMGUxMzZlOWYtNWQwNS00ZWI3LThjYTctMjg3YmY5MGE0ZmU3IiwKICAibm9uY2UiIDogIjA5MmI3ODJkLWU2NmEtNDQ0OS05YTE4LWYyMmIwM2Q2NDFmZiIsCiAgImNsaWVudF9pZCIgOiAiNzQwNmJmYWQtZTNiNy00ZjM1LWI4YTMtNjY3NTg3NDk3MjkwIgp9.BbE7yWMpyH67b2BjjyRHNrJDvyj4GzA_WfY0WqzirJiIP7CCdL2I4-O6dhGgycud9Cb1X2b-fMmaW9DulFMQng", "opbs": "28c6dfc5-f289-4ed7-99b5-ef4336b92420", "response_type": "token id_token", "session_id": "b37c13d0-eea7-4a4f-b9f7-478cf98bc30f", "nonce": "092b782d-e66a-4449-9a18-f22b03d641ff", "client_id": "7406bfad-e3b7-4f35-b8a3-667587497290", "sid": "177a5f80-bddb-45de-97b1-405fcf9a9037", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid address", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "0e136e9f-5d05-4eb7-8ca7-287bf90a4fe7", "old_session_id": "f3a87093-0b31-4427-97f0-6661131fe177" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:56" }, { "isJwt": false, "opbrowserState": "0cd29ba1-d3e1-4f63-a0e7-478687be763c", "deletable": true, "dn": "jansId=b0c7323a-056f-4322-b621-ff91edbf72a8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:57", "creationDate": "2022-11-24T09:15:56", "ttl": 0, "sessionState": "ee553b227be86f8e35da082e9a403ece9d57a91f80c4408495cfc48dbd02e316.ec338918-6eb9-4cb7-a418-8afd45bc21a9", "lastUsedAt": "2022-11-24T09:15:57", "permissionGrantedMap": { "permissionGranted": { "271f4c0e-f3e5-45bb-8bda-6fe128a67fa8": true } }, "outsideSid": "33a25a0c-3512-4b2e-ad0d-d972c01b58fa", "id": "b0c7323a-056f-4322-b621-ff91edbf72a8", "state": "authenticated", "sessionAttributes": { "opbs": "0cd29ba1-d3e1-4f63-a0e7-478687be763c", "response_type": "code id_token", "session_id": "b0c7323a-056f-4322-b621-ff91edbf72a8", "nonce": "9386043e-1668-4800-b755-5f3937236646", "client_id": "271f4c0e-f3e5-45bb-8bda-6fe128a67fa8", "sid": "33a25a0c-3512-4b2e-ad0d-d972c01b58fa", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d56e2fa8-0a12-45e6-94ff-1a88fcc6b24b", "old_session_id": "db708617-e6a6-4df4-a090-f08df66b0c02" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:56" }, { "isJwt": false, "opbrowserState": "127b785b-c12e-49d0-967a-b804f9fe57b9", "deletable": true, "dn": "jansId=01dd69dd-8921-44ef-94ce-0a779ef28a08,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:57", "creationDate": "2022-11-24T09:15:56", "ttl": 0, "sessionState": "9f2521b792f7791c080857f89ecb87254d93b2aba024f2bda869dea455aac05a.04254330-7a1d-44ec-8133-0317e67fdab7", "lastUsedAt": "2022-11-24T09:15:57", "permissionGrantedMap": { "permissionGranted": { "43fefe32-1594-49b5-9d05-870af1319404": true } }, "outsideSid": "635c30c2-7ed9-49bb-82c2-ccc9c43f7b65", "id": "01dd69dd-8921-44ef-94ce-0a779ef28a08", "state": "authenticated", "sessionAttributes": { "opbs": "127b785b-c12e-49d0-967a-b804f9fe57b9", "response_type": "code token", "session_id": "01dd69dd-8921-44ef-94ce-0a779ef28a08", "nonce": "1737a7e8-fe80-4f55-97ed-3cde58cd7eca", "client_id": "43fefe32-1594-49b5-9d05-870af1319404", "sid": "635c30c2-7ed9-49bb-82c2-ccc9c43f7b65", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "832796a5-217e-4ae8-aaca-a1b523800d92", "old_session_id": "d133c438-831e-418f-afb7-6d2e845fd9fb" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:56" }, { "isJwt": false, "opbrowserState": "6175426b-98a4-4a7f-84ef-789d125d9ac4", "deletable": true, "dn": "jansId=43d027a0-d57a-4fe4-b74e-b49333e80630,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:55", "creationDate": "2022-11-24T09:15:54", "ttl": 0, "sessionState": "a9c669bac0be9348530360b44737e85ecf540280d3d5e3a168766543ea581c69.19aa0357-0816-4a34-a7e8-0d29ed1f25e4", "lastUsedAt": "2022-11-24T09:15:55", "permissionGrantedMap": { "permissionGranted": { "072ebaa4-5bfd-4586-acea-27a5fe801583": true } }, "outsideSid": "0c03bd3d-3699-4bb6-ac63-01fd73be64a0", "id": "43d027a0-d57a-4fe4-b74e-b49333e80630", "state": "authenticated", "sessionAttributes": { "opbs": "6175426b-98a4-4a7f-84ef-789d125d9ac4", "response_type": "code id_token token", "session_id": "43d027a0-d57a-4fe4-b74e-b49333e80630", "nonce": "e11173e4-fdca-43d1-828f-e93f37e69f73", "client_id": "072ebaa4-5bfd-4586-acea-27a5fe801583", "sid": "0c03bd3d-3699-4bb6-ac63-01fd73be64a0", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3ad2761a-ccb7-4bf6-8354-544456e327b3", "old_session_id": "9986a064-22d9-4352-81a0-55c676418490" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:54" }, { "isJwt": false, "opbrowserState": "3261748a-33bf-4b12-81e6-f6fed5967cfd", "deletable": true, "dn": "jansId=3527352a-cfb3-49db-b223-2141d4ee2d04,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:55", "creationDate": "2022-11-24T09:15:54", "ttl": 0, "sessionState": "9437d81edb122fd67d5b6b22c814689c787ad4895523517689fee6b9e91e1d64.3aabfdec-8d55-4b6c-a9c6-e6c3a510174c", "lastUsedAt": "2022-11-24T09:15:55", "permissionGrantedMap": { "permissionGranted": { "55b9314b-22ab-4b1a-9cb6-1f4eba3cae49": true } }, "outsideSid": "c3a8f31c-84f6-4a3a-a64f-a27e8b6cc179", "id": "3527352a-cfb3-49db-b223-2141d4ee2d04", "state": "authenticated", "sessionAttributes": { "opbs": "3261748a-33bf-4b12-81e6-f6fed5967cfd", "response_type": "code id_token", "session_id": "3527352a-cfb3-49db-b223-2141d4ee2d04", "nonce": "2ed310cd-ca21-48e9-8d55-52591c3d45f9", "client_id": "55b9314b-22ab-4b1a-9cb6-1f4eba3cae49", "sid": "c3a8f31c-84f6-4a3a-a64f-a27e8b6cc179", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email phone user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "19866e84-b454-4c50-9418-93b07b1f0870", "old_session_id": "14fabf87-8026-4acc-9c69-e4a21652b62b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:54" }, { "isJwt": false, "opbrowserState": "71f0809a-76fd-4b1f-a456-cfcf8140e572", "deletable": true, "dn": "jansId=95698f83-3f7d-4ca3-9026-a8688271d37c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:55", "creationDate": "2022-11-24T09:15:54", "ttl": 0, "sessionState": "fca3cd6010ef6c20ab3315f368107d1c9bfa2100044a75e4f63dca0016b43452.6efb9b88-626f-479b-b353-3220ab7e0f51", "lastUsedAt": "2022-11-24T09:15:55", "permissionGrantedMap": { "permissionGranted": { "cd866b49-2dad-417a-9617-d25853315771": true } }, "outsideSid": "291e5bee-0086-48ca-b4bb-fa0a9c2c7d17", "id": "95698f83-3f7d-4ca3-9026-a8688271d37c", "state": "authenticated", "sessionAttributes": { "opbs": "71f0809a-76fd-4b1f-a456-cfcf8140e572", "response_type": "code id_token", "session_id": "95698f83-3f7d-4ca3-9026-a8688271d37c", "nonce": "226baa04-7935-4fa5-adc3-23ee8c8419c8", "client_id": "cd866b49-2dad-417a-9617-d25853315771", "sid": "291e5bee-0086-48ca-b4bb-fa0a9c2c7d17", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "acr_values": "basic", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "9fa9891f-be78-4f8a-8b40-43484a488a3d", "old_session_id": "30ef48ad-95de-4c21-8a68-dff9d6c5c204" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:54" }, { "isJwt": false, "opbrowserState": "69b0b788-96bd-444e-a73b-4f34f1851886", "deletable": true, "dn": "jansId=56e0172a-c4cc-467e-a330-55a2cd5cd429,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:54", "creationDate": "2022-11-24T09:15:53", "ttl": 0, "sessionState": "6daea6ad3264fe169d26082c3cb922196025d8a0346650ff29c22efb6e7a3f86.579f2bf2-799f-4f50-adf3-b3f695d96ae9", "lastUsedAt": "2022-11-24T09:15:55", "permissionGrantedMap": { "permissionGranted": { "e8c4b636-65c3-46c3-9744-adec94adfb77": true } }, "outsideSid": "f6bfe7e6-54d6-4f76-9651-22190026e241", "id": "56e0172a-c4cc-467e-a330-55a2cd5cd429", "state": "authenticated", "sessionAttributes": { "request": "ewogICJraWQiIDogIjZmYjE4NTlhLTU0ZDktNDdjNi1hMjkzLTkyY2UyY2VlNjNlMCIsCiAgInR5cCIgOiAiand0IiwKICAiYWxnIiA6ICJSUzI1NiIKfQ.ewogICJzY29wZSIgOiBbICJvcGVuaWQiLCAiYWRkcmVzcyIgXSwKICAiY2xhaW1zIiA6IHsKICAgICJpZF90b2tlbiIgOiB7CiAgICAgICJzdHJlZXRfYWRkcmVzcyIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0sCiAgICAgICJjb3VudHJ5IiA6IHsKICAgICAgICAiZXNzZW50aWFsIiA6IHRydWUKICAgICAgfSwKICAgICAgImF1dGhfdGltZSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0sCiAgICAidXNlcmluZm8iIDogewogICAgICAic3RyZWV0X2FkZHJlc3MiIDogewogICAgICAgICJlc3NlbnRpYWwiIDogdHJ1ZQogICAgICB9LAogICAgICAiY291bnRyeSIgOiB7CiAgICAgICAgImVzc2VudGlhbCIgOiB0cnVlCiAgICAgIH0KICAgIH0KICB9LAogICJyZXNwb25zZV90eXBlIiA6IFsgInRva2VuIiwgImlkX3Rva2VuIiBdLAogICJyZWRpcmVjdF91cmkiIDogImh0dHBzJTNBJTJGJTJGamVua2lucy1idWlsZC5qYW5zLmlvJTJGamFucy1hdXRoLXJwJTJGaG9tZS5odG0iLAogICJzdGF0ZSIgOiAiNTkzNGVlZmYtNzE0ZS00MDBjLThhMzMtMzEwNTAyY2U3MDgyIiwKICAibm9uY2UiIDogIjQ5ZjZkMjAxLTlhOWItNDY0My1iZTI1LTUxMjBkOWI1NTk0NiIsCiAgImNsaWVudF9pZCIgOiAiZThjNGI2MzYtNjVjMy00NmMzLTk3NDQtYWRlYzk0YWRmYjc3Igp9.L4MdYlpr_5TNPKunMszw3CYk1xvURSMVBbX446jeuBOZs_TVmjJyCJZLSixv3UI-JmAZJv6RN6Ajqk-3EI_iRV2TO75ZccV3qxPTenRwEfUMkN6Xx4lc3cIBYvdyUBoFJY9nwNUY6Qdb6P6HX9aMbLQqJq3T0uiWiU0BfThSLw2jGOWr5JDKgfC30WJFLSQF62cr3hwXGdtV_vwO5mV2yN1b6CbwKu63fqGyAFxWAJOqdVvKmqBU36PGigdJNXwcm-6rWC8RDi_dC6UWTw4MK7LR5jgHgS5Mx3b7Nz4FWJVp8s37FS70wq1xTwlWqW65LNK_H-n295Rcm0W2UtiPqQ", "opbs": "69b0b788-96bd-444e-a73b-4f34f1851886", "response_type": "token id_token", "session_id": "56e0172a-c4cc-467e-a330-55a2cd5cd429", "nonce": "49f6d201-9a9b-4643-be25-5120d9b55946", "client_id": "e8c4b636-65c3-46c3-9744-adec94adfb77", "sid": "f6bfe7e6-54d6-4f76-9651-22190026e241", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid address", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "5934eeff-714e-400c-8a33-310502ce7082", "old_session_id": "88ce3382-ee44-4984-b751-e88f62149d84" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:53" }, { "isJwt": false, "opbrowserState": "137d8f57-b328-454a-a985-ce613e0377ba", "deletable": true, "dn": "jansId=4f306e00-71ce-4c4c-a678-a77af826c366,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:52", "creationDate": "2022-11-24T09:15:51", "ttl": 0, "sessionState": "2fd6b09ced90c6de95ad4a7b5e950011859ed381de2df43ea71aeb915e980e23.80ae8e5c-edce-47f9-8ff9-6142831dd37f", "lastUsedAt": "2022-11-24T09:15:53", "permissionGrantedMap": { "permissionGranted": { "85aec611-88ed-45c0-92b1-d6b091d20913": true } }, "outsideSid": "fd2392bf-cbdb-4ad7-97f8-8d4471d39102", "id": "4f306e00-71ce-4c4c-a678-a77af826c366", "state": "authenticated", "sessionAttributes": { "customParam2": "value2", "customParam3": "value3", "opbs": "137d8f57-b328-454a-a985-ce613e0377ba", "customParam1": "value1", "response_type": "token id_token", "session_id": "4f306e00-71ce-4c4c-a678-a77af826c366", "customParam4": "value4", "customParam5": "value5", "nonce": "9d9f0de6-7e7c-486d-ad96-b476d3275bb2", "client_id": "85aec611-88ed-45c0-92b1-d6b091d20913", "sid": "fd2392bf-cbdb-4ad7-97f8-8d4471d39102", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid test", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "52407688-e576-4244-9f74-815adcec2565", "old_session_id": "6a87b797-4f87-4926-a3e4-1952adbf3932" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:51" }, { "isJwt": false, "opbrowserState": "782959aa-39b5-4953-ac89-1e0127c6ca58", "deletable": true, "dn": "jansId=42c1203e-1ca6-4016-817b-3eddaf48dfc9,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:53", "creationDate": "2022-11-24T09:15:51", "ttl": 0, "sessionState": "e89aca0bd2b6d36ac405bb3e277bd96acd986089099c73b44d5a7710f8169a59.6d642955-a063-495a-ac60-3217af12b5fa", "lastUsedAt": "2022-11-24T09:15:53", "permissionGrantedMap": { "permissionGranted": { "d388accb-fdab-4794-9bbc-ad2424468f18": true } }, "outsideSid": "eada8ea5-d502-4520-b23c-8ae8336eb54e", "id": "42c1203e-1ca6-4016-817b-3eddaf48dfc9", "state": "authenticated", "sessionAttributes": { "opbs": "782959aa-39b5-4953-ac89-1e0127c6ca58", "response_type": "code id_token", "session_id": "42c1203e-1ca6-4016-817b-3eddaf48dfc9", "nonce": "9c2e9f92-3f3c-40b7-959a-fe5131638791", "client_id": "d388accb-fdab-4794-9bbc-ad2424468f18", "sid": "eada8ea5-d502-4520-b23c-8ae8336eb54e", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "login_hint": "test_user", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "a21ea0aa-bfc6-4063-9dff-a41a21266fa5", "old_session_id": "56636087-4d85-4eb5-9783-e1deadca259c" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:51" }, { "isJwt": false, "opbrowserState": "958f8591-1c12-4f4e-83ed-670364372e81", "deletable": true, "dn": "jansId=82fe9953-252b-4753-87d7-2819e3cf971c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:51", "creationDate": "2022-11-24T09:15:50", "ttl": 0, "sessionState": "90c397c38fd146cc87c6c40ce0ad1e4b9147d86f5afebe0b35fe37755f641216.9d710cec-6f18-43a4-8dbe-1c1171b18d89", "lastUsedAt": "2022-11-24T09:15:52", "permissionGrantedMap": { "permissionGranted": { "743d8c18-009e-4b54-926f-d940a3510e8f": true } }, "outsideSid": "f1e946ac-9573-409e-8236-dc355c15abbe", "id": "82fe9953-252b-4753-87d7-2819e3cf971c", "state": "authenticated", "sessionAttributes": { "opbs": "958f8591-1c12-4f4e-83ed-670364372e81", "response_type": "code", "session_id": "82fe9953-252b-4753-87d7-2819e3cf971c", "client_id": "743d8c18-009e-4b54-926f-d940a3510e8f", "sid": "f1e946ac-9573-409e-8236-dc355c15abbe", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7f9a857f-3766-46cb-9ac1-7db1d299b8e9", "old_session_id": "6700b119-fa93-46c0-a649-8b35f7e27403" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:50" }, { "isJwt": false, "opbrowserState": "911a3042-1a9b-4ff1-960a-349a62bd25fe", "deletable": true, "dn": "jansId=b115a0e0-71fa-4a67-82b8-4e1cdae7026a,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:49", "creationDate": "2022-11-24T09:15:49", "ttl": 0, "sessionState": "c353d7ecd6b6ce54fbadb80c73b590e096ccafaeee56a4b2366867859480868a.4e49fcba-f488-4f9b-925b-9eb68040a09d", "lastUsedAt": "2022-11-24T09:15:49", "permissionGrantedMap": { "permissionGranted": { "fc6c37a2-be5f-4810-adac-3571fc60d9dd": true } }, "outsideSid": "09e5be1c-3685-4115-b36d-44948ae13afd", "id": "b115a0e0-71fa-4a67-82b8-4e1cdae7026a", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "911a3042-1a9b-4ff1-960a-349a62bd25fe" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:49" }, { "isJwt": false, "opbrowserState": "81bc078e-5479-4f05-a94d-ca560ff6c8a7", "deletable": true, "dn": "jansId=5df939da-8938-4644-81a5-acf073d8ced8,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:50", "creationDate": "2022-11-24T09:15:49", "ttl": 0, "sessionState": "d86e78c7309a480e558efcc947dbd1f38178f384fef9c2a66384112259a98887.e5fde3af-22a9-474d-b0d1-1bb24b696b0d", "lastUsedAt": "2022-11-24T09:15:50", "permissionGrantedMap": { "permissionGranted": { "ad4dc665-d10c-4bf6-b582-980ede2893fc": true } }, "outsideSid": "8514e261-57fb-4e0a-85b2-70fb7e8f8e5f", "id": "5df939da-8938-4644-81a5-acf073d8ced8", "state": "authenticated", "sessionAttributes": { "opbs": "81bc078e-5479-4f05-a94d-ca560ff6c8a7", "response_type": "code id_token", "session_id": "5df939da-8938-4644-81a5-acf073d8ced8", "nonce": "6f3e046a-e860-43a7-b0aa-0a3c7a419bc8", "client_id": "ad4dc665-d10c-4bf6-b582-980ede2893fc", "sid": "8514e261-57fb-4e0a-85b2-70fb7e8f8e5f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user2", "scope": "openid profile address email phone user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "33325ea0-1ae1-48a9-bbb6-f10b550aa1f8", "old_session_id": "bf029afa-a9b1-4924-a047-34f1aa2518fe" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B799,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:49" }, { "isJwt": false, "opbrowserState": "a88041a9-3946-4d67-909c-faa8b22f8628", "deletable": true, "dn": "jansId=6ee5be7c-bee9-4e90-be22-57fd702bdb3c,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:49", "creationDate": "2022-11-24T09:15:49", "ttl": 0, "sessionState": "1fd2b4f6e5875e20aac2cba36c59132727569ad2e0d975b4c07443b30c72bb4a.37231087-49d8-4466-b83f-ef0b9a48bac9", "lastUsedAt": "2022-11-24T09:15:49", "permissionGrantedMap": { "permissionGranted": { "9ba14472-ff70-4667-9968-96b6e615a6c1": true } }, "outsideSid": "c26ee4ff-5736-47d1-aaa7-971deecadefc", "id": "6ee5be7c-bee9-4e90-be22-57fd702bdb3c", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "a88041a9-3946-4d67-909c-faa8b22f8628" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:49" }, { "isJwt": false, "opbrowserState": "7c7407ed-7ec3-4485-a1c3-cff561a3b243", "deletable": true, "dn": "jansId=090936f9-47fe-4573-9029-5655fd67959d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:49", "creationDate": "2022-11-24T09:15:49", "ttl": 0, "sessionState": "bdb26b3d35f93daa3c13450879fd8303c145c6d988d04c73c4558dedc4d90fc1.a84f6742-2402-4ffc-bd41-5604e23f0c1e", "lastUsedAt": "2022-11-24T09:15:50", "permissionGrantedMap": { "permissionGranted": { "a24aaa5d-dfaf-4803-852f-0893037853f7": true } }, "outsideSid": "f3c576e3-8b15-451e-9a57-d874b681472f", "id": "090936f9-47fe-4573-9029-5655fd67959d", "state": "authenticated", "sessionAttributes": { "opbs": "7c7407ed-7ec3-4485-a1c3-cff561a3b243", "response_type": "code id_token", "session_id": "090936f9-47fe-4573-9029-5655fd67959d", "nonce": "3cb69163-9d63-43d3-803e-8fb4d244f010", "client_id": "a24aaa5d-dfaf-4803-852f-0893037853f7", "sid": "f3c576e3-8b15-451e-9a57-d874b681472f", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email phone user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "7a39b234-9b99-48a3-8b8f-e02a266576c6", "old_session_id": "c79fe03c-af27-4a09-923b-3de88b324252" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:49" }, { "isJwt": false, "opbrowserState": "0d8bcfe8-2a4b-46c8-bffa-32d1bad92e08", "deletable": true, "dn": "jansId=9f573ae1-f6d2-43cc-9cf7-ac7a674fc897,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:48", "creationDate": "2022-11-24T09:15:48", "ttl": 0, "sessionState": "75595aa1deda7c04de0687742c6cbe089cf221b0f1bf301b06d72e7ece4b25c8.91c82410-435a-4a2d-b75e-87e77e8d8754", "lastUsedAt": "2022-11-24T09:15:48", "permissionGrantedMap": { "permissionGranted": { "8a6fb99f-cdfa-4e72-a956-613c933aeeee": true } }, "outsideSid": "d537d09a-33a1-4fab-9d30-fd87f9a651d0", "id": "9f573ae1-f6d2-43cc-9cf7-ac7a674fc897", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "0d8bcfe8-2a4b-46c8-bffa-32d1bad92e08" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:48" }, { "isJwt": false, "opbrowserState": "8a893a82-be77-483e-b580-f50342fb7a2b", "deletable": true, "dn": "jansId=1c2bc1c9-e3d5-425a-8e11-7332f7c1ab4d,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:47", "creationDate": "2022-11-24T09:15:47", "ttl": 0, "sessionState": "2a28362b7ee5326948e5029db6aff768b78fe469a232af0d018adc3398b3fc37.9e8c83b6-7649-4a8b-a885-b02033a7ab9f", "lastUsedAt": "2022-11-24T09:15:47", "permissionGrantedMap": { "permissionGranted": { "344558ab-2668-4728-bc2e-bf9e1d2fab4b": true } }, "outsideSid": "47a7b387-ff7f-4b05-92e4-b6ccbda99c4e", "id": "1c2bc1c9-e3d5-425a-8e11-7332f7c1ab4d", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "8a893a82-be77-483e-b580-f50342fb7a2b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:47" }, { "isJwt": false, "opbrowserState": "369c9e0b-1bb3-4262-bf14-082151d8f2f0", "deletable": true, "dn": "jansId=28810c54-6cd0-4561-9a18-c48efc7d9516,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:47", "creationDate": "2022-11-24T09:15:47", "ttl": 0, "sessionState": "1f39041c8f103ea4f1e6b109d75eb4dae783a6753e70cf70ce3f26f92173d20b.f46eba67-4fbc-4d8e-977d-5e6136927527", "lastUsedAt": "2022-11-24T09:15:47", "permissionGrantedMap": { "permissionGranted": { "9c812e81-7c7c-4680-b0bc-e6f849ad781b": true } }, "outsideSid": "3995f7a2-1ec6-4635-8ce2-7de9ee900f25", "id": "28810c54-6cd0-4561-9a18-c48efc7d9516", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "369c9e0b-1bb3-4262-bf14-082151d8f2f0" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:47" }, { "isJwt": false, "opbrowserState": "c57f670e-e40e-4a76-9207-d4086f3fa4b1", "deletable": true, "dn": "jansId=1c52e7a4-2798-4c99-b031-22f000a4ab90,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:47", "creationDate": "2022-11-24T09:15:47", "ttl": 0, "sessionState": "a849792a7377a0387c1f9884cf8eef4b851709af0d142ca935613edc0ea7b80e.ed57ab7e-b664-4afa-bd10-e0fee01ebfb2", "lastUsedAt": "2022-11-24T09:15:47", "permissionGrantedMap": { "permissionGranted": { "6fb858a6-bea6-4d85-a359-5518192c4b80": true } }, "outsideSid": "fb775b32-1454-4c8e-a2ee-8c7115b61550", "id": "1c52e7a4-2798-4c99-b031-22f000a4ab90", "state": "authenticated", "sessionAttributes": { "successful_rp_redirect_count": "1", "opbs": "c57f670e-e40e-4a76-9207-d4086f3fa4b1" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:47" }, { "isJwt": false, "opbrowserState": "e2e4b8e1-fcc3-474b-b661-7eb5e1a2d2cd", "deletable": true, "dn": "jansId=5c0e37e3-ac79-45a4-8d55-aa261b8883fa,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:45", "creationDate": "2022-11-24T09:15:44", "ttl": 0, "sessionState": "8d3464142cef344a82bc769ce915144b66407ca006da0443b0695fb97d8892c4.fb5e19ad-66d2-424f-95e2-8ba42e4c4be7", "lastUsedAt": "2022-11-24T09:15:46", "permissionGrantedMap": { "permissionGranted": { "5d231811-93b2-4ff1-bea9-a45504e67451": true } }, "outsideSid": "7598ead5-6d5e-4b0b-b862-003fa37b65e2", "id": "5c0e37e3-ac79-45a4-8d55-aa261b8883fa", "state": "authenticated", "sessionAttributes": { "request": "eyJraWQiOiJmNTg0MGU1OS1mMjA1LTRhYjUtOWRiNC02ODUwYTZlZWJlNGFfZW5jX3JzYTFfNSIsInR5cCI6Imp3dCIsImVuYyI6IkExMjhDQkMrSFMyNTYiLCJhbGciOiJSU0ExXzUifQ.ckA1wqEG71H1WlrER0u9CxtGmh1W_hhTGN30aOcmH5MpJw2YN-nUHCcOx-io6qXNN7GetqOq44-uMgE0r0woiGA1_dIo_CndsuupTpeq-X74z2pzdc-_lfqXoB3c8210IC1zs-WMfD15rzu7XetteGX7UUzEbsVjQU2ouPlQaX_MK58O9dxq2lY8GjpohF4-BAtoqTPNEz_uwakU4SJt6ovsh8xGot9dSKjnSYprhyr7vPmCz3A9925Juc0VhdqOShpkaGQODlNLgqvZrKcMouOyUkItFluSnZQL2T2C_Tw0gzW4aBbMZSsC-bmMRdAGGKd83JvJVf61_mR4PFDKbQ.yESBKDfThCIvSVtcPHVePw.BqVtWMPMWDAN0STMPOcgNC_qjaJ1BNPCoGwEcqPqGwJsOQV-SQoRdM4or9FI3s-fPJjWWWm9JsbU9Nfr2D5brwYx45x-fNH9FtLeC-59fdEsX8BYbwaeFxMcD3bohGu__SniU8LqkDEeFX_5Sc88eY6wSSt9Uh241KonT0_8MWcUBLQidISZY3eUT2UrPFR2LvQ_Ctv9CEXepDwicebW41MuxqAk1XneXd7GTunOHp4Cmg8ky0-r7MFNDz1is24etx0HzqQLTJZoQ4JvjpFvMto98S1I4WUIgHQIS2DEBbkow7EHgBtRuIKkx6aXmY4qdUFabVROcemZFlsirIKlFnOB6EFzWgG6Zi7_lgArOn7W1jSlLq07XpxdLn4YPctYPFJQ9QuVZoPKdm0aaoe44GA6qwGs-buSVTd8yUoNqrKYFYgRy18r5ocOe-A5arpj7uQyrHvhGlpO1HgFyi0gtGxV0huGIO-hLRT1hb6YbQm7GR5gUrjz_a8hddAdrtym6WbniRyn7fEUcfYkJH-HJtwbYuRsDOqfmZ7nAOu8H_tEsucTDu1AmvaQYvauaQCdtlitUTjZ1Vge2ktb_mEVf8als6H9Y65RCx30cKRZ9h2Ivxi31BdLWOuQk-M8BymLHW0k8glIWBxL6rpHNbDhKZEpjdOT6r3dTs-NxPc1_82PzuFs4XQvr-I7Ep_QXVpf8DADsc8j8MqPszW0fvY1cYFRccymF6Oq_pm5TqQwYJQlhQBzVwKna915BPyBMfcmqnTPNOxqbJRWCmaPU2QQztFLDUTUfp4UWPRr4iA9wYIqIA0bWn9DMuMrqvQeAGaMRl-ZEjrABqFBVtY5PumuC-nalFDoqLMu35GV5MVpvOU.XQLXcYuPvhj8JguLwtgPixyj4uOp9XrMTZ5oMD1hdlc", "opbs": "e2e4b8e1-fcc3-474b-b661-7eb5e1a2d2cd", "response_type": "token id_token", "session_id": "5c0e37e3-ac79-45a4-8d55-aa261b8883fa", "nonce": "b3360c59-ae57-4c54-b2f6-456bad7c37a6", "client_id": "5d231811-93b2-4ff1-bea9-a45504e67451", "sid": "7598ead5-6d5e-4b0b-b862-003fa37b65e2", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid address", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "969a3b3e-215a-40b2-b3f8-9d687af67210", "old_session_id": "c5ea2c3e-c4e8-40fa-a4c6-829ff4a6c797" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:44" }, { "isJwt": false, "opbrowserState": "8a31de1a-5aac-4ffe-922f-5df3d96ecb48", "deletable": true, "dn": "jansId=9ef58684-dc6e-4ede-8e78-7c6ef061fe47,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:45", "creationDate": "2022-11-24T09:15:43", "ttl": 0, "sessionState": "90b656966427fd3c3a8082200244c998cbc52b4d3d5f5e6b189864cff4b57d90.0732458a-e21e-411a-b85b-2f68333f9567", "lastUsedAt": "2022-11-24T09:15:46", "permissionGrantedMap": { "permissionGranted": { "7e69c87e-7c3f-4f0b-8a41-b0c1419b1021": true } }, "outsideSid": "67677e27-2180-474d-b142-384f0798b303", "id": "9ef58684-dc6e-4ede-8e78-7c6ef061fe47", "state": "authenticated", "sessionAttributes": { "opbs": "8a31de1a-5aac-4ffe-922f-5df3d96ecb48", "response_type": "code id_token", "session_id": "9ef58684-dc6e-4ede-8e78-7c6ef061fe47", "nonce": "571d41a6-3ee1-4e69-9c9b-1c800d416281", "client_id": "7e69c87e-7c3f-4f0b-8a41-b0c1419b1021", "sid": "67677e27-2180-474d-b142-384f0798b303", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "acr_values": "basic_alias1", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "3727ee95-bc28-46a2-92ef-6ad660c43d0e", "old_session_id": "0db84805-0f3b-4d77-b877-698df664326b" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:43" }, { "isJwt": false, "opbrowserState": "fa2433d2-d59e-475f-b913-769d6843ecf8", "deletable": true, "dn": "jansId=3c531818-56cb-4233-87be-1e15ada09228,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:42", "creationDate": "2022-11-24T09:15:40", "ttl": 0, "sessionState": "01cefc476d456835665499b6ec0246bbea110f7337f41da2c56c2e9cba304479.a50dea37-a454-4920-a991-c86f1eb00d98", "lastUsedAt": "2022-11-24T09:15:43", "permissionGrantedMap": { "permissionGranted": { "a1430af8-b561-421f-954d-9458b456583f": true } }, "outsideSid": "bda44adf-f5a0-4c90-97b8-dc8d07bb72eb", "id": "3c531818-56cb-4233-87be-1e15ada09228", "state": "authenticated", "sessionAttributes": { "opbs": "fa2433d2-d59e-475f-b913-769d6843ecf8", "response_type": "code id_token", "session_id": "3c531818-56cb-4233-87be-1e15ada09228", "nonce": "92e2db45-b7e7-4c1b-801e-d85c79648477", "client_id": "a1430af8-b561-421f-954d-9458b456583f", "sid": "bda44adf-f5a0-4c90-97b8-dc8d07bb72eb", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email", "acr_values": "basic_alias2", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "d2b81f3e-1bcc-4963-84c2-bbd5f2e08d48", "old_session_id": "453f4c35-b5d2-4fa9-8170-aece3a112ab4" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:40" }, { "isJwt": false, "opbrowserState": "321f1bb0-d9ee-47bd-9b2b-709ec7fd0e91", "deletable": true, "dn": "jansId=17cb89a2-84c4-4633-9141-198d59fc4d71,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:42", "creationDate": "2022-11-24T09:15:39", "ttl": 0, "sessionState": "3595cf2ca902bb40f5f239018b6badb518c0c7bca856e170046669228508c96a.d500eca8-ca0a-4309-b43d-11ced8487e43", "lastUsedAt": "2022-11-24T09:15:43", "permissionGrantedMap": { "permissionGranted": { "7919fe99-e4c0-4c30-ad0d-a05bf32c4f44": true } }, "outsideSid": "6890fc5f-2607-4b09-8fe6-70005c45b26b", "id": "17cb89a2-84c4-4633-9141-198d59fc4d71", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.vSDVPSgs8tLXe3anZydNRgMtJuTrd-WdkImw-3mEoDrt4che62pl7Q.1tDmq1Q6IsMSZn3m.XkrT3OsHxBXJLswldcicWJiWvqrm0kNr4TjRIsCLKAZ9YncYZwK9JNalC01rIKQglN4PncfZx6vSZ35furI4BgxVLE_gZ4NLPfeZp_FsqCfQd5EpapERUHdEiycK-Plk8qzCTuQ8ijnHlZljr4lDOSa0vzem_klWqkFpa00n5BzmtKbu__5XmulS2bFj1cVsGmbfeJQu01dMqd8X_nunovw9ApAjoEhCSoAD4w1pa9gpgvXedn4JlqrlBC2-_r4eFyNarOzLFwkVfcGof-qopBG7VvrzCCi1_-QAvoVbiRJK4SJ-yUarJqJBUxmkQUScX-0dLuwxFkwUskNr_mH5T9hnRdxOIZTsXL0xmk4Dsdya-5Pow1_crmoFbrvAp-ruB2ld3ZN5OhIZ2RUkdT9fphND34AAF2LP2J4iBPbppbQOg5UxcJpYDI1LTuMSns642VQ5j7BzU5OFDeVPk_TeQbUo-V721aZAHIcF24CfGV3JhEVaxABFTVMWKBv-7j8ft-Y4PkYM_NA9Tc10pulDFYoJi1LvTHQkj_m2yBZM8b4vS25uirSZEk932pOFAmoqAIZMsxzR5rJjlh07ONArgF_9Y8X9VjskqabYwLBLqdeEv0OOW3cy63f2IsIvhp_o2T5sWPEyxg4hggMnhwDiyQzB7gzdK9SQbZoHI8kMn3PIRPVBAnsjgkgNRtN8dDAJxsI8X9t4Q1mYdbqN21idosg88r8HdH3Z4ZV4pPEs6lgaW78kJ8K1GJFl5WbldNRLJyw1lo8yXp-U3cqpLZPVZVyhocmoXyGUmwenByapC5L3NiDymNWkC3uFdUutBEdJI0hA9P6jsRvTC__DT4mfWupWFsdFp9RRSNdMOA.bR5KMqfqzsv0GMl6UyWBmQ", "opbs": "321f1bb0-d9ee-47bd-9b2b-709ec7fd0e91", "response_type": "token id_token", "session_id": "17cb89a2-84c4-4633-9141-198d59fc4d71", "nonce": "0f399284-92f2-46dc-a6f9-d0f989973e1f", "client_id": "7919fe99-e4c0-4c30-ad0d-a05bf32c4f44", "sid": "6890fc5f-2607-4b09-8fe6-70005c45b26b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid address", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "ca760347-1ce1-4c90-8cf6-2d00a384c6a8", "old_session_id": "a17eb2bb-fc38-4fdc-83ca-96ddf7299796" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:39" }, { "isJwt": false, "opbrowserState": "c27404c6-c89c-458f-913d-a4dc1547a0e8", "deletable": true, "dn": "jansId=223abdfb-fb97-4c14-a2ce-c81c2bca1611,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:36", "creationDate": "2022-11-24T09:15:29", "ttl": 0, "sessionState": "ad4975cf335c8f00bb1abd63592d14833f3085cededa9779c616381412ae6db3.e4c8bd72-4cfe-4014-b322-bf450f66c318", "lastUsedAt": "2022-11-24T09:15:38", "permissionGrantedMap": { "permissionGranted": { "257c6f4d-f26c-4765-97e8-8972a1be20d1": true } }, "outsideSid": "a561c9bf-e039-4aa6-aa11-d264e396d659", "id": "223abdfb-fb97-4c14-a2ce-c81c2bca1611", "state": "authenticated", "sessionAttributes": { "opbs": "c27404c6-c89c-458f-913d-a4dc1547a0e8", "response_type": "code id_token", "session_id": "223abdfb-fb97-4c14-a2ce-c81c2bca1611", "nonce": "cb2d16e4-27d3-427a-932e-15fbfd0a06b2", "client_id": "257c6f4d-f26c-4765-97e8-8972a1be20d1", "sid": "a561c9bf-e039-4aa6-aa11-d264e396d659", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile address email user_name", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "f4354347-8929-446d-bb67-74085491bc21", "old_session_id": "0390985d-485a-4355-9a85-0861a9ba38fa" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:29" }, { "isJwt": false, "opbrowserState": "5b2dbe70-eca1-40f1-a3aa-af4db38c1b3a", "deletable": true, "dn": "jansId=3dbcfa14-93f8-4bc5-a7e7-fc3e7cd39fa0,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:36", "creationDate": "2022-11-24T09:15:29", "ttl": 0, "sessionState": "388d5480eaff07c6a3a6c1d34803d473d3deb74889d0b7b945b02545446567d5.ba24d6b6-bfc5-4aae-870c-87cc70c67beb", "lastUsedAt": "2022-11-24T09:15:38", "permissionGrantedMap": { "permissionGranted": { "9b97ca33-14b0-476a-bbb5-fbbb40c651d0": true } }, "outsideSid": "996dc400-6ec6-4d26-bc98-a8ccb48b0527", "id": "3dbcfa14-93f8-4bc5-a7e7-fc3e7cd39fa0", "state": "authenticated", "sessionAttributes": { "request": "eyJ0eXAiOiJqd3QiLCJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiQTEyOEtXIn0.SLQmV-8kDezI5BLW2QhhzMPg8m1Sp-Ud.jUwhXTQBXCoj8f_A.Qe34pLugBzdmNXfTLiSsARlC8s8vye-b_BsdaFloA1APZuDVKd85VTIro8-SP4Io8InVLBrQjY-ZwzwINgvSo-_LUvil_Ml7d0IeSuXD0fl8CJ50uLvyEIwo_V1M8IghPS8gXVTqt7X1BUkjnPis1mfxx4DI1SJhuIZWapLFOE6beQvMf0pRWIazOwqzzntLArYGKVvboVQ6vQHVFyUWttswpBc72Y_9AoOB5Bnv75e33Wi0Rx1bt_F8d_FlkWz6rt18VEbiqtEpA4ik08zEg5RIwtUbjlwqqIp8eDNcPuQ6lxn4AzPPK9dcUq6Jm9NppfdjVftWjkBJ9ZvkCzewCwoWoSuoH3qttr1I72HAkdfGn7SohtLSqd59G0F2sk8LOnxUV56LIRqOwfA2iJumXGSFJI9Tp7_gLNoiAkZgI5ges-yZbNcQRQpBLlFeopQaq59bm-P1TUlZ4pnZRhslO_PvXL8liAImJOOEdjQWnOGKi-SbMYebWxMhnp44YUQAtpSOUbYv-wVeY0Vnh8Jv2mL8PpKZKp2gmKzZFngM7u_igWzCCo7UQHdB7YMuo0w-jHNx2x94A0lx_MlXyAhBNsqAiLPAgS2EkkTKMEXWwFp6yxHy5lhFwpbXDZ0jZXCsPXJXaLa7_MmOel8PkY5V2Pq1ZWdJRDgFcNKSfrkR2inazLHdY0LnJfOVi2yqsIdod2PxXQNkE46dYY2m_xiqSbaJDI8hrQPdKPiVHzwmBrYHDSU__XII1J3mKzW4b5gFeeMerNIoyF9qVvmZ7zWSIauLHIDFL1izb6bNdSxadLVB_3dG3a-eoK-7y7Z9q175LJ3Bq1LmbithE90Msahxv-CZB5MBlIhUgWHAhQ.v00oZ6hpTEJfqinGSlQ5gg", "opbs": "5b2dbe70-eca1-40f1-a3aa-af4db38c1b3a", "response_type": "token id_token", "session_id": "3dbcfa14-93f8-4bc5-a7e7-fc3e7cd39fa0", "nonce": "388dda8f-3bbb-4c94-956c-b7c0b53ed62c", "client_id": "9b97ca33-14b0-476a-bbb5-fbbb40c651d0", "sid": "996dc400-6ec6-4d26-bc98-a8ccb48b0527", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid address", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "4f75dc1b-692b-4efe-9788-20fd0c2d0b71", "old_session_id": "498376bd-5b86-4826-8262-995d0d3fe239" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:29" }, { "isJwt": false, "opbrowserState": "e763d0c7-34ed-4546-a278-20894481e8b7", "deletable": true, "dn": "jansId=6a9841c8-2063-4a5c-ae53-7bf4dd85255f,ou=sessions,o=jans", "authenticationTime": "2022-11-24T09:15:36", "creationDate": "2022-11-24T09:15:29", "ttl": 0, "deviceSecrets": [ "51c6e16c-111f-4d2a-8e4e-fff245067976" ], "sessionState": "71ac80c433e975d459dd331bcd658e5e5dcc8e5d6c5e818991ed9cfbec9cee81.fc913c7e-b5eb-4270-9c07-21fcbc30f1e4", "lastUsedAt": "2022-11-24T09:15:38", "permissionGrantedMap": { "permissionGranted": { "8d472430-6347-45b3-acaf-c0ecf2c9a7e7": true } }, "outsideSid": "39affff5-2a1a-4c3c-b4fd-df4a1e27975b", "id": "6a9841c8-2063-4a5c-ae53-7bf4dd85255f", "state": "authenticated", "sessionAttributes": { "opbs": "e763d0c7-34ed-4546-a278-20894481e8b7", "response_type": "code id_token", "session_id": "6a9841c8-2063-4a5c-ae53-7bf4dd85255f", "nonce": "bed13349-bf08-4309-8852-c74c20c3607d", "client_id": "8d472430-6347-45b3-acaf-c0ecf2c9a7e7", "sid": "39affff5-2a1a-4c3c-b4fd-df4a1e27975b", "auth_step": "1", "acr": "basic", "successful_rp_redirect_count": "1", "remote_ip": "127.0.0.1", "auth_user": "test_user", "scope": "openid profile device_sso email", "redirect_uri": "https://jenkins-build.jans.io/jans-auth-rp/home.htm", "state": "bcabf322-7e1a-4923-b613-ff759a434512", "old_session_id": "daa6f877-8683-4e8d-b463-e8dcc0653f21" }, "persisted": false, "userDn": "inum=B1F3-AEAE-B798,ou=people,o=jans", "expirationDate": "2022-11-25T09:15:29" } ] 24-11 09:33:50.770 INFO com.intuit.karate.Runner Runner.java:264- <> feature 35 of 47: src/test/resources/feature/session/session.feature --------------------------------------------------------- feature: src/test/resources/feature/session/session.feature report: target/surefire-reports/src.test.resources.feature.session.session.json scenarios: 2 | passed: 2 | failed: 0 | time: 1.3065 --------------------------------------------------------- 24-11 09:33:50.816 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:50.816 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:50.816 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:50.816 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:50.817 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:50.817 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:50.818 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:50.818 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:50.818 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:50.818 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:50.822 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:50.822 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:50.823 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:50.823 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:50.824 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:50.824 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:50.824 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:50.825 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:50.825 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:50.825 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:50.867 INFO com.intuit.karate.Logger Logger.java:104- [print] { "lastUpdate": "2022-11-24T09:30:02", "dbType": "spanner", "facterData": { "ipaddress": "10.138.169.60", "swapfree": "0.0%", "hostname": "jenkins-build.jans.io", "load_average": "1.66", "memoryfree": "68.5%", "free_disk_space": "83.6%", "uptime": "0:20" } } 24-11 09:33:50.917 INFO com.intuit.karate.Runner Runner.java:264- <> feature 36 of 47: src/test/resources/feature/health/server-health.feature --------------------------------------------------------- feature: src/test/resources/feature/health/server-health.feature report: target/surefire-reports/src.test.resources.feature.health.server-health.json scenarios: 1 | passed: 1 | failed: 0 | time: 0.0404 --------------------------------------------------------- 24-11 09:33:50.927 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:50.927 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:50.927 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:50.927 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:50.928 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:50.928 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:50.928 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:50.928 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:50.928 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:50.929 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:50.938 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:50.939 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:50.939 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:50.939 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:50.940 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:50.941 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:50.941 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:50.941 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:50.941 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:50.941 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:51.034 INFO com.intuit.karate.Logger Logger.java:104- [print] [ { "name": "jans-config-api liveness", "status": "UP" }, { "name": "jans-config-api readiness", "status": "UP" } ] 24-11 09:33:51.041 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:51.041 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:51.041 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:51.042 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:51.049 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:51.050 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:51.050 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:51.050 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:51.050 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:51.050 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:51.054 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:51.054 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:51.055 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:51.055 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:51.055 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:51.055 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:51.056 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:51.056 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:51.056 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:51.056 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:51.094 INFO com.intuit.karate.Logger Logger.java:104- [print] Status [name=jans-config-api liveness, status=UP, error=null] 24-11 09:33:51.110 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:51.110 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:51.110 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:51.110 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:51.117 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:51.118 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:51.118 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:51.118 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:51.118 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:51.118 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:51.140 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:51.141 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:51.141 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:51.141 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:51.141 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:51.142 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:51.142 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:51.142 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:51.142 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:51.142 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:51.217 INFO com.intuit.karate.Logger Logger.java:104- [print] { "name": "jans-config-api readiness", "status": "UP" } 24-11 09:33:51.248 INFO com.intuit.karate.Runner Runner.java:264- <> feature 37 of 47: src/test/resources/feature/health/config-api-health.feature --------------------------------------------------------- feature: src/test/resources/feature/health/config-api-health.feature report: target/surefire-reports/src.test.resources.feature.health.config-api-health.json scenarios: 3 | passed: 3 | failed: 0 | time: 0.1937 --------------------------------------------------------- 24-11 09:33:51.257 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:51.257 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:51.258 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:51.258 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:51.258 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:51.259 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:51.259 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:51.259 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:51.259 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:51.259 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:51.265 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:51.265 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:51.266 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:51.266 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:51.266 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:51.266 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:51.266 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:51.266 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:51.267 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:51.267 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:51.398 INFO com.intuit.karate.Logger Logger.java:104- [print] { "status": "running", "db_status": "online" } 24-11 09:33:51.423 INFO com.intuit.karate.Runner Runner.java:264- <> feature 38 of 47: src/test/resources/feature/health/auth-server-health.feature --------------------------------------------------------- feature: src/test/resources/feature/health/auth-server-health.feature report: target/surefire-reports/src.test.resources.feature.health.auth-server-health.json scenarios: 1 | passed: 1 | failed: 0 | time: 0.1306 --------------------------------------------------------- 24-11 09:33:51.429 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:51.430 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:51.430 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:51.430 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:51.431 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:51.431 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:51.431 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:51.431 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:51.431 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:51.431 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:51.433 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:51.433 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:51.434 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:51.434 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:51.437 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:51.437 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:51.437 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:51.437 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:51.437 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:51.437 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:51.463 INFO com.intuit.karate.Logger Logger.java:104- [print] ONLY TOKEN BASED AUTHORIZATION IS SUPPORTED! 24-11 09:33:51.470 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:51.471 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:51.471 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:51.471 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:51.471 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:51.472 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:51.472 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:51.472 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:51.472 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:51.472 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:51.475 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:51.476 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:51.476 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:51.476 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:51.476 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:51.477 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:51.477 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:51.477 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:51.477 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:51.477 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:51.698 INFO com.intuit.karate.Logger Logger.java:104- [print] { "disableJdkLogger": true, "enabledOAuthAuditLogging": false, "httpLoggingEnabled": false, "loggingLayout": "text", "loggingLevel": "TRACE" } 24-11 09:33:51.706 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:51.707 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:51.707 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:51.707 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:51.708 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:51.708 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:51.708 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:51.709 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:51.709 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:51.709 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:51.712 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:51.712 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:51.713 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:51.713 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:51.713 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:51.714 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:51.714 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:51.714 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:51.714 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:51.714 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:51.941 INFO com.intuit.karate.Logger Logger.java:104- [print] { "disableJdkLogger": true, "enabledOAuthAuditLogging": false, "httpLoggingEnabled": false, "loggingLayout": "text", "loggingLevel": "TRACE" } 24-11 09:33:52.228 INFO com.intuit.karate.Logger Logger.java:104- [print] { "disableJdkLogger": true, "enabledOAuthAuditLogging": false, "httpLoggingEnabled": false, "loggingLayout": "text", "loggingLevel": "TRACE" } 24-11 09:33:52.258 INFO com.intuit.karate.Runner Runner.java:264- <> feature 39 of 47: src/test/resources/feature/logging/logging.feature --------------------------------------------------------- feature: src/test/resources/feature/logging/logging.feature report: target/surefire-reports/src.test.resources.feature.logging.logging.json scenarios: 3 | passed: 3 | failed: 0 | time: 0.7567 --------------------------------------------------------- 24-11 09:33:52.265 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:52.265 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:52.265 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:52.265 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:52.278 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:52.279 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:52.279 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:52.279 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:52.279 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:52.279 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:52.284 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:52.284 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:52.284 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:52.284 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:52.285 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:52.285 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:52.285 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:52.285 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:52.285 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:52.286 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:52.331 INFO com.intuit.karate.Logger Logger.java:104- [print] ONLY TOKEN BASED AUTHORIZATION IS SUPPORTED! 24-11 09:33:52.337 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:52.337 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:52.338 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:52.338 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:52.338 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:52.339 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:52.339 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:52.339 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:52.339 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:52.340 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:52.343 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:52.343 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:52.343 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:52.344 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:52.344 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:52.345 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:52.345 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:52.345 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:52.345 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:52.345 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:52.348 INFO com.intuit.karate.Logger Logger.java:104- [print] accessToken = 86338509-2112-409e-98ae-4d3e55ded0fe 24-11 09:33:52.607 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 6, "entries": [ { "metadata": { "funcName": "_io_jans_agama_test_auth_uidOnly", "inputs": [ "uid" ], "author": "Jose", "timestamp": 1666000000000 }, "qname": "io.jans.agama.test.auth.uidOnly", "dn": "agFlowQname=io.jans.agama.test.auth.uidOnly,ou=flows,ou=agama,o=jans", "baseDn": "agFlowQname=io.jans.agama.test.auth.uidOnly,ou=flows,ou=agama,o=jans", "enabled": true, "revision": 0 }, { "metadata": { "funcName": "_io_jans_agama_test_math", "inputs": [ "numbers" ], "author": "Jose", "timestamp": 1666000000000 }, "qname": "io.jans.agama.test.math", "dn": "agFlowQname=io.jans.agama.test.math,ou=flows,ou=agama,o=jans", "baseDn": "agFlowQname=io.jans.agama.test.math,ou=flows,ou=agama,o=jans", "enabled": true, "revision": 0 }, { "metadata": { "funcName": "_io_jans_agama_test_showConfig", "author": "Jose", "timeout": 15, "properties": { "phrase": "The quick brown fox jumps over the lazy dog", "joke": "What's left when a boat and a train collide? Disbelief." }, "timestamp": 1666000000000 }, "qname": "io.jans.agama.test.showConfig", "dn": "agFlowQname=io.jans.agama.test.showConfig,ou=flows,ou=agama,o=jans", "baseDn": "agFlowQname=io.jans.agama.test.showConfig,ou=flows,ou=agama,o=jans", "enabled": true, "revision": 0 }, { "metadata": { "funcName": "_org_gluu_flow1", "author": "Jose", "description": "Sends an input value to flow org.gluu.Flow2 and finishes as the subflow finished", "timestamp": 1666000000000 }, "qname": "org.gluu.flow1", "dn": "agFlowQname=org.gluu.flow1,ou=flows,ou=agama,o=jans", "baseDn": "agFlowQname=org.gluu.flow1,ou=flows,ou=agama,o=jans", "enabled": true, "revision": 0 }, { "metadata": { "funcName": "_org_gluu_flow2", "inputs": [ "val" ], "author": "Jose", "timestamp": 1666000000000 }, "qname": "org.gluu.flow2", "dn": "agFlowQname=org.gluu.flow2,ou=flows,ou=agama,o=jans", "baseDn": "agFlowQname=org.gluu.flow2,ou=flows,ou=agama,o=jans", "enabled": true, "revision": 0 }, { "metadata": { "funcName": "_org_gluu_flow3", "author": "Jose", "timestamp": 1666000000000 }, "qname": "org.gluu.flow3", "dn": "agFlowQname=org.gluu.flow3,ou=flows,ou=agama,o=jans", "baseDn": "agFlowQname=org.gluu.flow3,ou=flows,ou=agama,o=jans", "enabled": true, "revision": 0 } ], "start": 0, "totalEntriesCount": 6 } 24-11 09:33:52.639 INFO com.intuit.karate.Runner Runner.java:264- <> feature 40 of 47: src/test/resources/feature/agama/agama.feature --------------------------------------------------------- feature: src/test/resources/feature/agama/agama.feature report: target/surefire-reports/src.test.resources.feature.agama.agama.json scenarios: 2 | passed: 2 | failed: 0 | time: 0.3044 --------------------------------------------------------- 24-11 09:33:52.646 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:52.646 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:52.647 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:52.647 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:52.647 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:52.648 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:52.648 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:52.648 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:52.648 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:52.648 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:52.657 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:52.657 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:52.657 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:52.657 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:52.658 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:52.659 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:52.659 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:52.659 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:52.659 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:52.660 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:52.699 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:52.699 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:52.699 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:52.699 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:52.700 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:52.700 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:52.700 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:52.700 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:52.700 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:52.700 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:52.702 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:52.702 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:52.702 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:52.702 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:52.703 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:52.703 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:52.703 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:52.703 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:52.703 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:52.704 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:52.705 INFO com.intuit.karate.Logger Logger.java:104- [print] 86338509-2112-409e-98ae-4d3e55ded0fe 24-11 09:33:52.957 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 7, "entries": [ { "clients": [ "inum=AB77-1A2B,ou=clients,o=jans" ], "name": "Photo Album", "deletable": true, "scopeExpression": "{\"rule\": {\"and\": [{\"or\": [{\"var\": 0},{\"var\": 1}]},{\"var\": 2}]}, \"data\": [\"http://photoz.example.com/dev/actions/all\",\"http://photoz.example.com/dev/actions/add\",\"http://photoz.example.com/dev/actions/internalClient\"]}", "dn": "jansId=041b0511-9d03-4f00-90ec-f0fe8b837bde,ou=resources,ou=uma,o=jans", "id": "041b0511-9d03-4f00-90ec-f0fe8b837bde", "type": "myType", "creationDate": "2022-11-24T09:18:10", "iconUri": "http://www.example.com/icons/flower.png", "expirationDate": "2022-12-14T09:18:10" }, { "clients": [ "inum=AB77-1A2B,ou=clients,o=jans" ], "name": "Photo Album", "deletable": true, "scopeExpression": "{\"rule\": {\"and\": [{\"or\": [{\"var\": 0},{\"var\": 1}]},{\"var\": 2}]}, \"data\": [\"http://photoz.example.com/dev/actions/all\",\"http://photoz.example.com/dev/actions/add\",\"http://photoz.example.com/dev/actions/internalClient\"]}", "dn": "jansId=4f362ebf-6fb7-4c1e-b981-2c3b177c7d64,ou=resources,ou=uma,o=jans", "id": "4f362ebf-6fb7-4c1e-b981-2c3b177c7d64", "type": "myType", "creationDate": "2022-11-24T09:18:19", "iconUri": "http://www.example.com/icons/flower.png", "expirationDate": "2022-12-14T09:18:19" }, { "clients": [ "inum=AB77-1A2B,ou=clients,o=jans" ], "name": "Photo Album", "deletable": true, "dn": "jansId=588098a2-6efa-48cd-8c6a-cbaee5812c22,ou=resources,ou=uma,o=jans", "id": "588098a2-6efa-48cd-8c6a-cbaee5812c22", "scopes": [ "inum=03F8-EDD7,ou=scopes,o=jans" ], "type": "myType", "creationDate": "2022-11-24T09:18:18", "iconUri": "http://www.example.com/icons/flower.png", "expirationDate": "2022-12-14T09:18:18" }, { "clients": [ "inum=AB77-1A2B,ou=clients,o=jans" ], "name": "Photo Album", "deletable": true, "scopeExpression": "{\"rule\": {\"and\": [{\"or\": [{\"var\": 0},{\"var\": 1}]},{\"var\": 2}]}, \"data\": [\"http://photoz.example.com/dev/actions/all\",\"http://photoz.example.com/dev/actions/add\",\"http://photoz.example.com/dev/actions/internalClient\"]}", "dn": "jansId=7f933e78-aeb8-4102-95ed-d6993a9ffe89,ou=resources,ou=uma,o=jans", "id": "7f933e78-aeb8-4102-95ed-d6993a9ffe89", "type": "myType", "creationDate": "2022-11-24T09:18:11", "iconUri": "http://www.example.com/icons/flower.png", "expirationDate": "2022-12-14T09:18:11" }, { "clients": [ "inum=AB77-1A2B,ou=clients,o=jans" ], "name": "Photo Album 2", "deletable": true, "scopeExpression": "{\"rule\": {\"or\": [{\"or\": [{\"var\": 0},{\"var\": 1}]},{\"var\": 2}]}, \"data\": [\"http://photoz.example.com/dev/actions/all\",\"http://photoz.example.com/dev/actions/add\",\"http://photoz.example.com/dev/actions/internalClient\"]}", "dn": "jansId=88a566bc-5ec4-4387-8a84-e0f51fe03aaa,ou=resources,ou=uma,o=jans", "id": "88a566bc-5ec4-4387-8a84-e0f51fe03aaa", "type": "myType", "creationDate": "2022-11-24T09:17:58", "iconUri": "http://www.example.com/icons/flower.png", "expirationDate": "2022-12-14T09:17:58" }, { "clients": [ "inum=7446fd21-6be9-44dc-bd17-103a8fcdd496,ou=clients,o=jans" ], "name": "Photo Album", "deletable": true, "dn": "jansId=94675f28-8bf4-4017-baed-0ab4f8f0a5d3,ou=resources,ou=uma,o=jans", "id": "94675f28-8bf4-4017-baed-0ab4f8f0a5d3", "scopes": [ "inum=0c4365e6-6364-4524-953c-e60e53ac1e53,ou=scopes,o=jans" ], "type": "myType", "creationDate": "2022-11-24T09:15:46", "iconUri": "http://www.example.com/icons/flower.png", "expirationDate": "2022-12-14T09:15:46" }, { "clients": [ "inum=AB77-1A2B,ou=clients,o=jans" ], "name": "Photo Album", "deletable": true, "dn": "jansId=da641f0a-213d-4173-9f8c-8e2db1f429fe,ou=resources,ou=uma,o=jans", "id": "da641f0a-213d-4173-9f8c-8e2db1f429fe", "scopes": [ "inum=03F8-EDD7,ou=scopes,o=jans" ], "type": "myType", "creationDate": "2022-11-24T09:18:11", "iconUri": "http://www.example.com/icons/flower.png", "expirationDate": "2022-12-14T09:18:11" } ], "start": 0, "totalEntriesCount": 7 } 24-11 09:33:52.965 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:52.966 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:52.966 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:52.966 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:52.967 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:52.979 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:52.979 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:52.979 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:52.980 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:52.980 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:52.985 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:52.985 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:52.985 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:52.985 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:52.989 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:52.990 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:52.990 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:52.990 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:52.990 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:52.991 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:52.992 INFO com.intuit.karate.Logger Logger.java:104- [print] 86338509-2112-409e-98ae-4d3e55ded0fe 24-11 09:33:53.251 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 2, "entries": [ { "clients": [ "inum=AB77-1A2B,ou=clients,o=jans" ], "name": "Photo Album", "deletable": true, "scopeExpression": "{\"rule\": {\"and\": [{\"or\": [{\"var\": 0},{\"var\": 1}]},{\"var\": 2}]}, \"data\": [\"http://photoz.example.com/dev/actions/all\",\"http://photoz.example.com/dev/actions/add\",\"http://photoz.example.com/dev/actions/internalClient\"]}", "dn": "jansId=041b0511-9d03-4f00-90ec-f0fe8b837bde,ou=resources,ou=uma,o=jans", "id": "041b0511-9d03-4f00-90ec-f0fe8b837bde", "type": "myType", "creationDate": "2022-11-24T09:18:10", "iconUri": "http://www.example.com/icons/flower.png", "expirationDate": "2022-12-14T09:18:10" }, { "clients": [ "inum=AB77-1A2B,ou=clients,o=jans" ], "name": "Photo Album", "deletable": true, "scopeExpression": "{\"rule\": {\"and\": [{\"or\": [{\"var\": 0},{\"var\": 1}]},{\"var\": 2}]}, \"data\": [\"http://photoz.example.com/dev/actions/all\",\"http://photoz.example.com/dev/actions/add\",\"http://photoz.example.com/dev/actions/internalClient\"]}", "dn": "jansId=7f933e78-aeb8-4102-95ed-d6993a9ffe89,ou=resources,ou=uma,o=jans", "id": "7f933e78-aeb8-4102-95ed-d6993a9ffe89", "type": "myType", "creationDate": "2022-11-24T09:18:11", "iconUri": "http://www.example.com/icons/flower.png", "expirationDate": "2022-12-14T09:18:11" } ], "start": 0, "totalEntriesCount": 7 } 24-11 09:33:53.258 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:53.258 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:53.258 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:53.258 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:53.259 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:53.259 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:53.259 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:53.259 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:53.259 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:53.260 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:53.262 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:53.262 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:53.262 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:53.263 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:53.263 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:53.263 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:53.264 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:53.264 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:53.264 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:53.264 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:53.522 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:53.522 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:53.522 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:53.522 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:53.523 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:53.523 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:53.523 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:53.523 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:53.523 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:53.523 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:53.526 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:53.526 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:53.526 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:53.526 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:53.526 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:53.527 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:53.527 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:53.527 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:53.527 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:53.527 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:53.756 INFO com.intuit.karate.Logger Logger.java:104- [print] { "name": "QAAddedResource", "deletable": false, "resources": [ "https://gluu.gasmyr.com/identity/restv1/passport/config" ], "description": "QAAdded Resource", "dn": "jansId=3ee391de-dfe0-412e-be24-8c9ad24c658f,ou=resources,ou=uma,o=jans", "id": "3ee391de-dfe0-412e-be24-8c9ad24c658f", "scopes": [ "inum=8CAD-B06E,ou=scopes,o=gluu" ], "iconUri": "http://www.qa.org/qa_logo.png" } 24-11 09:33:54.002 INFO com.intuit.karate.Logger Logger.java:104- [print] { "name": "QAAddedResource", "deletable": false, "resources": [ "https://gluu.gasmyr.com/identity/restv1/passport/config" ], "description": "QAAdded Resource", "dn": "jansId=3ee391de-dfe0-412e-be24-8c9ad24c658f,ou=resources,ou=uma,o=jans", "id": "3ee391de-dfe0-412e-be24-8c9ad24c658f", "scopes": [ "inum=8CAD-B06E,ou=scopes,o=gluu" ], "iconUri": "http://www.qa.org/qa_logo.png" } 24-11 09:33:54.253 INFO com.intuit.karate.Logger Logger.java:104- [print] { "name": "UpdatedQAAddedResource", "deletable": false, "resources": [ "https://gluu.gasmyr.com/identity/restv1/passport/config" ], "description": "QAAdded Resource", "dn": "jansId=3ee391de-dfe0-412e-be24-8c9ad24c658f,ou=resources,ou=uma,o=jans", "id": "3ee391de-dfe0-412e-be24-8c9ad24c658f", "scopes": [ "inum=8CAD-B06E,ou=scopes,o=gluu" ], "iconUri": "http://www.qa.org/qa_logo.png" } 24-11 09:33:54.281 INFO com.intuit.karate.Logger Logger.java:104- [print] newName = UpdatedQAAddedResource 24-11 09:33:54.536 INFO com.intuit.karate.Logger Logger.java:104- [print] { "name": "UpdatedQAAddedResource", "deletable": false, "resources": [ "https://gluu.gasmyr.com/identity/restv1/passport/config" ], "description": "UpdatedQAAddedResource", "dn": "jansId=3ee391de-dfe0-412e-be24-8c9ad24c658f,ou=resources,ou=uma,o=jans", "id": "3ee391de-dfe0-412e-be24-8c9ad24c658f", "scopes": [ "inum=8CAD-B06E,ou=scopes,o=gluu" ], "iconUri": "http://www.qa.org/qa_logo.png" } 24-11 09:33:54.767 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:54.767 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:54.767 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:54.767 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:54.768 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:54.768 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:54.768 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:54.768 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:54.768 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:54.769 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:54.771 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:54.771 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:54.771 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:54.771 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:54.772 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:54.772 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:54.772 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:54.772 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:54.772 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:54.772 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:54.993 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:54.994 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:54.994 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:54.994 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:54.995 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:54.995 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:54.995 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:54.995 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:54.995 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:54.996 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:54.998 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:54.998 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:54.998 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:54.998 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:54.999 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:54.999 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:54.999 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:55.000 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:55.000 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:55.000 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:55.256 INFO com.intuit.karate.Runner Runner.java:264- <> feature 41 of 47: src/test/resources/feature/uma/resource/resources.feature --------------------------------------------------------- feature: src/test/resources/feature/uma/resource/resources.feature report: target/surefire-reports/src.test.resources.feature.uma.resource.resources.json scenarios: 7 | passed: 7 | failed: 0 | time: 2.4540 --------------------------------------------------------- 24-11 09:33:55.265 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:55.265 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:55.265 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:55.265 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:55.266 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:55.266 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:55.266 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:55.266 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:55.267 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:55.267 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:55.270 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:55.270 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:55.270 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:55.271 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:55.271 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:55.272 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:55.272 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:55.272 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:55.272 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:55.272 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:55.325 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:55.325 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:55.325 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:55.325 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:55.326 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:55.330 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:55.332 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:55.332 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:55.332 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:55.332 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:55.336 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:55.337 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:55.337 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:55.337 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:55.338 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:55.338 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:55.338 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:55.339 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:55.339 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:55.339 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:55.340 INFO com.intuit.karate.Logger Logger.java:104- [print] 86338509-2112-409e-98ae-4d3e55ded0fe 24-11 09:33:55.613 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 4, "entries": [ { "scopeType": "uma", "displayName": "Add/Edit", "dn": "inum=B6EA-B301,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "modify", "umaType": true, "inum": "B6EA-B301", "creationDate": "2022-11-24T09:33:55", "baseDn": "inum=B6EA-B301,ou=scopes,o=jans" }, { "scopeType": "uma", "displayName": "View", "umaAuthorizationPolicies": [ "inum=2DAF-F995,ou=scripts,o=@1736-179E-AA60-16B28F7C-B9AB,o=jans" ], "dn": "inum=5214-40D1,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "http://photoz.example.com/dev/scopes/view", "umaType": true, "inum": "5214-40D1", "creationDate": "2022-11-24T09:33:55", "baseDn": "inum=5214-40D1,ou=scopes,o=jans" }, { "creatorType": "auto", "scopeType": "uma", "displayName": "^/user/.+$", "deletable": false, "dn": "inum=0c4365e6-6364-4524-953c-e60e53ac1e53,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "^/user/.+$", "umaType": true, "inum": "0c4365e6-6364-4524-953c-e60e53ac1e53", "creationDate": "2022-11-24T09:15:46", "baseDn": "inum=0c4365e6-6364-4524-953c-e60e53ac1e53,ou=scopes,o=jans" }, { "scopeType": "uma", "displayName": "All", "dn": "inum=03F8-EDD7,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "http://photoz.example.com/dev/scopes/all", "umaType": true, "inum": "03F8-EDD7", "creationDate": "2022-11-24T09:33:55", "baseDn": "inum=03F8-EDD7,ou=scopes,o=jans" } ], "start": 0, "totalEntriesCount": 4 } 24-11 09:33:55.624 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:55.625 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:55.625 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:55.625 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:55.626 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:55.627 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:55.627 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:55.627 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:55.627 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:55.627 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:55.631 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:55.631 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:55.631 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:55.632 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:55.632 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:55.633 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:55.633 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:55.633 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:55.633 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:55.633 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:55.910 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 3, "entries": [ { "scopeType": "uma", "displayName": "Add/Edit", "dn": "inum=B6EA-B301,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "modify", "umaType": true, "inum": "B6EA-B301", "creationDate": "2022-11-24T09:33:55", "baseDn": "inum=B6EA-B301,ou=scopes,o=jans" }, { "creatorType": "auto", "scopeType": "uma", "displayName": "^/user/.+$", "deletable": false, "dn": "inum=0c4365e6-6364-4524-953c-e60e53ac1e53,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "^/user/.+$", "umaType": true, "inum": "0c4365e6-6364-4524-953c-e60e53ac1e53", "creationDate": "2022-11-24T09:15:46", "baseDn": "inum=0c4365e6-6364-4524-953c-e60e53ac1e53,ou=scopes,o=jans" }, { "scopeType": "uma", "displayName": "All", "dn": "inum=03F8-EDD7,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "http://photoz.example.com/dev/scopes/all", "umaType": true, "inum": "03F8-EDD7", "creationDate": "2022-11-24T09:33:55", "baseDn": "inum=03F8-EDD7,ou=scopes,o=jans" } ], "start": 0, "totalEntriesCount": 4 } 24-11 09:33:55.915 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:55.915 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:55.915 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:55.916 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:55.916 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:55.916 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:55.916 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:55.916 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:55.916 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:55.917 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:55.919 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:55.919 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:55.919 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:55.919 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:55.920 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:55.920 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:55.920 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:55.920 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:55.920 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:55.920 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:56.193 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 0, "start": 0, "totalEntriesCount": 0 } 24-11 09:33:56.199 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:56.200 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:56.200 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:56.200 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:56.200 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:56.201 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:56.201 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:56.201 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:56.201 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:56.201 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:56.203 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:56.203 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:56.203 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:56.203 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:56.204 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:56.204 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:56.204 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:56.204 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:56.204 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:56.205 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:56.476 INFO com.intuit.karate.Logger Logger.java:104- [print] { "scopeType": "oauth", "displayName": "QAAddedUmaScope", "dn": "inum=8dd07aa2-ce41-413a-acb8-1b842c6d3613,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://gluu.qa.com/jans-auth/restv1/uma/scopes/qa-scope", "umaType": false, "inum": "8dd07aa2-ce41-413a-acb8-1b842c6d3613", "creationDate": "2022-11-24T09:33:56", "baseDn": "inum=8dd07aa2-ce41-413a-acb8-1b842c6d3613,ou=scopes,o=jans" } 24-11 09:33:56.699 INFO com.intuit.karate.Logger Logger.java:104- [print] { "scopeType": "oauth", "displayName": "QAAddedUmaScope", "dn": "inum=8dd07aa2-ce41-413a-acb8-1b842c6d3613,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://gluu.qa.com/jans-auth/restv1/uma/scopes/qa-scope", "umaType": false, "inum": "8dd07aa2-ce41-413a-acb8-1b842c6d3613", "creationDate": "2022-11-24T09:33:56", "baseDn": "inum=8dd07aa2-ce41-413a-acb8-1b842c6d3613,ou=scopes,o=jans" } 24-11 09:33:56.980 INFO com.intuit.karate.Logger Logger.java:104- [print] { "scopeType": "oauth", "displayName": "UpdatedQAAddedUmaScope", "dn": "inum=8dd07aa2-ce41-413a-acb8-1b842c6d3613,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://gluu.qa.com/jans-auth/restv1/uma/scopes/qa-scope", "umaType": false, "inum": "8dd07aa2-ce41-413a-acb8-1b842c6d3613", "creationDate": "2022-11-24T09:33:56", "baseDn": "inum=8dd07aa2-ce41-413a-acb8-1b842c6d3613,ou=scopes,o=jans" } 24-11 09:33:57.006 INFO com.intuit.karate.Logger Logger.java:104- [print] newDisplayName = UpdatedQAAddedUmaScope 24-11 09:33:57.303 INFO com.intuit.karate.Logger Logger.java:104- [print] { "scopeType": "oauth", "displayName": "UpdatedQAAddedUmaScope", "dn": "inum=8dd07aa2-ce41-413a-acb8-1b842c6d3613,ou=scopes,o=jans", "groupClaims": false, "attributes": { "showInConfigurationEndpoint": true }, "id": "https://gluu.qa.com/jans-auth/restv1/uma/scopes/qa-scope", "umaType": false, "inum": "8dd07aa2-ce41-413a-acb8-1b842c6d3613", "creationDate": "2022-11-24T09:33:56", "baseDn": "inum=8dd07aa2-ce41-413a-acb8-1b842c6d3613,ou=scopes,o=jans" } 24-11 09:33:57.527 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:57.527 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:57.527 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:57.527 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:57.527 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:57.528 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:57.528 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:57.528 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:57.528 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:57.528 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:57.531 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:57.531 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:57.531 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:57.531 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:57.531 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:57.532 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:57.532 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:57.532 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:57.532 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:57.532 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:57.749 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:57.750 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:57.750 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:57.750 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:57.750 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:57.751 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:57.751 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:57.751 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:57.751 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:57.751 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:57.753 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:57.753 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:57.753 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:57.753 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:57.754 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:57.754 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:57.754 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:57.754 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:57.754 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:57.754 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:57.967 INFO com.intuit.karate.Logger Logger.java:104- [print] { "code": "404", "message": "The requested scope doesn't exist" } 24-11 09:33:57.994 INFO com.intuit.karate.Runner Runner.java:264- <> feature 42 of 47: src/test/resources/feature/uma/scopes/umascopes.feature --------------------------------------------------------- feature: src/test/resources/feature/uma/scopes/umascopes.feature report: target/surefire-reports/src.test.resources.feature.uma.scopes.umascopes.json scenarios: 7 | passed: 7 | failed: 0 | time: 2.5976 --------------------------------------------------------- 24-11 09:33:58.010 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:58.011 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:58.011 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:58.011 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:58.030 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:58.030 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:58.031 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:58.031 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:58.031 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:58.031 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:58.035 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:58.036 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:58.036 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:58.036 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:58.036 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:58.037 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:58.037 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:58.037 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:58.037 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:58.037 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:58.071 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:58.071 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:58.071 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:58.071 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:58.072 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:58.072 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:58.072 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:58.072 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:58.073 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:58.073 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:58.076 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:58.076 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:58.076 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:58.076 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:58.076 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:58.077 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:58.077 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:58.077 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:58.077 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:58.077 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:58.361 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 50, "entries": [ { "scopeType": "oauth", "displayName": "Scim users.write", "description": "Modify user resources", "dn": "inum=1200.7AE031,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/scim/users.write", "umaType": false, "inum": "1200.7AE031", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=1200.7AE031,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/jans-auth-server/session.readonly", "description": "View Session related information", "dn": "inum=1800.01D2DC,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/jans-auth-server/session.readonly", "umaType": false, "inum": "1800.01D2DC", "creationDate": "2022-11-24T09:11:58", "baseDn": "inum=1800.01D2DC,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/attributes.delete", "description": "Delete attribute related information", "dn": "inum=1800.459D7C,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/attributes.delete", "umaType": false, "inum": "1800.459D7C", "creationDate": "2022-11-24T09:11:56", "baseDn": "inum=1800.459D7C,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/acrs.write", "description": "Manage ACRS related information", "dn": "inum=1800.6EC9DA,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/acrs.write", "umaType": false, "inum": "1800.6EC9DA", "creationDate": "2022-11-24T09:11:56", "baseDn": "inum=1800.6EC9DA,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/scripts.delete", "description": "Delete scripts related information", "dn": "inum=1800.919BA5,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/scripts.delete", "umaType": false, "inum": "1800.919BA5", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.919BA5,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/uma/resources.write", "description": "Manage UMA Resource related information", "dn": "inum=1800.B396DC,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/uma/resources.write", "umaType": false, "inum": "1800.B396DC", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.B396DC,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/scripts.write", "description": "Manage scripts related information", "dn": "inum=1800.E3BECA,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/scripts.write", "umaType": false, "inum": "1800.E3BECA", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.E3BECA,ou=scopes,o=jans", "defaultScope": false }, { "creatorType": "client", "displayName": "transaction:245", "deletable": true, "creatorId": "e5a5a3da-8002-46c2-98f0-43490f27febd", "description": "Spontaneous scope: Scope{dn='null', inum='null', displayName='null', id='null', iconUrl='null', description='null', scopeType=null, claims=null, defaultScope=false, groupClaims=null, dynamicScopeScripts=null, umaAuthorizationPolicies=null, creatorId=null, creatorType=null, creationDate=Thu Nov 24 09:15:44 UTC 2022, creatorAttributes=null, deletable=null, expirationDate=null, attributes=null}", "dn": "inum=2f8cd32a-0005-4712-a40c-7ecb64023875,ou=scopes,o=jans", "inum": "2f8cd32a-0005-4712-a40c-7ecb64023875", "creationDate": "2022-11-24T09:15:44", "scopeType": "spontaneous", "attributes": { "showInConfigurationEndpoint": true, "spontaneousClientScopes": [ "^transaction:.+$" ] }, "id": "transaction:245", "umaType": false, "baseDn": "inum=2f8cd32a-0005-4712-a40c-7ecb64023875,ou=scopes,o=jans", "defaultScope": false, "expirationDate": "2022-11-25T09:15:44" }, { "scopeType": "dynamic", "description": "Dynamic scope work_phone", "dn": "inum=7D02,ou=scopes,o=jans", "dynamicScopeScripts": [ "inum=031C-5622,ou=scripts,o=jans" ], "attributes": { "showInConfigurationEndpoint": true }, "id": "work_phone", "umaType": false, "inum": "7D02", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=7D02,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "device_sso", "description": "Native SSO scope which allows to issue device_secret", "dn": "inum=C4F8,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "device_sso", "umaType": false, "inum": "C4F8", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=C4F8,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "uma", "displayName": "All", "dn": "inum=03F8-EDD7,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "http://photoz.example.com/dev/scopes/all", "umaType": true, "inum": "03F8-EDD7", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=03F8-EDD7,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Scim fido2.read", "description": "Query fido 2 resources", "dn": "inum=1200.803229,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/scim/fido2.read", "umaType": false, "inum": "1200.803229", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=1200.803229,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/organization.write", "description": "Manage organization configuration information", "dn": "inum=1800.022ED2,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/organization.write", "umaType": false, "inum": "1800.022ED2", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.022ED2,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/agama.readonly", "description": "View Agama Flow related information", "dn": "inum=1800.47829E,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/agama.readonly", "umaType": false, "inum": "1800.47829E", "creationDate": "2022-11-24T09:11:58", "baseDn": "inum=1800.47829E,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/scopes.write", "description": "Manage scope related information", "dn": "inum=1800.6F2A68,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/scopes.write", "umaType": false, "inum": "1800.6F2A68", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.6F2A68,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/scim/users.write", "description": "Manage scim user related information", "dn": "inum=1800.9F0EAC,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/scim/users.write", "umaType": false, "inum": "1800.9F0EAC", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=1800.9F0EAC,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/fido2.readonly", "description": "View FIDO2 related information", "dn": "inum=1800.CD8F65,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/fido2.readonly", "umaType": false, "inum": "1800.CD8F65", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.CD8F65,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/scripts.readonly", "description": "View cache scripts information", "dn": "inum=1800.EABCEE,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/scripts.readonly", "umaType": false, "inum": "1800.EABCEE", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.EABCEE,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "openid", "displayName": "view_client", "claims": [ "inum=2B29,ou=attributes,o=jans", "inum=29DA,ou=attributes,o=jans", "inum=18CF,ou=attributes,o=jans", "inum=18CC,ou=attributes,o=jans", "inum=18CD,ou=attributes,o=jans", "inum=18CE,ou=attributes,o=jans" ], "description": "View the client info.", "dn": "inum=341A,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "clientinfo", "umaType": false, "inum": "341A", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=341A,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "revoke_session", "description": "revoke_session scope which is required to be able call /revoke_session endpoint", "dn": "inum=7D90,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "revoke_session", "umaType": false, "inum": "7D90", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=7D90,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "openid", "displayName": "view_phone_number", "claims": [ "inum=B17A,ou=attributes,o=jans", "inum=0C18,ou=attributes,o=jans" ], "description": "View your phone number.", "dn": "inum=D491,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "phone", "umaType": false, "inum": "D491", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=D491,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "claims": [ "inum=D2E0,ou=attributes,o=jans" ], "description": "Custom scope for tests", "dn": "inum=0465-1DEA,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "test", "umaType": false, "inum": "@DBE5-84F8-631A-9172CD07-49BE0465-1DEA", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=0465-1DEA,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "oauth", "displayName": "Scim all-resources.search", "description": "Access the root .search endpoint", "dn": "inum=1200.8ECCBE,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/scim/all-resources.search", "umaType": false, "inum": "1200.8ECCBE", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=1200.8ECCBE,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/scim/users.read", "description": "Vew scim user related information", "dn": "inum=1800.03DC67,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/scim/users.read", "umaType": false, "inum": "1800.03DC67", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=1800.03DC67,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/logging.write", "description": "Manage logging related information", "dn": "inum=1800.5323D7,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/logging.write", "umaType": false, "inum": "1800.5323D7", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.5323D7,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "openid", "displayName": "view_username", "claims": [ "inum=42E0,ou=attributes,o=jans" ], "description": "View your local username in the Janssen Server.", "dn": "inum=10B2,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "user_name", "umaType": false, "inum": "10B2", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=10B2,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "oauth", "displayName": "Scim groups.read", "description": "Query group resources", "dn": "inum=1200.ADC30C,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/scim/groups.read", "umaType": false, "inum": "1200.ADC30C", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=1200.ADC30C,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/fido2.write", "description": "Manage FIDO2 related information", "dn": "inum=1800.2E1D52,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/fido2.write", "umaType": false, "inum": "1800.2E1D52", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.2E1D52,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/scopes.readonly", "description": "View scope related information", "dn": "inum=1800.60E14E,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/scopes.readonly", "umaType": false, "inum": "1800.60E14E", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.60E14E,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/uma/resources.readonly", "description": "View UMA Resource related information", "dn": "inum=1800.7F521B,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/uma/resources.readonly", "umaType": false, "inum": "1800.7F521B", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.7F521B,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/scopes.delete", "description": "Delete scope related information", "dn": "inum=1800.A92439,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/scopes.delete", "umaType": false, "inum": "1800.A92439", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.A92439,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/uma/resources.delete", "description": "Delete UMA Resource related information", "dn": "inum=1800.DC17C9,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/uma/resources.delete", "umaType": false, "inum": "1800.DC17C9", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.DC17C9,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/database/ldap.delete", "description": "Delete LDAP database related information", "dn": "inum=1800.F2D9E2,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/database/ldap.delete", "umaType": false, "inum": "1800.F2D9E2", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.F2D9E2,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "openid", "displayName": "UMA Protection", "description": "Obtain UMA PAT.", "dn": "inum=6D99,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "uma_protection", "umaType": false, "inum": "6D99", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=6D99,ou=scopes,o=jans", "defaultScope": true }, { "displayName": "view_address", "description": "View your address.", "dn": "inum=C17A,ou=scopes,o=jans", "groupClaims": true, "inum": "C17A", "creationDate": "2022-11-24T09:33:58", "scopeType": "openid", "claims": [ "inum=27DB,ou=attributes,o=jans", "inum=2A3D,ou=attributes,o=jans", "inum=6609,ou=attributes,o=jans", "inum=6EEB,ou=attributes,o=jans", "inum=BCE8,ou=attributes,o=jans", "inum=D90B,ou=attributes,o=jans", "inum=E6B8,ou=attributes,o=jans", "inum=E999,ou=attributes,o=jans" ], "attributes": { "showInConfigurationEndpoint": true }, "id": "address", "umaType": false, "baseDn": "inum=C17A,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "SSA Developer", "dn": "inum=SSA1-DEV1,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/auth/ssa.developer", "umaType": false, "inum": "SSA1-DEV1", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=SSA1-DEV1,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "oauth", "displayName": "Scim groups.write", "description": "Modify group resources", "dn": "inum=1200.32E6AA,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/scim/groups.write", "umaType": false, "inum": "1200.32E6AA", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=1200.32E6AA,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Scim fido2.write", "description": "Modify fido 2 resources", "dn": "inum=1200.D08B10,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/scim/fido2.write", "umaType": false, "inum": "1200.D08B10", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=1200.D08B10,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/openid/clients.readonly", "description": "View clients related information", "dn": "inum=1800.39D268,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/openid/clients.readonly", "umaType": false, "inum": "1800.39D268", "creationDate": "2022-11-24T09:11:56", "baseDn": "inum=1800.39D268,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/attributes.write", "description": "Manage attribute related information", "dn": "inum=1800.660F67,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/attributes.write", "umaType": false, "inum": "1800.660F67", "creationDate": "2022-11-24T09:11:56", "baseDn": "inum=1800.660F67,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/database/ldap.write", "description": "Manage LDAP database related information", "dn": "inum=1800.86D3FC,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/database/ldap.write", "umaType": false, "inum": "1800.86D3FC", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.86D3FC,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/stats.readonly", "description": "Vew server with basic statistic", "dn": "inum=1800.AA62E3,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/stats.readonly", "umaType": false, "inum": "1800.AA62E3", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.AA62E3,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/logging.readonly", "description": "View logging related information", "dn": "inum=1800.DECB26,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/logging.readonly", "umaType": false, "inum": "1800.DECB26", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.DECB26,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/smtp.delete", "description": "Delete SMTP related information", "dn": "inum=1800.F42CE7,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/smtp.delete", "umaType": false, "inum": "1800.F42CE7", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.F42CE7,ou=scopes,o=jans", "defaultScope": false }, { "creatorType": "client", "displayName": "transaction:8645", "deletable": true, "creatorId": "e5a5a3da-8002-46c2-98f0-43490f27febd", "description": "Spontaneous scope: Scope{dn='null', inum='null', displayName='null', id='null', iconUrl='null', description='null', scopeType=null, claims=null, defaultScope=false, groupClaims=null, dynamicScopeScripts=null, umaAuthorizationPolicies=null, creatorId=null, creatorType=null, creationDate=Thu Nov 24 09:15:44 UTC 2022, creatorAttributes=null, deletable=null, expirationDate=null, attributes=null}", "dn": "inum=6d5909a3-4f28-4bb8-8eb5-8fb9ae3d747e,ou=scopes,o=jans", "inum": "6d5909a3-4f28-4bb8-8eb5-8fb9ae3d747e", "creationDate": "2022-11-24T09:15:44", "scopeType": "spontaneous", "attributes": { "showInConfigurationEndpoint": true, "spontaneousClientScopes": [ "^transaction:.+$" ] }, "id": "transaction:8645", "umaType": false, "baseDn": "inum=6d5909a3-4f28-4bb8-8eb5-8fb9ae3d747e,ou=scopes,o=jans", "defaultScope": false, "expirationDate": "2022-11-25T09:15:44" }, { "scopeType": "dynamic", "displayName": "view_user_permissions_roles", "description": "View your user permission and roles.", "dn": "inum=C4F5,ou=scopes,o=jans", "dynamicScopeScripts": [ "inum=CB5B-3211,ou=scripts,o=jans" ], "attributes": { "showInConfigurationEndpoint": true }, "id": "permission", "umaType": false, "inum": "C4F5", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=C4F5,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "SSA Portal", "dn": "inum=SSA1-PTL1,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/auth/ssa.portal", "umaType": false, "inum": "SSA1-PTL1", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=SSA1-PTL1,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "oauth", "displayName": "Scim fido.write", "description": "Modify fido resources", "dn": "inum=1200.473DA8,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/scim/fido.write", "umaType": false, "inum": "1200.473DA8", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=1200.473DA8,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Scim bulk", "description": "Send requests to the bulk endpoint", "dn": "inum=1200.EBE8DC,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/scim/bulk", "umaType": false, "inum": "1200.EBE8DC", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=1200.EBE8DC,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/user.write", "description": "Manage user related information", "dn": "inum=1800.3F4379,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/user.write", "umaType": false, "inum": "1800.3F4379", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.3F4379,ou=scopes,o=jans", "defaultScope": false } ], "start": 0, "totalEntriesCount": 86 } 24-11 09:33:58.372 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:58.372 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:58.372 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:58.372 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:58.373 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:58.373 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:58.373 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:58.373 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:58.373 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:58.373 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:58.375 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:58.375 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:58.376 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:58.376 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:58.376 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:58.376 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:58.376 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:58.377 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:58.377 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:58.377 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:58.644 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 17, "entries": [ { "scopeType": "openid", "displayName": "UMA Protection", "description": "Obtain UMA PAT.", "dn": "inum=6D99,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "uma_protection", "umaType": false, "inum": "6D99", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=6D99,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "refresh_token", "description": "This scope value requests that an OAuth 2.0 Refresh Token be issued.", "dn": "inum=C4F6,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "offline_access", "umaType": false, "inum": "C4F6", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=C4F6,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "view_client", "claims": [ "inum=2B29,ou=attributes,o=jans", "inum=29DA,ou=attributes,o=jans", "inum=18CF,ou=attributes,o=jans", "inum=18CC,ou=attributes,o=jans", "inum=18CD,ou=attributes,o=jans", "inum=18CE,ou=attributes,o=jans" ], "description": "View the client info.", "dn": "inum=341A,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "clientinfo", "umaType": false, "inum": "341A", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=341A,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "SSA Admin", "dn": "inum=SSA1-AD01,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/auth/ssa.admin", "umaType": false, "inum": "SSA1-AD01", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=SSA1-AD01,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "view_profile", "claims": [ "inum=2B29,ou=attributes,o=jans", "inum=0C85,ou=attributes,o=jans", "inum=B4B0,ou=attributes,o=jans", "inum=A0E8,ou=attributes,o=jans", "inum=5EC6,ou=attributes,o=jans", "inum=B52A,ou=attributes,o=jans", "inum=64A0,ou=attributes,o=jans", "inum=EC3A,ou=attributes,o=jans", "inum=3B47,ou=attributes,o=jans", "inum=3692,ou=attributes,o=jans", "inum=98FC,ou=attributes,o=jans", "inum=A901,ou=attributes,o=jans", "inum=36D9,ou=attributes,o=jans", "inum=BE64,ou=attributes,o=jans", "inum=6493,ou=attributes,o=jans", "inum=4CF1,ou=attributes,o=jans", "inum=29DA,ou=attributes,o=jans" ], "description": "View your basic profile info.", "dn": "inum=43F1,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "profile", "umaType": false, "inum": "43F1", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=43F1,ou=scopes,o=jans", "defaultScope": true }, { "displayName": "view_address", "description": "View your address.", "dn": "inum=C17A,ou=scopes,o=jans", "groupClaims": true, "inum": "C17A", "creationDate": "2022-11-24T09:33:58", "scopeType": "openid", "claims": [ "inum=27DB,ou=attributes,o=jans", "inum=2A3D,ou=attributes,o=jans", "inum=6609,ou=attributes,o=jans", "inum=6EEB,ou=attributes,o=jans", "inum=BCE8,ou=attributes,o=jans", "inum=D90B,ou=attributes,o=jans", "inum=E6B8,ou=attributes,o=jans", "inum=E999,ou=attributes,o=jans" ], "attributes": { "showInConfigurationEndpoint": true }, "id": "address", "umaType": false, "baseDn": "inum=C17A,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "SSA Developer", "dn": "inum=SSA1-DEV1,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/auth/ssa.developer", "umaType": false, "inum": "SSA1-DEV1", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=SSA1-DEV1,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "view_phone_number", "claims": [ "inum=B17A,ou=attributes,o=jans", "inum=0C18,ou=attributes,o=jans" ], "description": "View your phone number.", "dn": "inum=D491,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "phone", "umaType": false, "inum": "D491", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=D491,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "view_username", "claims": [ "inum=42E0,ou=attributes,o=jans" ], "description": "View your local username in the Janssen Server.", "dn": "inum=10B2,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "user_name", "umaType": false, "inum": "10B2", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=10B2,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "view_mobile_phone_number", "claims": [ "inum=6DA6,ou=attributes,o=jans" ], "description": "View your mobile phone number.", "dn": "inum=8A01,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "mobile_phone", "umaType": false, "inum": "8A01", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=8A01,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "openid", "displayName": "authenticate_openid_connect", "description": "Authenticate using OpenID Connect.", "dn": "inum=F0C4,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "openid", "umaType": false, "inum": "F0C4", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=F0C4,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "description": "This scope is required for calling Statistic Endpoint", "dn": "inum=C4F7,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "jans_stat", "umaType": false, "inum": "C4F7", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=C4F7,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "openid", "claims": [ "inum=D2E0,ou=attributes,o=jans" ], "description": "Custom scope for tests", "dn": "inum=0465-1DEA,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "test", "umaType": false, "inum": "@DBE5-84F8-631A-9172CD07-49BE0465-1DEA", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=0465-1DEA,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "view_email_address", "claims": [ "inum=8F88,ou=attributes,o=jans", "inum=CAE3,ou=attributes,o=jans" ], "description": "View your email address.", "dn": "inum=764C,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "email", "umaType": false, "inum": "764C", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=764C,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "device_sso", "description": "Native SSO scope which allows to issue device_secret", "dn": "inum=C4F8,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "device_sso", "umaType": false, "inum": "C4F8", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=C4F8,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "revoke_session", "description": "revoke_session scope which is required to be able call /revoke_session endpoint", "dn": "inum=7D90,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "revoke_session", "umaType": false, "inum": "7D90", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=7D90,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "openid", "displayName": "SSA Portal", "dn": "inum=SSA1-PTL1,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/auth/ssa.portal", "umaType": false, "inum": "SSA1-PTL1", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=SSA1-PTL1,ou=scopes,o=jans", "defaultScope": true } ], "start": 0, "totalEntriesCount": 17 } 24-11 09:33:58.650 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:58.651 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:58.651 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:58.651 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:58.651 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:58.652 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:58.652 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:58.652 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:58.652 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:58.652 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:58.655 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:58.655 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:58.655 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:58.655 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:58.655 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:58.656 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:58.656 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:58.656 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:58.656 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:58.656 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:58.927 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 3, "entries": [ { "scopeType": "openid", "displayName": "UMA Protection", "description": "Obtain UMA PAT.", "dn": "inum=6D99,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "uma_protection", "umaType": false, "inum": "6D99", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=6D99,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "view_username", "claims": [ "inum=42E0,ou=attributes,o=jans" ], "description": "View your local username in the Janssen Server.", "dn": "inum=10B2,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "user_name", "umaType": false, "inum": "10B2", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=10B2,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "view_mobile_phone_number", "claims": [ "inum=6DA6,ou=attributes,o=jans" ], "description": "View your mobile phone number.", "dn": "inum=8A01,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "mobile_phone", "umaType": false, "inum": "8A01", "creationDate": "2022-11-24T09:33:58", "baseDn": "inum=8A01,ou=scopes,o=jans", "defaultScope": false } ], "start": 0, "totalEntriesCount": 17 } 24-11 09:33:58.933 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:58.934 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:58.934 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:58.934 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:58.934 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:58.935 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:58.935 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:58.935 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:58.935 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:58.935 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:58.938 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:58.938 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:58.938 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:58.938 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:58.939 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:58.939 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:58.939 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:58.939 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:58.939 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:58.940 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:59.204 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 1, "entries": [ { "scopeType": "openid", "displayName": "authenticate_openid_connect", "description": "Authenticate using OpenID Connect.", "dn": "inum=F0C4,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "openid", "umaType": false, "inum": "F0C4", "creationDate": "2022-11-24T09:33:59", "baseDn": "inum=F0C4,ou=scopes,o=jans", "defaultScope": true } ], "start": 0, "totalEntriesCount": 1 } 24-11 09:33:59.211 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:59.211 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:59.211 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:59.211 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:59.212 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:59.212 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:59.212 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:59.212 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:59.212 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:59.213 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:59.215 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:59.215 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:59.215 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:59.215 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:59.215 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:59.216 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:59.216 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:59.216 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:59.216 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:59.216 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:59.435 INFO com.intuit.karate.Logger Logger.java:104- [print] [ ] 24-11 09:33:59.443 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:59.444 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:59.444 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:59.444 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:59.444 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:59.445 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:59.445 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:59.445 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:59.445 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:59.445 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:59.447 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:59.447 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:59.447 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:59.447 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:59.448 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:59.448 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:59.448 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:59.448 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:59.448 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:59.448 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:59.683 INFO com.intuit.karate.Logger Logger.java:104- [print] [ { "scopeType": "uma", "displayName": "Add/Edit", "dn": "inum=B6EA-B301,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "modify", "umaType": true, "inum": "B6EA-B301", "creationDate": "2022-11-24T09:33:59", "baseDn": "inum=B6EA-B301,ou=scopes,o=jans" }, { "scopeType": "uma", "displayName": "View", "umaAuthorizationPolicies": [ "inum=2DAF-F995,ou=scripts,o=@1736-179E-AA60-16B28F7C-B9AB,o=jans" ], "dn": "inum=5214-40D1,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "http://photoz.example.com/dev/scopes/view", "umaType": true, "inum": "5214-40D1", "creationDate": "2022-11-24T09:33:59", "baseDn": "inum=5214-40D1,ou=scopes,o=jans" }, { "creatorType": "auto", "scopeType": "uma", "displayName": "^/user/.+$", "deletable": false, "dn": "inum=0c4365e6-6364-4524-953c-e60e53ac1e53,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "^/user/.+$", "umaType": true, "inum": "0c4365e6-6364-4524-953c-e60e53ac1e53", "creationDate": "2022-11-24T09:15:46", "baseDn": "inum=0c4365e6-6364-4524-953c-e60e53ac1e53,ou=scopes,o=jans" }, { "scopeType": "uma", "displayName": "All", "dn": "inum=03F8-EDD7,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "http://photoz.example.com/dev/scopes/all", "umaType": true, "inum": "03F8-EDD7", "creationDate": "2022-11-24T09:33:59", "baseDn": "inum=03F8-EDD7,ou=scopes,o=jans" } ] 24-11 09:33:59.688 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:33:59.689 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:33:59.689 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:33:59.689 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:33:59.689 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:59.689 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:59.689 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:59.689 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:59.689 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:59.690 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:59.692 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:33:59.692 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:33:59.692 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:33:59.692 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:33:59.692 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:33:59.693 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:33:59.693 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:33:59.693 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:33:59.693 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:33:59.693 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:33:59.920 INFO com.intuit.karate.Logger Logger.java:104- [print] { "scopeType": "oauth", "displayName": "kudia", "description": "Kudia's basic information.", "dn": "inum=427f7851-9265-40b2-ada7-2c23ca0f2e5f,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "kudia", "umaType": false, "inum": "427f7851-9265-40b2-ada7-2c23ca0f2e5f", "creationDate": "2022-11-24T09:33:59", "baseDn": "inum=427f7851-9265-40b2-ada7-2c23ca0f2e5f,ou=scopes,o=jans", "defaultScope": false } 24-11 09:34:00.199 INFO com.intuit.karate.Logger Logger.java:104- [print] { "scopeType": "oauth", "displayName": "UpdatedQAAddedScope", "description": "Kudia's basic information.", "dn": "inum=427f7851-9265-40b2-ada7-2c23ca0f2e5f,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "kudia", "umaType": false, "inum": "427f7851-9265-40b2-ada7-2c23ca0f2e5f", "creationDate": "2022-11-24T09:33:59", "baseDn": "inum=427f7851-9265-40b2-ada7-2c23ca0f2e5f,ou=scopes,o=jans", "defaultScope": false } 24-11 09:34:00.213 INFO com.intuit.karate.Logger Logger.java:104- [print] newDisplayName = UpdatedQAAddedScope 24-11 09:34:00.505 INFO com.intuit.karate.Logger Logger.java:104- [print] { "scopeType": "oauth", "displayName": "UpdatedQAAddedScope", "description": "Kudia's basic information.", "dn": "inum=427f7851-9265-40b2-ada7-2c23ca0f2e5f,ou=scopes,o=jans", "groupClaims": false, "attributes": { "showInConfigurationEndpoint": true }, "id": "kudia", "umaType": false, "inum": "427f7851-9265-40b2-ada7-2c23ca0f2e5f", "creationDate": "2022-11-24T09:33:59", "baseDn": "inum=427f7851-9265-40b2-ada7-2c23ca0f2e5f,ou=scopes,o=jans", "defaultScope": false } 24-11 09:34:00.733 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:34:00.735 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:34:00.735 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:34:00.735 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:34:00.736 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:00.736 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:00.736 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:00.736 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:00.737 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:00.737 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:00.739 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:34:00.739 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:34:00.739 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:34:00.739 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:34:00.740 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:00.742 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:00.742 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:00.742 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:00.743 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:00.743 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:00.959 INFO com.intuit.karate.Logger Logger.java:104- [print] { "code": "404", "message": "The requested scope doesn't exist" } 24-11 09:34:00.967 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:34:00.967 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:34:00.967 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:34:00.967 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:34:00.968 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:00.968 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:00.968 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:00.968 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:00.968 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:00.969 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:00.971 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:34:00.971 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:34:00.971 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:34:00.971 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:34:00.972 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:00.972 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:00.972 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:00.972 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:00.973 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:00.973 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:01.194 INFO com.intuit.karate.Logger Logger.java:104- [print] { "code": "404", "message": "The requested scope doesn't exist" } 24-11 09:34:01.200 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:34:01.201 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:34:01.201 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:34:01.201 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:34:01.201 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:01.202 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:01.202 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:01.202 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:01.202 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:01.202 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:01.204 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:34:01.205 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:34:01.205 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:34:01.205 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:34:01.205 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:01.205 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:01.205 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:01.206 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:01.206 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:01.206 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:01.493 INFO com.intuit.karate.Logger Logger.java:104- [print] { "entriesCount": 50, "entries": [ { "scopeType": "oauth", "displayName": "Scim users.write", "description": "Modify user resources", "dn": "inum=1200.7AE031,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/scim/users.write", "umaType": false, "inum": "1200.7AE031", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=1200.7AE031,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/jans-auth-server/session.readonly", "description": "View Session related information", "dn": "inum=1800.01D2DC,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/jans-auth-server/session.readonly", "umaType": false, "inum": "1800.01D2DC", "creationDate": "2022-11-24T09:11:58", "baseDn": "inum=1800.01D2DC,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/attributes.delete", "description": "Delete attribute related information", "dn": "inum=1800.459D7C,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/attributes.delete", "umaType": false, "inum": "1800.459D7C", "creationDate": "2022-11-24T09:11:56", "baseDn": "inum=1800.459D7C,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/acrs.write", "description": "Manage ACRS related information", "dn": "inum=1800.6EC9DA,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/acrs.write", "umaType": false, "inum": "1800.6EC9DA", "creationDate": "2022-11-24T09:11:56", "baseDn": "inum=1800.6EC9DA,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/scripts.delete", "description": "Delete scripts related information", "dn": "inum=1800.919BA5,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/scripts.delete", "umaType": false, "inum": "1800.919BA5", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.919BA5,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/uma/resources.write", "description": "Manage UMA Resource related information", "dn": "inum=1800.B396DC,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/uma/resources.write", "umaType": false, "inum": "1800.B396DC", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.B396DC,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/scripts.write", "description": "Manage scripts related information", "dn": "inum=1800.E3BECA,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/scripts.write", "umaType": false, "inum": "1800.E3BECA", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.E3BECA,ou=scopes,o=jans", "defaultScope": false }, { "creatorType": "client", "displayName": "transaction:245", "deletable": true, "creatorId": "e5a5a3da-8002-46c2-98f0-43490f27febd", "description": "Spontaneous scope: Scope{dn='null', inum='null', displayName='null', id='null', iconUrl='null', description='null', scopeType=null, claims=null, defaultScope=false, groupClaims=null, dynamicScopeScripts=null, umaAuthorizationPolicies=null, creatorId=null, creatorType=null, creationDate=Thu Nov 24 09:15:44 UTC 2022, creatorAttributes=null, deletable=null, expirationDate=null, attributes=null}", "dn": "inum=2f8cd32a-0005-4712-a40c-7ecb64023875,ou=scopes,o=jans", "inum": "2f8cd32a-0005-4712-a40c-7ecb64023875", "creationDate": "2022-11-24T09:15:44", "scopeType": "spontaneous", "attributes": { "showInConfigurationEndpoint": true, "spontaneousClientScopes": [ "^transaction:.+$" ] }, "id": "transaction:245", "umaType": false, "baseDn": "inum=2f8cd32a-0005-4712-a40c-7ecb64023875,ou=scopes,o=jans", "defaultScope": false, "expirationDate": "2022-11-25T09:15:44" }, { "scopeType": "dynamic", "description": "Dynamic scope work_phone", "dn": "inum=7D02,ou=scopes,o=jans", "dynamicScopeScripts": [ "inum=031C-5622,ou=scripts,o=jans" ], "attributes": { "showInConfigurationEndpoint": true }, "id": "work_phone", "umaType": false, "inum": "7D02", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=7D02,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "device_sso", "description": "Native SSO scope which allows to issue device_secret", "dn": "inum=C4F8,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "device_sso", "umaType": false, "inum": "C4F8", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=C4F8,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "uma", "displayName": "All", "dn": "inum=03F8-EDD7,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "http://photoz.example.com/dev/scopes/all", "umaType": true, "inum": "03F8-EDD7", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=03F8-EDD7,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Scim fido2.read", "description": "Query fido 2 resources", "dn": "inum=1200.803229,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/scim/fido2.read", "umaType": false, "inum": "1200.803229", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=1200.803229,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/organization.write", "description": "Manage organization configuration information", "dn": "inum=1800.022ED2,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/organization.write", "umaType": false, "inum": "1800.022ED2", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.022ED2,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/agama.readonly", "description": "View Agama Flow related information", "dn": "inum=1800.47829E,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/agama.readonly", "umaType": false, "inum": "1800.47829E", "creationDate": "2022-11-24T09:11:58", "baseDn": "inum=1800.47829E,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/scopes.write", "description": "Manage scope related information", "dn": "inum=1800.6F2A68,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/scopes.write", "umaType": false, "inum": "1800.6F2A68", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.6F2A68,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/scim/users.write", "description": "Manage scim user related information", "dn": "inum=1800.9F0EAC,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/scim/users.write", "umaType": false, "inum": "1800.9F0EAC", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=1800.9F0EAC,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/fido2.readonly", "description": "View FIDO2 related information", "dn": "inum=1800.CD8F65,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/fido2.readonly", "umaType": false, "inum": "1800.CD8F65", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.CD8F65,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/scripts.readonly", "description": "View cache scripts information", "dn": "inum=1800.EABCEE,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/scripts.readonly", "umaType": false, "inum": "1800.EABCEE", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.EABCEE,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "openid", "displayName": "view_client", "claims": [ "inum=2B29,ou=attributes,o=jans", "inum=29DA,ou=attributes,o=jans", "inum=18CF,ou=attributes,o=jans", "inum=18CC,ou=attributes,o=jans", "inum=18CD,ou=attributes,o=jans", "inum=18CE,ou=attributes,o=jans" ], "description": "View the client info.", "dn": "inum=341A,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "clientinfo", "umaType": false, "inum": "341A", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=341A,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "revoke_session", "description": "revoke_session scope which is required to be able call /revoke_session endpoint", "dn": "inum=7D90,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "revoke_session", "umaType": false, "inum": "7D90", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=7D90,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "openid", "displayName": "view_phone_number", "claims": [ "inum=B17A,ou=attributes,o=jans", "inum=0C18,ou=attributes,o=jans" ], "description": "View your phone number.", "dn": "inum=D491,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "phone", "umaType": false, "inum": "D491", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=D491,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "claims": [ "inum=D2E0,ou=attributes,o=jans" ], "description": "Custom scope for tests", "dn": "inum=0465-1DEA,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "test", "umaType": false, "inum": "@DBE5-84F8-631A-9172CD07-49BE0465-1DEA", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=0465-1DEA,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "oauth", "displayName": "Scim all-resources.search", "description": "Access the root .search endpoint", "dn": "inum=1200.8ECCBE,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/scim/all-resources.search", "umaType": false, "inum": "1200.8ECCBE", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=1200.8ECCBE,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/scim/users.read", "description": "Vew scim user related information", "dn": "inum=1800.03DC67,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/scim/users.read", "umaType": false, "inum": "1800.03DC67", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=1800.03DC67,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/logging.write", "description": "Manage logging related information", "dn": "inum=1800.5323D7,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/logging.write", "umaType": false, "inum": "1800.5323D7", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.5323D7,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "openid", "displayName": "view_username", "claims": [ "inum=42E0,ou=attributes,o=jans" ], "description": "View your local username in the Janssen Server.", "dn": "inum=10B2,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "user_name", "umaType": false, "inum": "10B2", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=10B2,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "oauth", "displayName": "Scim groups.read", "description": "Query group resources", "dn": "inum=1200.ADC30C,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/scim/groups.read", "umaType": false, "inum": "1200.ADC30C", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=1200.ADC30C,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/fido2.write", "description": "Manage FIDO2 related information", "dn": "inum=1800.2E1D52,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/fido2.write", "umaType": false, "inum": "1800.2E1D52", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.2E1D52,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/scopes.readonly", "description": "View scope related information", "dn": "inum=1800.60E14E,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/scopes.readonly", "umaType": false, "inum": "1800.60E14E", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.60E14E,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/uma/resources.readonly", "description": "View UMA Resource related information", "dn": "inum=1800.7F521B,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/uma/resources.readonly", "umaType": false, "inum": "1800.7F521B", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.7F521B,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/scopes.delete", "description": "Delete scope related information", "dn": "inum=1800.A92439,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/scopes.delete", "umaType": false, "inum": "1800.A92439", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.A92439,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/uma/resources.delete", "description": "Delete UMA Resource related information", "dn": "inum=1800.DC17C9,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/uma/resources.delete", "umaType": false, "inum": "1800.DC17C9", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.DC17C9,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/database/ldap.delete", "description": "Delete LDAP database related information", "dn": "inum=1800.F2D9E2,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/database/ldap.delete", "umaType": false, "inum": "1800.F2D9E2", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.F2D9E2,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "openid", "displayName": "UMA Protection", "description": "Obtain UMA PAT.", "dn": "inum=6D99,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "uma_protection", "umaType": false, "inum": "6D99", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=6D99,ou=scopes,o=jans", "defaultScope": true }, { "displayName": "view_address", "description": "View your address.", "dn": "inum=C17A,ou=scopes,o=jans", "groupClaims": true, "inum": "C17A", "creationDate": "2022-11-24T09:34:01", "scopeType": "openid", "claims": [ "inum=27DB,ou=attributes,o=jans", "inum=2A3D,ou=attributes,o=jans", "inum=6609,ou=attributes,o=jans", "inum=6EEB,ou=attributes,o=jans", "inum=BCE8,ou=attributes,o=jans", "inum=D90B,ou=attributes,o=jans", "inum=E6B8,ou=attributes,o=jans", "inum=E999,ou=attributes,o=jans" ], "attributes": { "showInConfigurationEndpoint": true }, "id": "address", "umaType": false, "baseDn": "inum=C17A,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "SSA Developer", "dn": "inum=SSA1-DEV1,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/auth/ssa.developer", "umaType": false, "inum": "SSA1-DEV1", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=SSA1-DEV1,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "oauth", "displayName": "Scim groups.write", "description": "Modify group resources", "dn": "inum=1200.32E6AA,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/scim/groups.write", "umaType": false, "inum": "1200.32E6AA", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=1200.32E6AA,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Scim fido2.write", "description": "Modify fido 2 resources", "dn": "inum=1200.D08B10,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/scim/fido2.write", "umaType": false, "inum": "1200.D08B10", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=1200.D08B10,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/openid/clients.readonly", "description": "View clients related information", "dn": "inum=1800.39D268,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/openid/clients.readonly", "umaType": false, "inum": "1800.39D268", "creationDate": "2022-11-24T09:11:56", "baseDn": "inum=1800.39D268,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/attributes.write", "description": "Manage attribute related information", "dn": "inum=1800.660F67,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/attributes.write", "umaType": false, "inum": "1800.660F67", "creationDate": "2022-11-24T09:11:56", "baseDn": "inum=1800.660F67,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/database/ldap.write", "description": "Manage LDAP database related information", "dn": "inum=1800.86D3FC,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/database/ldap.write", "umaType": false, "inum": "1800.86D3FC", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.86D3FC,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/stats.readonly", "description": "Vew server with basic statistic", "dn": "inum=1800.AA62E3,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/stats.readonly", "umaType": false, "inum": "1800.AA62E3", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.AA62E3,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/logging.readonly", "description": "View logging related information", "dn": "inum=1800.DECB26,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/logging.readonly", "umaType": false, "inum": "1800.DECB26", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.DECB26,ou=scopes,o=jans", "defaultScope": false }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/smtp.delete", "description": "Delete SMTP related information", "dn": "inum=1800.F42CE7,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/smtp.delete", "umaType": false, "inum": "1800.F42CE7", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.F42CE7,ou=scopes,o=jans", "defaultScope": false }, { "creatorType": "client", "displayName": "transaction:8645", "deletable": true, "creatorId": "e5a5a3da-8002-46c2-98f0-43490f27febd", "description": "Spontaneous scope: Scope{dn='null', inum='null', displayName='null', id='null', iconUrl='null', description='null', scopeType=null, claims=null, defaultScope=false, groupClaims=null, dynamicScopeScripts=null, umaAuthorizationPolicies=null, creatorId=null, creatorType=null, creationDate=Thu Nov 24 09:15:44 UTC 2022, creatorAttributes=null, deletable=null, expirationDate=null, attributes=null}", "dn": "inum=6d5909a3-4f28-4bb8-8eb5-8fb9ae3d747e,ou=scopes,o=jans", "inum": "6d5909a3-4f28-4bb8-8eb5-8fb9ae3d747e", "creationDate": "2022-11-24T09:15:44", "scopeType": "spontaneous", "attributes": { "showInConfigurationEndpoint": true, "spontaneousClientScopes": [ "^transaction:.+$" ] }, "id": "transaction:8645", "umaType": false, "baseDn": "inum=6d5909a3-4f28-4bb8-8eb5-8fb9ae3d747e,ou=scopes,o=jans", "defaultScope": false, "expirationDate": "2022-11-25T09:15:44" }, { "scopeType": "dynamic", "displayName": "view_user_permissions_roles", "description": "View your user permission and roles.", "dn": "inum=C4F5,ou=scopes,o=jans", "dynamicScopeScripts": [ "inum=CB5B-3211,ou=scripts,o=jans" ], "attributes": { "showInConfigurationEndpoint": true }, "id": "permission", "umaType": false, "inum": "C4F5", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=C4F5,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "openid", "displayName": "SSA Portal", "dn": "inum=SSA1-PTL1,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/auth/ssa.portal", "umaType": false, "inum": "SSA1-PTL1", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=SSA1-PTL1,ou=scopes,o=jans", "defaultScope": true }, { "scopeType": "oauth", "displayName": "Scim fido.write", "description": "Modify fido resources", "dn": "inum=1200.473DA8,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/scim/fido.write", "umaType": false, "inum": "1200.473DA8", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=1200.473DA8,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Scim bulk", "description": "Send requests to the bulk endpoint", "dn": "inum=1200.EBE8DC,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/scim/bulk", "umaType": false, "inum": "1200.EBE8DC", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=1200.EBE8DC,ou=scopes,o=jans" }, { "scopeType": "oauth", "displayName": "Config API scope https://jans.io/oauth/config/user.write", "description": "Manage user related information", "dn": "inum=1800.3F4379,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": false }, "id": "https://jans.io/oauth/config/user.write", "umaType": false, "inum": "1800.3F4379", "creationDate": "2022-11-24T09:11:57", "baseDn": "inum=1800.3F4379,ou=scopes,o=jans", "defaultScope": false } ], "start": 0, "totalEntriesCount": 86 } 24-11 09:34:01.751 INFO com.intuit.karate.Logger Logger.java:104- [print] { "scopeType": "oauth", "displayName": "Scim users.write", "description": "Modify user resources", "dn": "inum=1200.7AE031,ou=scopes,o=jans", "attributes": { "showInConfigurationEndpoint": true }, "id": "https://jans.io/scim/users.write", "umaType": false, "inum": "1200.7AE031", "creationDate": "2022-11-24T09:34:01", "baseDn": "inum=1200.7AE031,ou=scopes,o=jans" } 24-11 09:34:01.830 INFO com.intuit.karate.Runner Runner.java:264- <> feature 44 of 47: src/test/resources/feature/openid/scopes/scopes.feature --------------------------------------------------------- feature: src/test/resources/feature/openid/scopes/scopes.feature report: target/surefire-reports/src.test.resources.feature.openid.scopes.scopes.json scenarios: 11 | passed: 11 | failed: 0 | time: 3.5696 --------------------------------------------------------- 24-11 09:34:01.863 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:34:01.863 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:34:01.863 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:34:01.863 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:34:01.865 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:01.865 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:01.865 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:01.865 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:01.866 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:01.867 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:01.877 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:34:01.877 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:34:01.877 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:34:01.877 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:34:01.878 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:01.879 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:01.879 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:01.879 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:01.879 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:01.880 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:01.972 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:34:01.972 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:34:01.973 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:34:01.973 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:34:01.977 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:02.015 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:02.015 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:02.015 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:02.015 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:02.015 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:02.019 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:34:02.020 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:34:02.030 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:34:02.030 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:34:02.031 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:02.041 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:02.042 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:02.042 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:02.042 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:02.042 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:02.580 ERROR com.intuit.karate.Logger Logger.java:122- status code was: 500, expected: 200, response time: 323, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
24-11 09:34:02.605 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:34:02.605 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:34:02.605 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:34:02.636 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:34:02.637 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:02.638 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:02.638 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:02.638 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:02.638 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:02.639 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:02.643 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:34:02.643 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:34:02.644 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:34:02.644 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:34:02.645 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:02.646 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:02.647 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:02.647 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:02.647 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:02.647 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:02.988 ERROR com.intuit.karate.Logger Logger.java:122- status code was: 500, expected: 200, response time: 241, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients?limit=3, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
24-11 09:34:03.010 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:34:03.010 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:34:03.011 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:34:03.011 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:34:03.012 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:03.012 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:03.013 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:03.013 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:03.013 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:03.013 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:03.018 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:34:03.032 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:34:03.033 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:34:03.033 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:34:03.034 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:03.034 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:03.035 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:03.035 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:03.035 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:03.035 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:03.364 ERROR com.intuit.karate.Logger Logger.java:122- status code was: 500, expected: 200, response time: 251, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients?limit=1, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
24-11 09:34:03.384 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:34:03.394 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:34:03.395 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:34:03.395 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:34:03.397 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:03.398 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:03.398 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:03.398 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:03.398 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:03.399 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:03.408 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:34:03.409 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:34:03.409 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:34:03.409 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:34:03.415 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:03.416 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:03.416 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:03.417 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:03.417 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:03.417 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:03.770 ERROR com.intuit.karate.Logger Logger.java:122- status code was: 500, expected: 200, response time: 239, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients?pattern=test&limit=10&startIndex=1, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
24-11 09:34:03.799 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:34:03.800 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:34:03.800 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:34:03.800 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:34:03.801 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:03.802 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:03.802 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:03.802 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:03.802 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:03.802 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:03.806 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:34:03.807 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:34:03.807 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:34:03.807 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:34:03.808 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:03.808 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:03.808 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:03.808 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:03.809 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:03.809 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:04.088 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:34:04.089 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:34:04.089 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:34:04.089 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:34:04.096 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:04.097 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:04.097 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:04.098 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:04.098 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:04.098 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:04.108 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:34:04.108 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:34:04.108 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:34:04.109 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:34:04.110 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:04.112 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:04.112 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:04.112 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:04.112 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:04.113 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:04.440 ERROR com.intuit.karate.Logger Logger.java:122- status code was: 500, expected: 200, response time: 246, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
24-11 09:34:04.478 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:34:04.479 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:34:04.479 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:34:04.479 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:34:04.480 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:04.481 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:04.481 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:04.481 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:04.481 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:04.482 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:04.491 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:34:04.492 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:34:04.492 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:34:04.492 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:34:04.493 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:04.494 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:04.494 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:04.494 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:04.494 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:04.495 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:04.745 INFO com.intuit.karate.Logger Logger.java:104- [print] { "code": "404", "message": "The requested openid connect client doesn't exist" } 24-11 09:34:05.075 INFO com.intuit.karate.Runner Runner.java:264- <> feature 46 of 47: src/test/resources/feature/openid/clients/clients.feature --------------------------------------------------------- feature: src/test/resources/feature/openid/clients/clients.feature report: target/surefire-reports/src.test.resources.feature.openid.clients.clients.json scenarios: 8 | passed: 3 | failed: 5 | time: 2.4158 --------------------------------------------------------- 24-11 09:34:05.099 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:34:05.100 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:34:05.100 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:34:05.100 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:34:05.101 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:05.102 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:05.102 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:05.102 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:05.102 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:05.103 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:05.124 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:34:05.124 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:34:05.124 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:34:05.124 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:34:05.125 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:05.126 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:05.126 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:05.126 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:05.126 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:05.126 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:05.330 INFO com.intuit.karate.Logger Logger.java:104- [print] ONLY TOKEN BASED AUTHORIZATION IS SUPPORTED! 24-11 09:34:05.340 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:34:05.341 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:34:05.341 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:34:05.341 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:34:05.342 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:05.342 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:05.342 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:05.343 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:05.343 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:05.343 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:05.362 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:34:05.363 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:34:05.363 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:34:05.363 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:34:05.364 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:05.364 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:05.365 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:05.365 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:05.365 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:05.365 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:05.634 INFO com.intuit.karate.Logger Logger.java:104- [print] { "defaultAcr": "basic" } 24-11 09:34:05.645 INFO com.intuit.karate.Logger Logger.java:104- karate env : dev 24-11 09:34:05.662 INFO com.intuit.karate.Logger Logger.java:104- karate url : https://jenkins-build.jans.io 24-11 09:34:05.663 INFO com.intuit.karate.Logger Logger.java:104- karate port : 24-11 09:34:05.667 INFO com.intuit.karate.Logger Logger.java:104- karate baseUrl : https://jenkins-build.jans.io 24-11 09:34:05.669 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:05.669 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:05.669 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:05.670 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:05.670 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:05.670 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:05.679 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins env : dev 24-11 09:34:05.679 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins url : https://jenkins-build.jans.io 24-11 09:34:05.679 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins port : 24-11 09:34:05.680 INFO com.intuit.karate.Logger Logger.java:104- karate_jenkins baseUrl : https://jenkins-build.jans.io 24-11 09:34:05.688 INFO com.intuit.karate.Logger Logger.java:104- testProps = {test.client.id=1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948, token.endpoint=https://jenkins-build.jans.io/jans-auth/restv1/token, token.grant.type=client_credentials, test.issuer=https://jenkins-build.jans.io, test.client.secret=MdZvQhEZ3JsG, test.scopes=https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write} 24-11 09:34:05.689 INFO com.intuit.karate.Logger Logger.java:104- testClientId = 1802.cfdf3f1e-27ab-4d17-89d9-2faae50c0948 24-11 09:34:05.689 INFO com.intuit.karate.Logger Logger.java:104- testClientSecret = MdZvQhEZ3JsG 24-11 09:34:05.689 INFO com.intuit.karate.Logger Logger.java:104- tokenEndpoint = https://jenkins-build.jans.io/jans-auth/restv1/token 24-11 09:34:05.690 INFO com.intuit.karate.Logger Logger.java:104- testScopes = https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/agama.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/scim/users.write https://jans.io/oauth/config/stats.readonly https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/jans-auth-server/session.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.delete https://jans.io/scim/config.readonly https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/agama.delete https://jans.io/scim/config.write https://jans.io/oauth/config/user.delete https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/user.write https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/agama.write https://jans.io/oauth/jans-auth-server/session.delete https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/config/jwks.write 24-11 09:34:05.690 INFO com.intuit.karate.Logger Logger.java:104- issuer = https://jenkins-build.jans.io result.response = {"access_token":"86338509-2112-409e-98ae-4d3e55ded0fe","scope":"https:\/\/jans.io\/oauth\/jans-auth-server\/session.readonly https:\/\/jans.io\/oauth\/config\/jwks.delete https:\/\/jans.io\/oauth\/config\/scopes.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.write https:\/\/jans.io\/oauth\/config\/smtp.delete https:\/\/jans.io\/oauth\/config\/cache.readonly https:\/\/jans.io\/oauth\/config\/organization.write https:\/\/jans.io\/oauth\/config\/database\/ldap.delete https:\/\/jans.io\/oauth\/config\/user.readonly https:\/\/jans.io\/oauth\/config\/openid\/clients.delete https:\/\/jans.io\/oauth\/config\/acrs.write https:\/\/jans.io\/scim\/config.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.readonly https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.write https:\/\/jans.io\/oauth\/config\/fido2.write https:\/\/jans.io\/oauth\/config\/scim\/users.read https:\/\/jans.io\/oauth\/config\/scripts.delete https:\/\/jans.io\/oauth\/config\/uma\/resources.delete https:\/\/jans.io\/oauth\/config\/fido2.readonly https:\/\/jans.io\/oauth\/config\/jwks.write https:\/\/jans.io\/oauth\/jans-auth-server\/config\/properties.readonly https:\/\/jans.io\/oauth\/config\/user.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.readonly https:\/\/jans.io\/oauth\/config\/cache.write https:\/\/jans.io\/oauth\/config\/scripts.readonly https:\/\/jans.io\/oauth\/config\/attributes.readonly https:\/\/jans.io\/oauth\/config\/smtp.readonly https:\/\/jans.io\/oauth\/config\/agama.delete https:\/\/jans.io\/oauth\/config\/logging.readonly https:\/\/jans.io\/oauth\/config\/uma\/resources.write https:\/\/jans.io\/oauth\/config\/stats.readonly https:\/\/jans.io\/oauth\/config\/organization.readonly https:\/\/jans.io\/oauth\/config\/attributes.delete https:\/\/jans.io\/oauth\/config\/user.write https:\/\/jans.io\/oauth\/config\/agama.readonly https:\/\/jans.io\/oauth\/config\/jwks.readonly https:\/\/jans.io\/oauth\/config\/scopes.delete https:\/\/jans.io\/oauth\/config\/database\/ldap.write https:\/\/jans.io\/oauth\/config\/scripts.write https:\/\/jans.io\/oauth\/config\/openid\/clients.readonly https:\/\/jans.io\/scim\/config.write https:\/\/jans.io\/oauth\/config\/agama.write https:\/\/jans.io\/oauth\/jans-auth-server\/session.delete https:\/\/jans.io\/oauth\/config\/acrs.readonly https:\/\/jans.io\/oauth\/config\/smtp.write https:\/\/jans.io\/oauth\/config\/scim\/users.write https:\/\/jans.io\/oauth\/config\/logging.write https:\/\/jans.io\/oauth\/config\/attributes.write https:\/\/jans.io\/oauth\/config\/scopes.write","token_type":"Bearer","expires_in":299} 24-11 09:34:05.965 INFO com.intuit.karate.Logger Logger.java:104- [print] { "defaultAcr": "basic" } 24-11 09:34:06.261 INFO com.intuit.karate.Logger Logger.java:104- [print] { "defaultAcr": "basic" } 24-11 09:34:06.321 INFO com.intuit.karate.Runner Runner.java:264- <> feature 47 of 47: src/test/resources/feature/defaultAcr/defaultAcr.feature --------------------------------------------------------- feature: src/test/resources/feature/defaultAcr/defaultAcr.feature report: target/surefire-reports/src.test.resources.feature.defaultAcr.defaultAcr.json scenarios: 3 | passed: 3 | failed: 0 | time: 1.0289 --------------------------------------------------------- Karate version: 0.9.5 ====================================================== elapsed: 61.33 | threads: 1 | thread time: 45.80 features: 21 | ignored: 26 | efficiency: 0.75 scenarios: 112 | passed: 107 | failed: 5 ====================================================== failed features: src.test.resources.feature.openid.clients.clients: clients.feature:17 - status code was: 500, expected: 200, response time: 323, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
clients.feature:27 - status code was: 500, expected: 200, response time: 241, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients?limit=3, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
clients.feature:37 - status code was: 500, expected: 200, response time: 251, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients?limit=1, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
clients.feature:55 - status code was: 500, expected: 200, response time: 239, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients?pattern=test&limit=10&startIndex=1, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
clients.feature:69 - status code was: 500, expected: 200, response time: 246, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
24-11 09:34:07.228 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.uma.scopes.umascopes.json' contain 1 features 24-11 09:34:07.327 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.smtp.smtp.json' contain 1 features 24-11 09:34:07.387 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.openid.scopes.scopes.json' contain 1 features 24-11 09:34:07.505 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.config.scripts.custom.generic.custom.json' contain 1 features 24-11 09:34:07.514 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.health.auth-server-health.json' contain 1 features 24-11 09:34:07.532 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.attribute.attributes.json' contain 1 features 24-11 09:34:07.552 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.health.config-api-health.json' contain 1 features 24-11 09:34:07.554 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.agama.agama.json' contain 1 features 24-11 09:34:07.583 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.uma.resource.resources.json' contain 1 features 24-11 09:34:07.601 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.logging.logging.json' contain 1 features 24-11 09:34:07.605 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.config.jwks.jwks.json' contain 1 features 24-11 09:34:07.611 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.defaultAcr.defaultAcr.json' contain 1 features 24-11 09:34:07.697 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.session.session.json' contain 1 features 24-11 09:34:07.709 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.config.org.org-config.json' contain 1 features 24-11 09:34:07.742 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.config.scripts.custom.persons.person-scripts.json' contain 1 features 24-11 09:34:07.761 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.config.cache.cache.json' contain 1 features 24-11 09:34:07.795 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.openid.clients.clients.json' contain 1 features 24-11 09:34:07.797 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.config.database.ldap.get-ldap-config.json' contain 1 features 24-11 09:34:07.806 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.config.database.ldap.ldap.json' contain 1 features 24-11 09:34:07.818 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.config.properties.properties.json' contain 1 features 24-11 09:34:07.820 INFO net.masterthought.cucumber.ReportParser ReportParser.java:59- File '/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports/src.test.resources.feature.health.server-health.json' contain 1 features [ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 72.082 s <<< FAILURE! - in io.jans.configapi.JenkinsTestRunner [ERROR] io.jans.configapi.JenkinsTestRunner.testParallel Time elapsed: 71.93 s <<< FAILURE! org.opentest4j.AssertionFailedError: failed features: src.test.resources.feature.openid.clients.clients: clients.feature:17 - status code was: 500, expected: 200, response time: 323, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
clients.feature:27 - status code was: 500, expected: 200, response time: 241, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients?limit=3, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
clients.feature:37 - status code was: 500, expected: 200, response time: 251, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients?limit=1, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
clients.feature:55 - status code was: 500, expected: 200, response time: 239, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients?pattern=test&limit=10&startIndex=1, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
clients.feature:69 - status code was: 500, expected: 200, response time: 246, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
==> expected: <0> but was: <5> at io.jans.configapi.JenkinsTestRunner.testParallel(JenkinsTestRunner.java:36) [INFO] [INFO] Results: [INFO] [ERROR] Failures: [ERROR] JenkinsTestRunner.testParallel:36 failed features: src.test.resources.feature.openid.clients.clients: clients.feature:17 - status code was: 500, expected: 200, response time: 323, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
clients.feature:27 - status code was: 500, expected: 200, response time: 241, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients?limit=3, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 3...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
clients.feature:37 - status code was: 500, expected: 200, response time: 251, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients?limit=1, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
clients.feature:55 - status code was: 500, expected: 200, response time: 239, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients?pattern=test&limit=10&startIndex=1, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 10 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 1...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
clients.feature:69 - status code was: 500, expected: 200, response time: 246, url: https://jenkins-build.jans.io/jans-config-api/api/v1/openid/clients, response: Error 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

HTTP ERROR 500 org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'

URI:/jans-config-api/api/v1/openid/clients
STATUS:500
MESSAGE:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
SERVLET:io.jans.configapi.rest.ApiApplication
CAUSED BY:org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
CAUSED BY:Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0' with key: 'clients'
CAUSED BY:Failed to convert entry!
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
CAUSED BY:com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^
CAUSED BY:io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145] ...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5... ^

Caused by:

org.jboss.resteasy.spi.UnhandledException: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)
	at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)
	at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
	at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
	at io.jans.configapi.filters.MetricFilter.doFilter(MetricFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at io.jans.configapi.filters.CorsFilter.doFilter(CorsFilter.java:64)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.Server.handle(Server.java:562)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: io.jans.orm.exception.EntryPersistenceException: Failed to find entries with key: 'clients'
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:500)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findPagedEntries(SpannerEntryManager.java:415)
	at jdk.internal.reflect.GeneratedMethodAccessor937.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
	at io.jans.orm.PersistenceEntryManager$EntityManager$722412412$Proxy$_$$_WeldClientProxy.findPagedEntries(Unknown Source)
	at io.jans.configapi.service.auth.ClientService.getClients(ClientService.java:143)
	at io.jans.configapi.service.auth.ClientService$Proxy$_$$_WeldClientProxy.getClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource.doSearch(ClientsResource.java:282)
	at io.jans.configapi.rest.resource.auth.ClientsResource.getOpenIdConnectClients(ClientsResource.java:108)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldSubclass.getOpenIdConnectClients(Unknown Source)
	at io.jans.configapi.rest.resource.auth.ClientsResource$Proxy$_$$_WeldClientProxy.getOpenIdConnectClients(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
	at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
	at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
	at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
	... 53 more
Caused by: Failed to execute query 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'  with key: 'clients'
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:663)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.search(SpannerOperationServiceImpl.java:560)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.searchImpl(SpannerEntryManager.java:548)
	at io.jans.orm.cloud.spanner.impl.SpannerEntryManager.findEntriesImpl(SpannerEntryManager.java:491)
	... 81 more
Caused by: Failed to convert entry!
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:840)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getEntryDataList(SpannerOperationServiceImpl.java:849)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.searchImpl(SpannerOperationServiceImpl.java:638)
	... 84 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:170)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:953)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator.computeNext(AbstractResultSet.java:884)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1135)
	at com.google.cloud.spanner.AbstractResultSet$ResumableStreamIterator.computeNext(AbstractResultSet.java:1007)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.ensureReady(AbstractResultSet.java:270)
	at com.google.cloud.spanner.AbstractResultSet$GrpcValueIterator.getMetadata(AbstractResultSet.java:246)
	at com.google.cloud.spanner.AbstractResultSet$GrpcResultSet.next(AbstractResultSet.java:120)
	at com.google.cloud.spanner.ForwardingResultSet.next(ForwardingResultSet.java:54)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.internalNext(SessionPool.java:273)
	at com.google.cloud.spanner.SessionPool$AutoClosingReadContext$1.next(SessionPool.java:253)
	at io.jans.orm.cloud.spanner.operation.impl.SpannerOperationServiceImpl.getAttributeDataList(SpannerOperationServiceImpl.java:767)
	... 86 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^ - Statement: 'SELECT doc.* FROM jansClnt doc WHERE ((doc.displayName LIKE @displayName OR doc.description LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 50 OFFSET 0'
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:297)
	at com.google.cloud.spanner.AbstractResultSet$GrpcStreamIterator$ConsumerImpl.onError(AbstractResultSet.java:989)
	at com.google.cloud.spanner.spi.v1.GapicSpannerRpc$SpannerResponseObserver.onError(GapicSpannerRpc.java:1995)
	at com.google.api.gax.tracing.TracedResponseObserver.onError(TracedResponseObserver.java:103)
	at com.google.api.gax.rpc.RetryingServerStreamingCallable$1.onFailure(RetryingServerStreamingCallable.java:99)
	at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:67)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.gax.retrying.BasicRetryingFuture.handleAttempt(BasicRetryingFuture.java:200)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.handle(CallbackChainRetryingFuture.java:135)
	at com.google.api.gax.retrying.CallbackChainRetryingFuture$AttemptCompletionListener.run(CallbackChainRetryingFuture.java:117)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.api.core.AbstractApiFuture$InternalSettableFuture.setException(AbstractApiFuture.java:94)
	at com.google.api.core.AbstractApiFuture.setException(AbstractApiFuture.java:76)
	at com.google.api.core.SettableApiFuture.setException(SettableApiFuture.java:51)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.onAttemptError(ServerStreamingAttemptCallable.java:378)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable.access$600(ServerStreamingAttemptCallable.java:97)
	at com.google.api.gax.rpc.ServerStreamingAttemptCallable$2.onErrorImpl(ServerStreamingAttemptCallable.java:249)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.rpc.Watchdog$WatchdogStream.onErrorImpl(Watchdog.java:282)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:84)
	at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
	at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:535)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.cloud.spanner.spi.v1.SpannerErrorInterceptor$1$1.onClose(SpannerErrorInterceptor.java:100)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: com.google.cloud.spanner.SpannerException: INVALID_ARGUMENT: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerExceptionPreformatted(SpannerExceptionFactory.java:291)
	at com.google.cloud.spanner.SpannerExceptionFactory.fromApiException(SpannerExceptionFactory.java:311)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:174)
	at com.google.cloud.spanner.SpannerExceptionFactory.newSpannerException(SpannerExceptionFactory.java:110)
	... 51 more
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unrecognized name: clientName [at 1:145]
...LIKE @description OR doc.inum LIKE @inum)) ORDER BY clientName ASC LIMIT 5...
                                                       ^
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 24 more
==> expected: <0> but was: <5> [INFO] [ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0 [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary for jans-config-api-parent 1.0.5-SNAPSHOT: [INFO] [INFO] jans-config-api-parent ............................. SUCCESS [ 1.759 s] [INFO] jans-config-api-shared ............................. SUCCESS [ 7.868 s] [INFO] jans-config-api-common ............................. SUCCESS [ 4.492 s] [INFO] jans-config-api-server ............................. FAILURE [01:27 min] [INFO] plugins ............................................ SKIPPED [INFO] admin-ui-plugin .................................... SKIPPED [INFO] scim-plugin ........................................ SKIPPED [INFO] user-mgt-plugin .................................... SKIPPED [INFO] fido2-plugin ....................................... SKIPPED [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:42 min [INFO] Finished at: 2022-11-24T09:34:15Z [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test (default-test) on project jans-config-api-server: There are test failures. [ERROR] [ERROR] Please refer to /home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports for the individual test results. [ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream. [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn -rf :jans-config-api-server Build step 'Invoke top-level Maven targets' marked build as failure [CucumberReport] Using Cucumber Reports version null [CucumberReport] JSON report directory is "jans-config-api/server/target/surefire-reports" [CucumberReport] Copied 0 properties files from workspace "/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports" to reports directory "/home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache" [CucumberReport] Copied 21 files from workspace "/home/jetty/.jenkins/workspace/jans-config-api/jans-config-api/server/target/surefire-reports" to reports directory "/home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache" [CucumberReport] Processing 21 json files: [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.agama.agama.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.attribute.attributes.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.config.cache.cache.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.config.database.ldap.get-ldap-config.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.config.database.ldap.ldap.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.config.jwks.jwks.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.config.org.org-config.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.config.properties.properties.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.config.scripts.custom.generic.custom.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.config.scripts.custom.persons.person-scripts.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.defaultAcr.defaultAcr.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.health.auth-server-health.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.health.config-api-health.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.health.server-health.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.logging.logging.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.openid.clients.clients.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.openid.scopes.scopes.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.session.session.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.smtp.smtp.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.uma.resource.resources.json [CucumberReport] /home/jetty/.jenkins/jobs/jans-config-api/builds/6029/cucumber-html-reports_393f3d47-d30d-3acf-a82f-41b0e41e87bb/.cache/src.test.resources.feature.uma.scopes.umascopes.json [CucumberReport] Found 0.389408 failed steps, while expected not more than 0.000000 percent [CucumberReport] Build status is left unchanged Sending e-mails to: support@gluu.org Finished: FAILURE