java - 不满足的依赖主体
问题描述
我正在尝试为授权/身份验证实现 quarkus 扩展。我以现有的quarkus-smallrye-jwt-abx
-extension 为例。一切似乎都很好,除了我不能注入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
-extension 中,有一个PrincipalProducer
,它似乎产生了Principal
. 这真的有必要吗?这不是安全子系统本身提供的吗?它还提供SecurityContext
;为什么不应该提供Principal
?
解决方案
这是当前 resteasy / CDI 集成中的一个错误,因为我们没有提供基于 JAX-RS SecurityContext 的默认值。quarkus-smallrye-jwt 扩展提供了一个 PrincipalProducer 来覆盖默认值,因为它安装了一个作为 java.security.Principal 子接口的 Principal。当前的解决方法是提供您自己的主要生产者。
推荐阅读
- mysql - 如何根据多个值更新列
- amazon-web-services - aws pinpoint update-apns-sandbox-channel 命令导致:缺少凭据
- python - 为什么 CockroachDB 在大数据输入时可能会关闭连接?
- visual-c++ - 如何对 C++/WinRT 组件进行单元测试?最好有代码覆盖率
- twilio - Twilio 函数 realTimeStatistics 不是函数
- android - ':app:transformDexArchiveWithExternalLibsDexMergerForDebug' 在颤振中添加 firebase auth 插件后出错
- php - SQLSTATE[HY000] [1045] laravel 中的用户拒绝访问
- elasticsearch - 如何编写 Elasticsearch DSL 多字段多词查询?
- r - 添加关系(外键)失败
- android - 使用 MediaRecorder 的前置摄像头录制工作不顺畅