我正在尝试使用Java客户端调用KeyCloak Admin API.无论我尝试哪种操作-创建领域,创建用户帐户等-我都会收到以下异常:

javax.ws.rs.ProcessingException: java.lang.NullPointerException at

org.keycloak.admin.client.resource.BearerAuthFilter.filter(BearerAuthFilter.java:53)

at

org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.filterRequest(ClientInvocation.java:573)

at

org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.invoke(ClientInvocation.java:438)

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.$Proxy214.create(Unknown Source)

我的KeyCloak代码看起来像这样…

Keycloak kc = KeycloakBuilder.builder().realm("master").clientId("admin-cli").username("admin") .password("password").serverUrl("http://localhost:8880/auth")

.resteasyClient(new ResteasyClientBuilder().connectionPoolSize(10).build()).build();

RealmRepresentation realm = new RealmRepresentation();

realm.setDisplayName(displayName);

realm.setDisplayNameHtml(displayName);

realm.setRealm(realmName);

realm.setEnabled(enabled);

kc.realms().create(realm);

在这一点上,我看到了异常.您对这里可能出什么问题有任何想法吗?我看到针对admin API的所有操作上的异常.我知道数据可用,因为我可以对admin API进行curl调用,并且工作正常.

curl -vki -H "Authorization: Bearer XXXXX" http://localhost:8880/auth/admin/realms/master

当我打电话时,我看到了预期的结果.使用Java客户端时,我只会失败.知道这里发生了什么吗?

更新

我增加了KeyCloak实例上的调试日志.尝试创建安全领域后,我看到以下消息. (注意:无论执行什么操作,我都会看到类似的错误)

14:36:16,553 DEBUG [org.keycloak.transaction.JtaTransactionWrapper] (default task-24) new JtaTransactionWrapper

14:36:16,553 DEBUG [org.keycloak.transaction.JtaTransactionWrapper] (default task-24) was existing? false

14:36:16,557 DEBUG [org.keycloak.authentication.AuthenticationProcessor] (default task-24) AUTHENTICATE CLIENT

14:36:16,557 DEBUG [org.keycloak.authentication.ClientAuthenticationFlow] (default task-24) client authenticator: client-secret

14:36:16,557 DEBUG [org.keycloak.authentication.ClientAuthenticationFlow] (default task-24) client authenticator SUCCESS: client-secret

14:36:16,557 DEBUG [org.keycloak.authentication.ClientAuthenticationFlow] (default task-24) Client admin-cli authenticated by client-secret

14:36:16,558 DEBUG [org.keycloak.authentication.AuthenticationProcessor] (default task-24) AUTHENTICATE ONLY

14:36:16,559 DEBUG [org.keycloak.authentication.DefaultAuthenticationFlow] (default task-24) processFlow

14:36:16,559 DEBUG [org.keycloak.authentication.DefaultAuthenticationFlow] (default task-24) check execution: direct-grant-validate-username requirement: REQUIRED

14:36:16,559 DEBUG [org.keycloak.authentication.DefaultAuthenticationFlow] (default task-24) authenticator: direct-grant-validate-username

14:36:16,560 DEBUG [org.keycloak.authentication.DefaultAuthenticationFlow] (default task-24) invoke authenticator.authenticate: direct-grant-validate-username

14:36:16,560 DEBUG [org.keycloak.authentication.DefaultAuthenticationFlow] (default task-24) authenticator SUCCESS: direct-grant-validate-username

14:36:16,561 DEBUG [org.keycloak.authentication.DefaultAuthenticationFlow] (default task-24) check execution: direct-grant-validate-password requirement: REQUIRED

14:36:16,561 DEBUG [org.keycloak.authentication.DefaultAuthenticationFlow] (default task-24) authenticator: direct-grant-validate-password

14:36:16,561 DEBUG [org.keycloak.authentication.DefaultAuthenticationFlow] (default task-24) invoke authenticator.authenticate: direct-grant-validate-password

14:36:16,658 DEBUG [org.keycloak.authentication.DefaultAuthenticationFlow] (default task-24) authenticator SUCCESS: direct-grant-validate-password

14:36:16,658 DEBUG [org.keycloak.authentication.DefaultAuthenticationFlow] (default task-24) check execution: direct-grant-validate-otp requirement: OPTIONAL

14:36:16,659 DEBUG [org.keycloak.authentication.DefaultAuthenticationFlow] (default task-24) authenticator: direct-grant-validate-otp

14:36:16,659 DEBUG [org.keycloak.authentication.DefaultAuthenticationFlow] (default task-24) invoke authenticator.authenticate: direct-grant-validate-otp

14:36:16,659 DEBUG [org.keycloak.authentication.DefaultAuthenticationFlow] (default task-24) authenticator ATTEMPTED: direct-grant-validate-otp

14:36:16,661 DEBUG [org.keycloak.services.managers.AuthenticationSessionManager] (default task-24) Removing authSession 'df66e278-8ffe-47ab-84d1-36ffe9152021'. Expire restart cookie: true

14:36:16,673 DEBUG [org.keycloak.events] (default task-24) type=LOGIN, realmId=master, clientId=admin-cli, userId=c830af10-3cfd-4ce0-b1aa-83a857a290d7, ipAddress=172.18.0.1, auth_method=openid-connect, token_id=8876c7ad-3ea4-4356-8fc2-f9b50112b952, grant_type=password, refresh_token_type=Refresh, scope='profile email', refresh_token_id=4c2325fc-0bb5-40d9-af55-4985546fd39a, client_auth_method=client-secret, username=kcadmin

14:36:16,673 DEBUG [org.keycloak.transaction.JtaTransactionWrapper] (default task-24) JtaTransactionWrapper commit

14:36:16,676 DEBUG [org.keycloak.transaction.JtaTransactionWrapper] (default task-24) JtaTransactionWrapper end

更新2

似乎此问题与在Java EE容器中运行此代码有关.如果我在独立类中运行完全相同的代码,则可以正常工作.但是,如果我将代码复制并粘贴到servlet并尝试运行它,则会收到NullPointerException.遇到问题时,我正在Wildfly 13上运行代码.通过Arquillian运行集成测试时,我也看到此问题.我的假设是它必须与依赖项有关,但是我对需要更改的内容不知所措.

java apiadmin_java-所有KeyCloak Admin API调用上的NullPointerExc...相关推荐

  1. java查询序列_基于JAVA的苹果序列号查询api调用代码实例

    代码描述:基于JAVA的苹果序列号查询api调用代码实例 关联数据:苹果序列号 接口地址:http://www.juhe.cn/docs/api/id/37 1.[代码][Java]代码 import ...

  2. java的苹果端接口_基于JAVA的苹果序列号查询api调用代码实例

    1.[代码][Java]代码 import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOExce ...

  3. java 随手记 百度影音API调用

    在网页中调用第三方的播放器--------百度影音 在网页中添加以下代码便可调用百度影音 <script type="text/javascript">      va ...

  4. C# 调用ArcGIS server admin api

    一.AGS server admin api 介绍 1.1什么是admin api AGS Server Admin api 官方的称呼是 AGS Server administrator api, ...

  5. java 基础api实现上传,上传文件到7牛云存储的java api一个简单的demo实现

    最近在做一个项目,需要用到云存储,项目用的是七牛云.现在将项目过程中关于调用七牛云平台的java api来上传本地文件到七牛云空间的一个简单的demo展示给大家,希望对同样再用七牛云的童鞋们有所帮助. ...

  6. JAVA开发(后端):微信小程序API调用详细分析及步骤

    关键词:微信登录.统一下单(支付).统一下单通知(回调).统一下单查询.企业付款至零钱.支付查询.获取ACCESS_Token.获取小程序二维码 因为做项目涉及到微信这些接口的调用,尽管看了很多博客, ...

  7. #OIM查错#OIM API调用,报java.net.ConnectException错误

    最近遇到一个问题,是当调用OIM调用API的时候,出现以下错误: Exception in thread "main" javax.security.auth.login.Logi ...

  8. WPF技术触屏上的应用系列(二): 嵌入百度地图、API调用及结合本地数据库在地图上进行自定义标点的实现...

    原文:WPF技术触屏上的应用系列(二): 嵌入百度地图.API调用及结合本地数据库在地图上进行自定义标点的实现 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系 ...

  9. 外汇汇率接口 java_基于JAVA的货币汇率api调用代码实例

    代码描述:基于JAVA的货币汇率api调用代码实例 关联数据:货币汇率 接口地址:http://www.juhe.cn/docs/api/id/23 1.[代码][Java]代码 import jav ...

  10. Redis和nosql简介,api调用;Redis数据功能(String类型的数据处理);List数据结构(及Java调用处理);Hash数据结构;Set数据结构功能;sortedSet(有序集合)数

    1.Redis和nosql简介,api调用 14.1/ nosql介绍 NoSQL:一类新出现的数据库(not only sql),它的特点: 1.  不支持SQL语法 2.  存储结构跟传统关系型数 ...

最新文章

  1. Express2.X迁移至3.X注意事项
  2. Java Web使用数据库连接池
  3. 使用report CFD_CREATE_FIELD创建extension field
  4. 如何在typescript中使用axios来封装一个HttpClient类
  5. jpa 生成uuid的主键_JPA注解主键生成策略-UUID
  6. 微信小程序wss报错:wx.request:fail ssl hand shake error 解决方法
  7. java cookie学习
  8. 蓝桥杯2015年第六届C/C++省赛C组第二题-立方尾不变
  9. 利用卷积自编码器对图片进行降噪
  10. iOS支付知识及调试技巧:【支付流程 预授权 银行卡验证反洗钱敏感信息的脱敏规范】2、安全设计Checklist(短信验证码、图形验证码、密码管理、身份验证、会话安全、敏感信息、接口安全)
  11. Activator 通过SSH解锁屏幕等手势操作
  12. ERROR 2000 (HY000): Unknown MySQL error
  13. 云端部署 vs 本地化部署
  14. 5G NR协议学习--TS38.211主要参数解读
  15. time(),date(),microtime()…
  16. cindy POSA2读书笔记(二)
  17. [Qt]QMainWindow
  18. Ray Casting:光线投射
  19. java app 图标_App 更换应用图标
  20. 【无人机 学习笔记 4】GPS与RTK技术

热门文章

  1. torch.nn到底是什么?
  2. 计算机网络(自我学习)
  3. 4.22 使用裁切命令裁剪图片 [原创Ps教程]
  4. caffe 6中优化方法并附带 对应的solver。prototxt代码
  5. VMware安装中标麒麟Linux_server_x86_ZX64(兆芯版)
  6. Luogu P1725 琪露诺
  7. 设置excel中数据有效性不被复制黏贴破坏
  8. 魔性计时器html,PDD西卡脸抽不断 拜年秀播出倒计时1天
  9. 网站如何实现短信验证码功能?
  10. 三种T检验的详细区分