quarkiverse / quarkus-kerberos

Quarkus Kerberos extension
Apache License 2.0
4 stars 3 forks source link

UsernamePasswordCallbackHandler defined in the documentation does not work #120

Open omasseau opened 4 weeks ago

omasseau commented 4 weeks ago

In this documentation https://docs.quarkiverse.io/quarkus-kerberos/dev/index.html a UsernamePasswordCallbackHandler is defined. I copied the class in my project but it does not work. I get this error when starting the quarkus application (version 3.8.5) :

[1] Unsatisfied dependency for type java.lang.String and qualifiers [@Default]
    - injection target: parameter 'username' of org.acme.UsernamePasswordCallbackHandler constructor
    - declared on CLASS bean [types=[org.acme.UsernamePasswordCallbackHandler, javax.security.auth.callback.CallbackHandler, java.lang.Object, io.quarkiverse.kerberos.KerberosCallbackHandler], qualifiers=[@Default, @Any], target=org.acme.UsernamePasswordCallbackHandler]
    The following beans match by type, but none has matching qualifiers:
    - PRODUCER METHOD bean [types=[java.io.Serializable, java.lang.String, java.lang.CharSequence, java.lang.constant.ConstantDesc, java.lang.Object, java.lang.constant.Constable, java.lang.Comparable<java.lang.String>], qualifiers=[@Any, @ConfigProperty], target=java.lang.String produceStringConfigProperty(jakarta.enterprise.inject.spi.InjectionPoint ip), declaringBean=io.smallrye.config.inject.ConfigProducer]

[2] Unsatisfied dependency for type char[] and qualifiers [@Default]
    - injection target: parameter 'password' of org.acme.UsernamePasswordCallbackHandler constructor
    - declared on CLASS bean [types=[org.acme.UsernamePasswordCallbackHandler, javax.security.auth.callback.CallbackHandler, java.lang.Object, io.quarkiverse.kerberos.KerberosCallbackHandler], qualifiers=[@Default, @Any], target=org.acme.UsernamePasswordCallbackHandler]
    at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:1516)
    at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:320)
    at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:160)
    at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:488)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:849)
    at io.quarkus.builder.BuildContext.run(BuildContext.java:256)
    at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
    at java.base/java.lang.Thread.run(Thread.java:833)
    at org.jboss.threads.JBossThread.run(JBossThread.java:501)
    Suppressed: jakarta.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type java.lang.String and qualifiers [@Default]
    - injection target: parameter 'username' of org.acme.UsernamePasswordCallbackHandler constructor
    - declared on CLASS bean [types=[org.acme.UsernamePasswordCallbackHandler, javax.security.auth.callback.CallbackHandler, java.lang.Object, io.quarkiverse.kerberos.KerberosCallbackHandler], qualifiers=[@Default, @Any], target=org.acme.UsernamePasswordCallbackHandler]
    The following beans match by type, but none has matching qualifiers:
    - PRODUCER METHOD bean [types=[java.io.Serializable, java.lang.String, java.lang.CharSequence, java.lang.constant.ConstantDesc, java.lang.Object, java.lang.constant.Constable, java.lang.Comparable<java.lang.String>], qualifiers=[@Any, @ConfigProperty], target=java.lang.String produceStringConfigProperty(jakarta.enterprise.inject.spi.InjectionPoint ip), declaringBean=io.smallrye.config.inject.ConfigProducer]

        at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:518)
        at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:638)
        at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:308)
        ... 13 more
    Suppressed: jakarta.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type char[] and qualifiers [@Default]
    - injection target: parameter 'password' of org.acme.UsernamePasswordCallbackHandler constructor
    - declared on CLASS bean [types=[org.acme.UsernamePasswordCallbackHandler, javax.security.auth.callback.CallbackHandler, java.lang.Object, io.quarkiverse.kerberos.KerberosCallbackHandler], qualifiers=[@Default, @Any], target=org.acme.UsernamePasswordCallbackHandler]
        at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:518)
        at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:638)
        at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:308)
        ... 13 more