Keycloak 注入AuthzClient时出错

Keycloak 注入AuthzClient时出错,keycloak,quarkus,Keycloak,Quarkus,在quarkus 1.13中注入AuthzClient时发生错误 @Inject AuthzClient authzClient; 如果不可能,我如何检查用户是否具有访问令牌的特定权限 谢谢检查权限的最简单方法是使用指南中解释的安全注释,或通过@context SecurityContext ctx在安全上下文中添加安全注释 如果您想访问该令牌,假设您使用的是授权代码流,则可以通过@inject JwtToken JwtToken注入JWT令牌,更多详细信息请参见指南 如果你“在使用KeyCl

在quarkus 1.13中注入AuthzClient时发生错误

@Inject
AuthzClient authzClient;
如果不可能,我如何检查用户是否具有访问令牌的特定权限


谢谢

检查权限的最简单方法是使用指南中解释的安全注释,或通过
@context SecurityContext ctx
在安全上下文中添加安全注释

如果您想访问该令牌,假设您使用的是授权代码流,则可以通过
@inject JwtToken JwtToken
注入JWT令牌,更多详细信息请参见指南


如果你“在使用KeyClock时,您还可以注入
io.quarkus.security.identity.SecurityIdentity
,但正如@Ladicek所说,您不应该直接使用内部KeyClock类,请参阅指南。

我不是quarkus安全方面的专家,但我非常确定您不应该手动使用KeyClope
AuthzClient
。相反,请使用Quarkus安全扩展之一:
Caused by: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type org.keycloak.authorization.client.AuthzClient and qualifiers [@Default]
        - java member: io.github.jithset.services.KeycloakServices#authzClient
        - declared on CLASS bean [types=[io.github.jithset.services.KeycloakServices, java.lang.Object], qualifiers=[@Default, @Any], target=io.github.jithset.services.KeycloakServices]
        at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:1081)
        at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:255)
        at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:129)
        at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:419)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:920)
        at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2415)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1452)
        at java.base/java.lang.Thread.run(Thread.java:829)
        at org.jboss.threads.JBossThread.run(JBossThread.java:501)
Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type org.keycloak.authorization.client.AuthzClient and qualifiers [@Default]
        - java member: io.github.jithset.services.KeycloakServices#authzClient
        - declared on CLASS bean [types=[io.github.jithset.services.KeycloakServices, java.lang.Object], qualifiers=[@Default, @Any], target=io.github.jithset.services.KeycloakServices]
        at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:484)
        at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:378)
        at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:247)