OpenIDAuthenticationDefinition: How to add extraParameters with EL

We are using Payara Enterprise Server 5.49.0
I want to use this OpenIDAuthenticationDefinition with EL

@OpenIdAuthenticationDefinition(
providerURI=“#{openIDConfigBean.providerURI}”,
clientId=“#{openIDConfigBean.clientId}”,
clientSecret=“#{openIDConfigBean.clientSecret}”,
redirectURI=“#{openIDConfigBean.redirectURI}”,
extraParameters=“#{openIDConfigBean.extraParameters}”
)

All is working fine without the extraParameters in the definition, but when I add the extraParameters, I get this error:

[2023-12-29T15:30:25.618+0100] [Payara 5.49.0] [SEVERE] [NCLS-CORE-00026] [javax.enterprise.system.core] [tid: _ThreadID=24 _ThreadName=RunLevelControllerThread-1703860209471] [timeMillis: 1703860225618] [levelValue: 1000] [[
Exception during lifecycle processing
org.glassfish.deployment.common.DeploymentException: CDI definition failure:OpenIdAuthenticationDefinition.extraParameters() value ‘#{openIDConfigBean.extraParameters}’ is not of the format key=value – OpenIdAuthenticationDefinition.extraParameters() value ‘#{openIDConfigBean.extraParameters}’ is not of the format
key=value
at org.jboss.weld.bootstrap.events.ContainerLifecycleEvents.fireProcessAnnotatedType(ContainerLifecycleEvents.java:189)
at org.jboss.weld.bootstrap.events.ContainerLifecycleEvents.fireProcessAnnotatedType(ContainerLifecycleEvents.java:173)
at org.jboss.weld.bootstrap.BeanDeployer.processAnnotatedTypes(BeanDeployer.java:166)
at org.jboss.weld.bootstrap.BeanDeployment.createTypes(BeanDeployment.java:219)
at org.jboss.weld.bootstrap.WeldStartup.startInitialization(WeldStartup.java:426)
at org.jboss.weld.bootstrap.WeldBootstrap.startInitialization(WeldBootstrap.java:79)
at org.glassfish.weld.WeldDeployer.processApplicationLoaded(WeldDeployer.java:520)
at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:434)
at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:346)
at com.sun.enterprise.v3.server.ApplicationLifecycle.prepare(ApplicationLifecycle.java:576)
at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:427)
at com.sun.enterprise.v3.server.ApplicationLoaderService.postConstruct(ApplicationLoaderService.java:259)
at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:303)
at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:351)
at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:463)
at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:281)
at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:65)
at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2102)
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:93)
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:67)
at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1213)
at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1144)
at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$UpOneLevel.run(CurrentTaskFuture.java:762)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
]]

Any suggestions, how to add extraParameters with EL?
Thanks for any help!

Regards

Georg

Hello Georg,
I was recently updating the behavior of this annotation (to be more configurable via EL) and found your question. These changes will be included in the nearest release.
But there is existing solution you can try now: Look at OpenIdAuthenticationDefinition.OPENID_MP_EXTRA_PARAMS_RAW
If you specify this MP Config value, it will replace the extraParameters in the annotation. Just look carefully at the format, it is URL-encoded.
Hope it helps
Petr