Keycloak 注入AuthzClient时出错
在quarkus 1.13中注入AuthzClient时发生错误Keycloak 注入AuthzClient时出错,keycloak,quarkus,Keycloak,Quarkus,在quarkus 1.13中注入AuthzClient时发生错误 @Inject AuthzClient authzClient; 如果不可能,我如何检查用户是否具有访问令牌的特定权限 谢谢检查权限的最简单方法是使用指南中解释的安全注释,或通过@context SecurityContext ctx在安全上下文中添加安全注释 如果您想访问该令牌,假设您使用的是授权代码流,则可以通过@inject JwtToken JwtToken注入JWT令牌,更多详细信息请参见指南 如果你“在使用KeyCl
@Inject
AuthzClient authzClient;
如果不可能,我如何检查用户是否具有访问令牌的特定权限
谢谢检查权限的最简单方法是使用指南中解释的安全注释,或通过
@context SecurityContext ctx
在安全上下文中添加安全注释
如果您想访问该令牌,假设您使用的是授权代码流,则可以通过@inject JwtToken JwtToken
注入JWT令牌,更多详细信息请参见指南
如果你“在使用KeyClock时,您还可以注入
io.quarkus.security.identity.SecurityIdentity
,但正如@Ladicek所说,您不应该直接使用内部KeyClock类,请参阅指南。我不是quarkus安全方面的专家,但我非常确定您不应该手动使用KeyClopeAuthzClient
。相反,请使用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)