Неудовлетворенная зависимость Руководитель

Я пытаюсь реализовать 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 ответа

Решение

Это ошибка в текущей интеграции resteasy / CDI, поскольку мы не предоставляем значение по умолчанию, основанное на JAX-RS SecurityContext. Расширение quarkus-smallrye-jwt предоставляет PrincipalProducer для переопределения по умолчанию, поскольку оно устанавливает принципал, который является подынтерфейсом java.security.Principal. Текущий обходной путь будет заключаться в обеспечении вашего собственного основного производителя.

Для этого есть сообщение об ошибке: https://github.com/quarkusio/quarkus/issues/2528

Пожалуйста, проверьте свой Манифест Android, это обычно означает, что вы используете услугу, не объявленную.

Перейти к манифесту и добавить

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

Надеюсь, что решает проблему кодер

Другие вопросы по тегам