不满意的依赖委托人

时间:2019-05-20 13:08:23

标签: security authentication quarkus

我正在尝试实现用于授权/认证的quarkus扩展。我以现有的quarkus-smallrye-jwt-abx扩展名为例。一切似乎都正常,除了我无法注入Principal

@Inject
private Principal principal;

我要

  

对类型java.security.Principal和限定符[@Default]的不满意的依赖关系

注入SecurityContext并从其中获取Principal可以正常工作:

@Context
private SecurityContext sec;

@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("test")
public String test() {
    return sec.getUserPrincipal().getName();
}

quarkus-smallrye-jwt-abx扩展名中,有一个PrincipalProducer,似乎产生了Principal。这真的有必要吗?不是由安全子系统本身提供的吗?它还提供SecurityContext,为什么不提供Principal

谢谢!

2 个答案:

答案 0 :(得分:0)

这是当前resteasy / CDI集成中的错误,因为我们没有提供基于JAX-RS SecurityContext的默认设置。 quarkus-smallrye-jwt扩展提供了一个PrincipalProducer来覆盖默认值,因为它安装的是Principal,它是java.security.Principal的子接口。当前的解决方法是提供您自己的主要制作人。

有一个错误报告: https://github.com/quarkusio/quarkus/issues/2528

答案 1 :(得分:-1)

请检查您的Android清单,这通常意味着您正在使用未声明的服务。

转到清单并添加

<uses android-permission = "Read External storage..... /> 

希望解决编码问题的人