注入的 Bean 在我的 quarkus 扩展中为空

Injected Bean is null in my quarkus extension

我有一个非常简单的 quarkus 扩展,它定义了一个 ContainerRequestFilter 来过滤身份验证并将数据添加到自定义 AuthenticationContext。

这是我的代码:

runtime/AuthenticationContext.java

public interface AuthenticationContext {
  User getCurrentUser();
}

runtime/AuthenticationContextImpl.java

@RequestScoped
public class AuthenticationContextImpl implements AuthenticationContext {
    private User user;

    @Override
    public User getCurrentUser() {
        return user;
    }

    public void setCurrentUser(User user) {
        this.user = user;
    }
}

runtime/MyFilter.java

@ApplicationScoped
public class MyFilter implements ContainerRequestFilter  {

  @Inject
  AuthenticationContextImpl authCtx;

  @Override
  public void filter(ContainerRequestContext requestContext){

    // doing some stuff like retrieving the user from the request Context
    // ...

    authCtx.setCurrentUser(retrievedUser)
    
  }
}

deployment/MyProcessor.java:

class MyProcessor {

  //... Some stuff

  @BuildStep
  AdditionalBeanBuildItem createContext() {
      return new AdditionalBeanBuildItem(AuthenticationContextImpl.class);
  }
}

我在 authCtx.setCurrentUser(retrievedUser) 调用中出现空指针异常(从未注入 authCtx)

我在这里错过了什么?

谢谢

索引扩展的 runtime 模块修复了这个问题。 如

中所述,有多种方法可以做到这一点