执行Keycloak客户端示例的问题

时间:2016-10-22 13:20:04

标签: java resteasy keycloak

我试图执行Keycloak Admin Client的示例。 此示例用于在keycloak应用程序中添加/删除用户。

不幸的是,我收到了这个错误:

/usr/lib/jvm/java-7-openjdk-amd64/bin/java -Didea.launcher.port=7534 -Didea.launcher.bin.path=/home/celsoagra/idea-IU-145.972.3/bin -Dfile.encoding=UTF-8 -classpath /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/charsets.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/compilefontconfig.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/dnsns.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/icedtea-sound.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/java-atk-wrapper.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/localedata.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/sunjce_provider.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/sunpkcs11.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/zipfs.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/javazic.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jce.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jsse.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/management-agent.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/resources.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rhino.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar:/home/celsoagra/ws-intellij/RESTfulExample/target/classes:/home/celsoagra/.m2/repository/org/keycloak/keycloak-admin-client/2.3.0.CR1/keycloak-admin-client-2.3.0.CR1.jar:/home/celsoagra/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar:/home/celsoagra/.m2/repository/org/jboss/resteasy/resteasy-jaxrs/3.0.19.Final/resteasy-jaxrs-3.0.19.Final.jar:/home/celsoagra/.m2/repository/org/jboss/spec/javax/ws/rs/jboss-jaxrs-api_2.0_spec/1.0.0.Final/jboss-jaxrs-api_2.0_spec-1.0.0.Final.jar:/home/celsoagra/.m2/repository/org/jboss/spec/javax/annotation/jboss-annotations-api_1.2_spec/1.0.0.Final/jboss-annotations-api_1.2_spec-1.0.0.Final.jar:/home/celsoagra/.m2/repository/javax/activation/activation/1.1.1/activation-1.1.1.jar:/home/celsoagra/.m2/repository/org/apache/httpcomponents/httpclient/4.3.6/httpclient-4.3.6.jar:/home/celsoagra/.m2/repository/org/apache/httpcomponents/httpcore/4.3.3/httpcore-4.3.3.jar:/home/celsoagra/.m2/repository/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar:/home/celsoagra/.m2/repository/commons-codec/commons-codec/1.6/commons-codec-1.6.jar:/home/celsoagra/.m2/repository/commons-io/commons-io/2.1/commons-io-2.1.jar:/home/celsoagra/.m2/repository/net/jcip/jcip-annotations/1.0/jcip-annotations-1.0.jar:/home/celsoagra/.m2/repository/org/jboss/logging/jboss-logging/3.1.4.GA/jboss-logging-3.1.4.GA.jar:/home/celsoagra/.m2/repository/org/keycloak/keycloak-core/1.9.2.Final/keycloak-core-1.9.2.Final.jar:/home/celsoagra/.m2/repository/org/keycloak/keycloak-common/1.9.2.Final/keycloak-common-1.9.2.Final.jar:/home/celsoagra/.m2/repository/org/bouncycastle/bcprov-jdk15on/1.52/bcprov-jdk15on-1.52.jar:/home/celsoagra/.m2/repository/org/bouncycastle/bcpkix-jdk15on/1.52/bcpkix-jdk15on-1.52.jar:/home/celsoagra/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.5.4/jackson-core-2.5.4.jar:/home/celsoagra/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.5.4/jackson-databind-2.5.4.jar:/home/celsoagra/.m2/repository/org/jboss/resteasy/resteasy-jackson2-provider/3.0.19.Final/resteasy-jackson2-provider-3.0.19.Final.jar:/home/celsoagra/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.6.3/jackson-annotations-2.6.3.jar:/home/celsoagra/.m2/repository/com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.6.3/jackson-jaxrs-json-provider-2.6.3.jar:/home/celsoagra/.m2/repository/com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.6.3/jackson-jaxrs-base-2.6.3.jar:/home/celsoagra/.m2/repository/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.6.3/jackson-module-jaxb-annotations-2.6.3.jar:/home/celsoagra/.m2/repository/org/jboss/resteasy/resteasy-jettison-provider/3.0.19.Final/resteasy-jettison-provider-3.0.19.Final.jar:/home/celsoagra/.m2/repository/org/jboss/resteasy/resteasy-jaxb-provider/3.0.19.Final/resteasy-jaxb-provider-3.0.19.Final.jar:/home/celsoagra/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2.7/jaxb-impl-2.2.7.jar:/home/celsoagra/.m2/repository/com/sun/xml/bind/jaxb-core/2.2.7/jaxb-core-2.2.7.jar:/home/celsoagra/.m2/repository/javax/xml/bind/jaxb-api/2.2.7/jaxb-api-2.2.7.jar:/home/celsoagra/.m2/repository/com/sun/istack/istack-commons-runtime/2.16/istack-commons-runtime-2.16.jar:/home/celsoagra/.m2/repository/com/sun/xml/fastinfoset/FastInfoset/1.2.12/FastInfoset-1.2.12.jar:/home/celsoagra/.m2/repository/javax/xml/bind/jsr173_api/1.0/jsr173_api-1.0.jar:/home/celsoagra/.m2/repository/org/codehaus/jettison/jettison/1.3.2/jettison-1.3.2.jar:/home/celsoagra/.m2/repository/org/jboss/resteasy/resteasy-client/3.0.19.Final/resteasy-client-3.0.19.Final.jar:/home/celsoagra/.m2/repository/org/jboss/resteasy/jaxrs-api/3.0.12.Final/jaxrs-api-3.0.12.Final.jar:/home/celsoagra/.m2/repository/org/jboss/resteasy/resteasy-jackson-provider/3.0.19.Final/resteasy-jackson-provider-3.0.19.Final.jar:/home/celsoagra/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.12/jackson-core-asl-1.9.12.jar:/home/celsoagra/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.12/jackson-mapper-asl-1.9.12.jar:/home/celsoagra/.m2/repository/org/codehaus/jackson/jackson-jaxrs/1.9.12/jackson-jaxrs-1.9.12.jar:/home/celsoagra/.m2/repository/org/codehaus/jackson/jackson-xc/1.9.12/jackson-xc-1.9.12.jar:/home/celsoagra/idea-IU-145.972.3/lib/idea_rt.jar com.intellij.rt.execution.application.AppMain com.mkyong.rest.client.RESTEasyClientKeycloak
2016-10-24 17:00:40 DEBUG logging:26 - Logging Provider: org.jboss.logging.Log4jLoggerProvider
2016-10-24 17:00:40 DEBUG i18n:58 - RESTEASY002330: Unable to retrieve config: expandEntityReferences defaults to false
2016-10-24 17:00:40 DEBUG i18n:67 - RESTEASY002335: Unable to retrieve config: enableSecureProcessingFeature defaults to true
2016-10-24 17:00:40 DEBUG i18n:76 - RESTEASY002325: Unable to retrieve config: disableDTDs defaults to true
2016-10-24 17:00:40 DEBUG i18n:58 - RESTEASY002330: Unable to retrieve config: expandEntityReferences defaults to false
2016-10-24 17:00:40 DEBUG i18n:67 - RESTEASY002335: Unable to retrieve config: enableSecureProcessingFeature defaults to true
2016-10-24 17:00:40 DEBUG i18n:76 - RESTEASY002325: Unable to retrieve config: disableDTDs defaults to true
2016-10-24 17:00:41 DEBUG PoolingClientConnectionManager:182 - Connection request: [route: {}->http://localhost:8081][total kept alive: 0; route allocated: 0 of 10; total allocated: 0 of 10]
2016-10-24 17:00:41 DEBUG PoolingClientConnectionManager:214 - Connection leased: [id: 0][route: {}->http://localhost:8081][total kept alive: 0; route allocated: 1 of 10; total allocated: 1 of 10]
2016-10-24 17:00:41 DEBUG DefaultClientConnectionOperator:174 - Connecting to localhost:8081
2016-10-24 17:00:41 DEBUG RequestAddCookies:122 - CookieSpec selected: best-match
2016-10-24 17:00:41 DEBUG RequestAuthCache:75 - Auth cache not set in the context
2016-10-24 17:00:41 DEBUG RequestTargetAuthentication:78 - Target auth state: UNCHALLENGED
2016-10-24 17:00:41 DEBUG RequestProxyAuthentication:87 - Proxy auth state: UNCHALLENGED
2016-10-24 17:00:41 DEBUG DefaultHttpClient:683 - Attempt 1 to execute request
2016-10-24 17:00:41 DEBUG DefaultClientConnection:268 - Sending request: POST /auth/realms/master/protocol/openid-connect/token HTTP/1.1
2016-10-24 17:00:41 DEBUG wire:72 -  >> "POST /auth/realms/master/protocol/openid-connect/token HTTP/1.1[\r][\n]"
2016-10-24 17:00:41 DEBUG wire:72 -  >> "Accept: application/json[\r][\n]"
2016-10-24 17:00:41 DEBUG wire:72 -  >> "Accept-Encoding: gzip, deflate[\r][\n]"
2016-10-24 17:00:41 DEBUG wire:72 -  >> "Content-Type: application/x-www-form-urlencoded[\r][\n]"
2016-10-24 17:00:41 DEBUG wire:72 -  >> "Content-Length: 65[\r][\n]"
2016-10-24 17:00:41 DEBUG wire:72 -  >> "Host: localhost:8081[\r][\n]"
2016-10-24 17:00:41 DEBUG wire:72 -  >> "Connection: Keep-Alive[\r][\n]"
2016-10-24 17:00:41 DEBUG wire:72 -  >> "[\r][\n]"
2016-10-24 17:00:41 DEBUG headers:272 - >> POST /auth/realms/master/protocol/openid-connect/token HTTP/1.1
2016-10-24 17:00:41 DEBUG headers:275 - >> Accept: application/json
2016-10-24 17:00:41 DEBUG headers:275 - >> Accept-Encoding: gzip, deflate
2016-10-24 17:00:41 DEBUG headers:275 - >> Content-Type: application/x-www-form-urlencoded
2016-10-24 17:00:41 DEBUG headers:275 - >> Content-Length: 65
2016-10-24 17:00:41 DEBUG headers:275 - >> Host: localhost:8081
2016-10-24 17:00:41 DEBUG headers:275 - >> Connection: Keep-Alive
2016-10-24 17:00:41 DEBUG wire:86 -  >> "grant_type=password&username=admin&password=admin&client_id=cloak"
2016-10-24 17:00:41 DEBUG wire:72 -  << "HTTP/1.1 200 OK[\r][\n]"
2016-10-24 17:00:41 DEBUG wire:72 -  << "Connection: keep-alive[\r][\n]"
2016-10-24 17:00:41 DEBUG wire:72 -  << "X-Powered-By: Undertow/1[\r][\n]"
2016-10-24 17:00:41 DEBUG wire:72 -  << "Server: WildFly/10[\r][\n]"
2016-10-24 17:00:41 DEBUG wire:72 -  << "Content-Type: application/json[\r][\n]"
2016-10-24 17:00:41 DEBUG wire:72 -  << "Content-Length: 4884[\r][\n]"
2016-10-24 17:00:41 DEBUG wire:72 -  << "Date: Mon, 24 Oct 2016 20:00:41 GMT[\r][\n]"
2016-10-24 17:00:41 DEBUG wire:72 -  << "[\r][\n]"
2016-10-24 17:00:41 DEBUG DefaultClientConnection:253 - Receiving response: HTTP/1.1 200 OK
2016-10-24 17:00:41 DEBUG headers:256 - << HTTP/1.1 200 OK
2016-10-24 17:00:41 DEBUG headers:259 - << Connection: keep-alive
2016-10-24 17:00:41 DEBUG headers:259 - << X-Powered-By: Undertow/1
2016-10-24 17:00:41 DEBUG headers:259 - << Server: WildFly/10
2016-10-24 17:00:41 DEBUG headers:259 - << Content-Type: application/json
2016-10-24 17:00:41 DEBUG headers:259 - << Content-Length: 4884
2016-10-24 17:00:41 DEBUG headers:259 - << Date: Mon, 24 Oct 2016 20:00:41 GMT
2016-10-24 17:00:41 DEBUG DefaultHttpClient:510 - Connection can be kept alive indefinitely
2016-10-24 17:00:41 DEBUG wire:86 -  << "{"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJqS3dodmEzSXIyQmt2bEw5MjZudUZsTU9ZcUFEUWpMeGliMXYzRVZkOUswIn0.eyJqdGkiOiIzNDUxNjdhYS02NmRmLTQ1MTgtODdiMy0xYTUyZTZiOTQ0OTYiLCJleHAiOjE0NzczMzkzMDEsIm5iZiI6MCwiaWF0IjoxNDc3MzM5MjQxLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwODEvYXV0aC9yZWFsbXMvbWFzdGVyIiwiYXVkIjoiY2xvYWsiLCJzdWIiOiI2MjQwNzZjZS1jMGVmLTRhMjItYTg5OC02ZTAwMjU3MzhiMTYiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJjbG9hayIsImF1dGhfdGltZSI6MCwic2Vzc2lvbl9zdGF0ZSI6ImNiMTE0MDc3LTkzYWYtNDM5NS04NmRlLTg4MDdkZTc4OWE3ZiIsImFjciI6IjEiLCJjbGllbnRfc2Vzc2lvbiI6IjVjYjdhZmI2LWYzY2MtNGNkZS1hMWMzLWQzMzczYTBjNjVhMyIsImFsbG93ZWQtb3JpZ2lucyI6W10sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJjcmVhdGUtcmVhbG0iLCJhZG1pbiIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiZGVtby1yZWFsbSI6eyJyb2xlcyI6WyJ2aWV3LWlkZW50aXR5LXByb3ZpZGVycyIsInZpZXctcmVhbG0iLCJtYW5hZ2UtaWRlbnRpdHktcHJvdmlkZXJzIiwiaW1wZXJzb25hdGlvbiIsImNyZWF0ZS1jbGllbnQiLCJtYW5hZ2UtdXNlcnMiLCJ2aWV3LWF1dGhvcml6YXRpb24iLCJtYW5hZ2UtZXZlbnRzIiwibWFuYWdlLXJlYWxtIiwidmlldy1ldmVudHMiLCJ2aWV3LXVzZXJzIiwidmlldy1jbGllbnRzIiwibWFuYWdlLWF1dGhvcml6YXRpb24iLCJtYW5hZ2UtY2xpZW50cyJdfSwibWFzdGVyLXJlYWxtIjp7InJvbGVzIjpbInZpZXctaWRlbnRpdHktcHJvdmlkZXJzIiwidmlldy1yZWFsbSIsIm1hbmFnZS1pZGVudGl0eS1wcm92aWRlcnMiLCJpbXBlcnNvbmF0aW9uIiwiY3JlYXRlLWNsaWVudCIsIm1hbmFnZS11c2VycyIsInZpZXctYXV0aG9yaXphdGlvbiIsIm1hbmFnZS1ldmVudHMiLCJtYW5hZ2UtcmVhbG0iLCJ2aWV3LWV2ZW50cyIsInZpZXctdXNlcnMiLCJ2aWV3LWNsaWVudHMiLCJtYW5hZ2UtYXV0aG9yaXphdGlvbiIsIm1hbmFnZS1jbGllbnRzIl19LCJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50Iiwidmlldy1wcm9maWxlIl19fSwibmFtZSI6IiIsInByZWZlcnJlZF91c2VybmFtZSI6ImFkbWluIn0.ZNtmxjTF6bkBURWj-78NWjpM_042AxNfLxkCaNfVZgSU4cNfUlNKHNMVKwL7HYiFFqpGOy0ZlYWYgTM1MMyMoQq7YzJTmfsiyUx5Q9cEEBtn8D761O6YIl0TsNsikolBxrNOmbqpfuuzuyxUR9hhwWezQFaEhIqUecLlcqXf6HOFn5ITKwlxShTf7JZZ5ynBK0pJrQpSy0CuhGAmDA1jZe-vaWmeYmeQVh_FoJRFnhgkj0d6G5eocmNYCcmfv-nOPnvP-aVa7Zv6Q7wzF_eAZ22YPuOGFeECnETL6w-fziEMcVk-mjW6BkqAO0XD0m3JKEw0-5SXN0BQuzKTj1eZ2Q","expires_in":60,"refresh_expires_in":1800,"refresh_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJqS3dodmEzSXIyQmt2bEw5MjZudUZsTU9ZcUFEUWpMeGliMXYzRVZkOUswIn0.eyJqdGkiOiJkYjRiZDFmOC01MzNmLTQ1MzgtODJlNi1hN2UwZTYxMDdmZjMiLCJleHAiOjE0NzczNDEwNDEsIm5iZiI6MCwiaWF0IjoxNDc3MzM5MjQxLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwODEvYXV0aC9yZWFsbXMvbWFzdGVyIiwiYXVkIjoiY2xvYWsiLCJzdWIiOiI2MjQwNzZjZS1jMGVmLTRhMjItYTg5OC02ZTAwMjU3MzhiMTYiLCJ0eXAiOiJSZWZyZXNoIiwiYXpwIjoiY2xvYWsiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiJjYjExNDA3Ny05M2FmLTQzOTUtODZkZS04ODA3ZGU3ODlhN2YiLCJjbGllbnRfc2Vzc2lvbiI6IjVjYjdhZmI2LWYzY2MtNGNkZS1hMWMzLWQzMzczYTBjNjVhMyIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJjcmVhdGUtcmVhbG0iLCJhZG1pbiIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiZGVtby1yZWFsbSI6eyJyb2xlcyI6WyJ2aWV3LWlkZW50aXR5LXByb3ZpZGVycyIsInZpZXctcmVhbG0iLCJtYW5hZ2UtaWRlbnRpdHktcHJvdmlkZXJzIiwiaW1wZXJzb25hdGlvbiIsImNyZWF0ZS1jbGllbnQiLCJtYW5hZ2UtdXNlcnMiLCJ2aWV3LWF1dGhvcml6YXRpb24iLCJtYW5hZ2UtZXZlbnRzIiwibWFuYWdlLXJlYWxtIiwidmlldy1ldmVudHMiLCJ2aWV3LXVzZXJzIiwidmlldy1jbGllbnRzIiwibWFuYWdlLWF1dGhvcml6YXRpb24iLCJtYW5hZ2UtY2xpZW50cyJdfSwibWFzdGVyLXJlYWxtIjp7InJvbGVzIjpbInZpZXctaWRlbnRpdHktcHJvdmlkZXJzIiwidmlldy1yZWFsbSIsIm1hbmFnZS1pZGVudGl0eS1wcm92aWRlcnMiLCJpbXBlcnNvbmF0aW9uIiwiY3JlYXRlLWNsaWVudCIsIm1hbmFnZS11c2VycyIsInZpZXctYXV0aG9yaXphdGlvbiIsIm1hbmFnZS1ldmVudHMiLCJtYW5hZ2UtcmVhbG0iLCJ2aWV3LWV2ZW50cyIsInZpZXctdXNlcnMiLCJ2aWV3LWNsaWVudHMiLCJtYW5hZ2UtYXV0aG9yaXphdGlvbiIsIm1hbmFnZS1jbGllbnRzIl19LCJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50Iiwidmlldy1wcm9maWxlIl19fX0.Ygp9BPw_Y5tYZc0jKpaFX1Tclupf1y9LpmhQxfH-GcoLBnqJcO8aiLxWDXb5d1o8ism649GlPmWv_RIPWMtBhoFBQITsY6lKhJadcjAxtT-y9IigidcdyMeIUH6igx5seVxhRlr_-qAumhyHDWgqOjbzvej-d_ImiZpBqRTnQutAsCTkwAwxKd8zN8eoYKY4rw72tPDDp9tQ0YzxvvDHHjcC0-F-8tqs5wM0vVQDMzJflV9QmrFqReOqPD4Cb94pEDBd514s9AcgNb79dNueKcSMt3Sl7NnZ6TaFlg_sq6x2L3g9-79hTCgBp58tvQ8EcSrD5jOuLAZAvJ8DPK9cog","token_type":"bearer","id_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJqS3dodmEzSXIyQmt2bEw5MjZudUZsTU9ZcUFEUWpMeGliMXYzRV"
2016-10-24 17:00:41 DEBUG wire:86 -  << "ZkOUswIn0.eyJqdGkiOiI1OGQ1ZjM3NC1hOWIwLTQyNzUtOTRlZi1lODBjYTUxNDIyYzAiLCJleHAiOjE0NzczMzkzMDEsIm5iZiI6MCwiaWF0IjoxNDc3MzM5MjQxLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwODEvYXV0aC9yZWFsbXMvbWFzdGVyIiwiYXVkIjoiY2xvYWsiLCJzdWIiOiI2MjQwNzZjZS1jMGVmLTRhMjItYTg5OC02ZTAwMjU3MzhiMTYiLCJ0eXAiOiJJRCIsImF6cCI6ImNsb2FrIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiY2IxMTQwNzctOTNhZi00Mzk1LTg2ZGUtODgwN2RlNzg5YTdmIiwiYWNyIjoiMSIsIm5hbWUiOiIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhZG1pbiJ9.R0SrLyYRYMU6F0pHxPTxC0FJRKeh-g1XwnXaf1lc5kGaldPaPGenHj6ZSSktf5m18_mzkRCZ6W52E3sNXIbnENlCVn_zJVk3N_4A7rgi-gYitx0YwhFbE-aHnlJWIrGy77EunA1hvRlNvesbFjaM-eR2qytPA6WQKeq6xpkuoEpVo5pdncCiSUdiTWE7Qm209FZ4lXIk9dmhqUWX5BknufCERQpIT_JosfFFChngXFqQ_yvP1QSSJlWAe8nhN3Uej53aXSqrVfDuk9KrrpkCgzfKEp4kE-T6VUlwzHDzLveEUnZQimBkAkZ-H3O__HbFPTmV29hApJR32DRVS-KURQ","not-before-policy":0,"session_state":"cb114077-93af-4395-86de-8807de789a7f"}"
2016-10-24 17:00:41 DEBUG PoolingClientConnectionManager:262 - Connection [id: 0][route: {}->http://localhost:8081] can be kept alive indefinitely
2016-10-24 17:00:41 DEBUG PoolingClientConnectionManager:269 - Connection released: [id: 0][route: {}->http://localhost:8081][total kept alive: 1; route allocated: 1 of 10; total allocated: 1 of 10]
javax.ws.rs.client.ResponseProcessingException: javax.ws.rs.ProcessingException: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "access_token" (Class org.keycloak.representations.AccessTokenResponse), not marked as ignorable
 at [Source: org.apache.http.conn.EofSensorInputStream@77ef46fb; line: 1, column: 18] (through reference chain: org.keycloak.representations.AccessTokenResponse["access_token"])
    at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:141)
    at org.jboss.resteasy.client.jaxrs.internal.proxy.extractors.BodyEntityExtractor.extractEntity(BodyEntityExtractor.java:60)
    at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:104)
    at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:76)
    at com.sun.proxy.$Proxy20.grantToken(Unknown Source)
    at org.keycloak.admin.client.token.TokenManager.grantToken(TokenManager.java:89)
    at org.keycloak.admin.client.token.TokenManager.getAccessToken(TokenManager.java:69)
    at org.keycloak.admin.client.token.TokenManager.getAccessTokenString(TokenManager.java:64)
    at org.keycloak.admin.client.resource.BearerAuthFilter.filter(BearerAuthFilter.java:52)
    at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.invoke(ClientInvocation.java:413)
    at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:102)
    at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:76)
    at com.sun.proxy.$Proxy28.count(Unknown Source)
    at com.mkyong.rest.client.RESTEasyClientKeycloak.main(RESTEasyClientKeycloak.java:30)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Caused by: javax.ws.rs.ProcessingException: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "access_token" (Class org.keycloak.representations.AccessTokenResponse), not marked as ignorable
 at [Source: org.apache.http.conn.EofSensorInputStream@77ef46fb; line: 1, column: 18] (through reference chain: org.keycloak.representations.AccessTokenResponse["access_token"])
    at org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readFrom(ClientResponse.java:285)
    at org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readEntity(ClientResponse.java:181)
    at org.jboss.resteasy.specimpl.BuiltResponse.readEntity(BuiltResponse.java:213)
    at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:105)
    ... 18 more
Caused by: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "access_token" (Class org.keycloak.representations.AccessTokenResponse), not marked as ignorable
 at [Source: org.apache.http.conn.EofSensorInputStream@77ef46fb; line: 1, column: 18] (through reference chain: org.keycloak.representations.AccessTokenResponse["access_token"])
    at org.codehaus.jackson.map.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:53)
    at org.codehaus.jackson.map.deser.StdDeserializationContext.unknownFieldException(StdDeserializationContext.java:267)
    at org.codehaus.jackson.map.deser.std.StdDeserializer.reportUnknownProperty(StdDeserializer.java:673)
    at org.codehaus.jackson.map.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:659)
    at org.codehaus.jackson.map.deser.BeanDeserializer.handleUnknownProperty(BeanDeserializer.java:1365)
    at org.codehaus.jackson.map.deser.BeanDeserializer._handleUnknown(BeanDeserializer.java:725)
    at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:703)
    at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580)
    at org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2704)
    at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1315)
    at org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:419)
    at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.readFrom(AbstractReaderInterceptorContext.java:61)
    at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:53)
    at org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor.aroundReadFrom(GZIPDecodingInterceptor.java:59)
    at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:55)
    at org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readFrom(ClientResponse.java:251)
    ... 21 more

Process finished with exit code 0

我正在寻找其他解决方案,但是在&#34; resteasy-jackson-provider&#34;上发生了一些错误,但我不知道这是不是问题。在一些例子中,人们建议改变&#34; resteasy-jackson-provider&#34;到&#34; resteasy-jackson2-provider&#34;,并出现同样的问题。

这是我的代码:

public class RESTEasyClientKeycloak {

    public static void main(String[] args) {
        try {

            Keycloak kc = KeycloakBuilder.builder() //
                    .serverUrl("http://localhost:8081/auth") //
                    .realm("master")//
                    .username("admin") //
                    .password("admin") //
                    .clientId("cloak") //
                    .resteasyClient(new ResteasyClientBuilder().connectionPoolSize(10).build()) //
                    .build();

            CredentialRepresentation credential = new CredentialRepresentation();
            credential.setType(CredentialRepresentation.PASSWORD);
            credential.setValue("test123");
            credential.setTemporary(false);
            UserRepresentation user = new UserRepresentation();
            user.setUsername("testuser");
            user.setFirstName("Test");
            user.setLastName("User");
            user.setCredentials(asList(credential));
            user.setEnabled(true);
            user.setRealmRoles(asList("admin"));
            // Create testuser
            Response result = kc.realm("master").users().create(user);
            if (result.getStatus() != 201) {
                System.err.println("Couldn't create user.");
                System.exit(0);
            }
            System.out.println("Testuser created.... verify in keycloak!");
            System.out.println("Press any key...");
            System.in.read();
            // Delete testuser
            String locationHeader = result.getHeaderString("Location");
            String userId = locationHeader.replaceAll(".*/(.*)$", "$1");
            kc.realm("master").users().get(userId).remove();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

这是我的pom.xml

<dependencies>
    <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-admin-client</artifactId>
        <version>2.2.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>3.0.19.Final</version>
    </dependency>
    <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-core</artifactId>
        <version>1.9.2.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson-provider</artifactId>
        <version>3.0.19.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-client</artifactId>
        <version>3.0.19.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>jaxrs-api</artifactId>
        <version>3.0.12.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson-provider</artifactId>
        <version>3.0.19.Final</version>
    </dependency>
</dependencies>

我想知道如何解决它?谢谢!

1 个答案:

答案 0 :(得分:0)

这是我的工作配置:

依赖关系: compile("org.jboss.resteasy:resteasy-client:3.0.19.Final") compile("org.jboss.resteasy:resteasy-jackson2-provider:3.0.19.Final") compile("org.jboss.resteasy:resteasy-jettison-provider:3.0.19.Final") compile("org.keycloak:keycloak-admin-client:2.3.0.CR1")

创建用户:

public KeycloakCreateDto createUser(String username, String password) {
    KeycloakCreateDto result = new KeycloakCreateDto();
    UserRepresentation user = new UserRepresentation();
    user.setUsername(username);
    user.setEnabled(true);
    Response response = null;
    try {
        // create user
        response = keycloak.realm(keycloakConfig.getRealm()).users().create(user);

        result.setResponseStatus(HttpStatus.valueOf(response.getStatus()));
        if (response.getStatus() == HttpStatus.CREATED.value()) {

            // Retrieve created user id
            String path = response.getLocation().getPath();
            String id = path.substring(path.lastIndexOf('/') + 1);
            result.setKeycloakId(id);

            // Set password
            CredentialRepresentation credentials = new CredentialRepresentation();
            credentials.setType(CredentialRepresentation.PASSWORD);
            credentials.setValue(password);
            credentials.setTemporary(false);
            keycloak.realm(keycloakConfig.getRealm()).users().get(id).resetPassword(credentials);
            // Add role
            RoleRepresentation role =
                    keycloak.realm(keycloakConfig.getRealm()).roles().get("USER").toRepresentation();
            keycloak.realm(keycloakConfig.getRealm()).users().get(id).roles().realmLevel().add(singletonList(role));

        }
    } finally {
        // Remember to close the response
        if (response != null) {
            response.close();
        }
        return result;

    }
}

其中KeycloakCreateDto是一个简单的POJO:

public class KeycloakCreateDto {
  String keycloakId;
  HttpStatus responseStatus;
}