Spring boot 在Spring Boot(资源服务器)中使用KeyClope授权服务

Spring boot 在Spring Boot(资源服务器)中使用KeyClope授权服务,spring-boot,keycloak,Spring Boot,Keycloak,如何在Spring Boot资源服务器上使用KeyClope授权服务? 我有一个keybeave中的客户机设置为bearer only,可以使用文档中的信息保护资源路径 但当我的仅持卡人客户端的“授权启用”设置为true,并且我有设置资源、策略和权限时,则不会 从KeyClope文档中 “如果您使用的是KeyClope OIDC适配器,则可以强制执行应用程序的授权决策。 当您为KeyClope应用程序启用策略实施时,相应的适配器将截获对应用程序的所有请求,并实施从服务器获得的授权决策。” 在ap

如何在Spring Boot资源服务器上使用KeyClope授权服务?

我有一个keybeave中的客户机设置为bearer only,可以使用文档中的信息保护资源路径

但当我的仅持卡人客户端的“授权启用”设置为true,并且我有设置资源、策略和权限时,则不会

从KeyClope文档中 “如果您使用的是KeyClope OIDC适配器,则可以强制执行应用程序的授权决策。 当您为KeyClope应用程序启用策略实施时,相应的适配器将截获对应用程序的所有请求,并实施从服务器获得的授权决策。”

在application.properties中,我设置: keydove.policy enforcer config.enforcement mode=强制执行

和获取错误:

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>

看起来您忘记在配置中传递密码了:
keydove.credentials.secret=my_secret

  • 将keydepot.json添加到您的资源中(通常是keydeport适配器) 用于配置的keydove.json)

  • 将配置添加到application.properties文件中。 还创建一个bean来解析应用程序的application.properties 钥匙斗篷适配器

    @豆子 打开keydeposeconfigResolver():keydeposecspringbootconfigResolver{ 返回keydepospringbootconfigResolver() }


为什么要添加KeyClope测试助手Dependent C?这与authz无关。无论如何,你们可以看一看我问题中的抱歉错误,不是keydove测试助手,而是keydove authz客户端,我将更新这个问题。嗨,Sebastian,看起来这个演示是针对keydove版本3.2.0.CR1-SNAPSHOT的。我使用的是3.1.0.Final版本。我能在3.1.0.Final上运行这个吗?或者需要等待新版本的更改吗?是的,它应该可以在3.1.Final上运行,只需在pom.xml中添加
keydape authz client
依赖项。我在这里有点晚了。。这个问题解决了吗?如果没有,您可以共享pom.xml和application.properties文件。就连我也犯了这样的错误,我的错误是同时执行boot和spring安全配置。我有是的,然而,即使将其添加到中,我仍然会遇到“org.keydepot.authorization.client.util.HttpResponseException:来自服务器的意外响应:400/错误请求]”这样的错误,我确实知道API在包括keydepot授权服务之前是经过测试的。对纯资源服务器使用keydape authz客户端似乎是错误的。我正忙着完成你发给我的快速入门。乍一看,这似乎是一个客户端web应用程序的示例,而不是资源服务器。资源服务器使用kc authz客户端并没有错。原因是RS应该能够访问一些API以管理资源。此外,在使用UMA时,还有一个用于获取许可证的API。快速入门基本上是一个客户机和一个RS。嗨,塞巴斯蒂安,我已经为3.1.0.Final开发了快速入门。但无法保护我添加到ApplicationController中的JSON响应:'@RequestMapping(value=“/protected/hello”,method=RequestMethod.GET)public Map hello(){return Collections.singletonMap(“message”,“hello”);}',并从pom.xml中删除freemarker依赖项。我还在keydepot中添加了一个资源(/protected/hello/*),premissions&policy设置为/protected/premium/*URL重定向以登录到keydepot,因为jdoe/jdoe我收到了404错误哦,不,404错误是我的错误!ApplicationController是一个控制器,我需要一个用于JSON响应的RestController。好的,我现在要用Auth服务保护JSON端点,问题:1)为什么我仍然需要KeyClope.securityConstraints[0]设置。这是否意味着我的所有用户都必须具有用户角色?我的理解是,所有的身份验证配置现在都可以在KeyClope中完成。我误解了吗?2) 我无法使用keydove将访问类型设置为bearer only。bearer only=true,因为这会导致来自服务器的意外响应:400/来自的错误请求:似乎使用身份验证服务访问类型必须是机密的请帮助我了解这一点。因为我想保护一个纯RS。再次提前感谢
Client 'resourceserver-springboot' doesn't have secret available
org.keycloak.authorization.client.util.HttpResponseException: Unexpected response from server: 400 / Bad Request