1

我正在尝试为授权/身份验证实现 quarkus 扩展。我以现有的quarkus-smallrye-jwt-abx-extension 为例。一切似乎都很好,除了我不能注入Principal

    @Inject
    private Principal principal;

我越来越

类型 java.security.Principal 和限定符 [@Default] 的不满足依赖性

注入SecurityContextPrincipal从中获取工作正常:

    @Context
    private SecurityContext sec;

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

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

4

2 回答 2

1

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

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

于 2019-05-20T16:19:06.853 回答
-2

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

转到清单并添加

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

希望解决编码器的问题

于 2019-05-20T13:17:46.153 回答