Java 集成 keycloak-admin-client 清空用户缓存

当业务系统集成keycloak之后,发现修改密码之后不生效,需要手动在keycloak中清除用户缓存,所以想到通过调用 keycloak-admin-client 来清楚缓存

<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-admin-client</artifactId>
    <version>9.0.3</version>
</dependency>

只添加 keycloak-admin-client 在调用方法的时候会报错

java.lang.NoSuchMethodError: javax.ws.rs.core.UriBuilder.resolveTemplates(Ljava/util/Map;)Ljavax/ws/rs/core/UriBuilder;
	at org.jboss.resteasy.client.jaxrs.internal.ClientWebTarget.resolveTemplates(ClientWebTarget.java:182) ~[resteasy-client-3.9.1.Final.jar:3.9.1.Final]
	at org.jboss.resteasy.client.jaxrs.internal.proxy.SubResourceInvoker.invoke(SubResourceInvoker.java:65) ~[resteasy-client-3.9.1.Final.jar:3.9.1.Final]
	at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:76) ~[resteasy-client-3.9.1.Final.jar:3.9.1.Final]
	at com.sun.proxy.$Proxy188.realm(Unknown Source) ~[na:na]
	at org.keycloak.admin.client.Keycloak.realm(Keycloak.java:114) ~[keycloak-admin-client-9.0.3.jar:9.0.3]
	....省略其他

所以需要添加 javax.ws.r s的jar包,用来替换 keycloak-admin-client 中 javax.ws.rs

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>jsr311-api</artifactId>
    <version>1.1-ea</version>
</dependency>
Keycloak keycloak = KeycloakBuilder.builder()
                .serverUrl("http://localhost:8080/auth")
                .username("admin")
                .password("123456")
                .clientId("admin-cli")
                .realm("master")
                .build();
        keycloak.realm("test").clearUserCache();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值