如何在Spring Boot资源服务器上使用Keycloak授权服务?在Spring Boot资源服务器上使用Keycloak授权服务(资源服务器)
我有一个keycloak中的客户端设置为仅承载方式,并且可以使用来自其文档的信息来保护资源路径。
但是当“授权启用”设置为true为我的承运人唯一的客户端,我已设置资源,策略,权限。
从Keycloak文档https://keycloak.gitbooks.io/documentation/authorization_services/topics/enforcer/keycloak-enforcement-filter.html “你可以,如果你使用的是Keycloak OIDC适配器执行授权决定你的应用程序。 当启用策略实施为您Keycloak应用程序,相应的适配器拦截到您的应用程序的所有请求,并强制执行从服务器获得授权决定。“
在application.properties我设置: keycloak.policy-实施者 - config.enforcement模式=执行
,并得到错误:
java.lang.NoClassDefFoundError: org.keycloak.authorization.client.ClientAuthenticator
我加入依赖
<dependency> <!-- https://issues.jboss.org/browse/KEYCLOAK-3246 -->
<groupId>org.keycloak</groupId>
<artifactId>keycloak-authz-client</artifactId>
<version>3.1.0.Final</version>
</dependency>
但是当尝试访问资源时,会出现如下错误:
Client 'resourceserver-springboot' doesn't have secret available
org.keycloak.authorization.client.util.HttpResponseException: Unexpected response from server: 400/Bad Request
你为什么加入keycloak测试辅助依赖形成的?这与authz无关。无论如何,你可以看看https://github.com/keycloak/keycloak-quickstarts/tree/master/app-authz-springboot –
对不起在我的问题不是keycloak-test-helper错误,而是keycloak-authz-client我会更新问题。 – Melissa
嗨塞巴斯蒂安,它看起来像演示是为Keycloak版本3.2.0.CR1-SNAPSHOT。我正在使用版本3.1.0.Final。我是否可以在3.1.0.Final上运行它,还是需要等待新版本的更改? – Melissa