Weird CDIUI bug with Vaadin 8.3 and WildFly 11 Elytron LDAP authentication

Hello. We are using Vaadin 8.3.2, CDIUI, and WildFly 11 with Elytron authentication. When we try and use an LDAP realm to login to the UI, instead of a DB realm, we get an exception when selecting a view from the main page (see below). This exception does not happen with the DB realms. We are using Vaadin JaasAccessControl to tie into the WildFly authentication mechanism. We have no idea if this is a Vaadin issue or a WildFly/Elytron issue. The ClassNotFound exception at the end of the stack trace also makes zero sense to us. Any suggestions appreciated!

13:36:58,235 WARNING [org.apache.deltaspike.core.api.provider.BeanManagerProvider]
(default task-37) When using the BeanManager to retrieve Beans before the Container is started, non-portable behaviour results!
13:36:58,249 SEVERE [com.vaadin.server.DefaultErrorHandler]
(default task-37) : com.vaadin.ui.declarative.DesignException: Unable to load component for design
at com.vaadin.ui.declarative.Design$DefaultComponentFactory.resolveComponentClass(Design.java:205)
at com.vaadin.ui.declarative.Design$DefaultComponentFactory.createComponent(Design.java:158)
at com.vaadin.ui.declarative.Design$DefaultComponentFactory.createComponent(Design.java:167)
at com.vaadin.ui.declarative.Design$DefaultComponentFactory.createComponent(Design.java:167)
at com.vaadin.ui.declarative.Design$DefaultComponentFactory.createComponent(Design.java:167)
at com.vaadin.ui.declarative.Design$DefaultComponentMapper.tagToComponent(Design.java:249)
at com.vaadin.ui.declarative.DesignContext.instantiateComponent(DesignContext.java:569)
at com.vaadin.ui.declarative.DesignContext.readDesign(DesignContext.java:505)
at com.vaadin.ui.AbstractOrderedLayout.readDesign(AbstractOrderedLayout.java:471)
at com.vaadin.ui.declarative.DesignContext.readDesign(DesignContext.java:526)
at com.vaadin.ui.declarative.Design.designToComponentTree(Design.java:503)
at com.vaadin.ui.declarative.Design.read(Design.java:613)
at com.certicom.scms.ui.components.ComponentsViewDesign.(ComponentsViewDesign.java:33)
at com.certicom.scms.ui.components.ComponentsView.(ComponentsView.java:44)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.jboss.weld.injection.ConstructorInjectionPoint.newInstance(ConstructorInjectionPoint.java:119)
at org.jboss.weld.injection.ConstructorInjectionPoint.invokeAroundConstructCallbacks(ConstructorInjectionPoint.java:92)
at org.jboss.weld.injection.ConstructorInjectionPoint.newInstance(ConstructorInjectionPoint.java:78)
at org.jboss.weld.injection.producer.AbstractInstantiator.newInstance(AbstractInstantiator.java:28)
at org.jboss.weld.injection.producer.BasicInjectionTarget.produce(BasicInjectionTarget.java:112)
at org.jboss.weld.injection.producer.BeanInjectionTarget.produce(BeanInjectionTarget.java:180)
at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:158)
at org.apache.deltaspike.core.util.context.ContextualStorage.createContextualInstance(ContextualStorage.java:131)
at org.apache.deltaspike.core.util.context.AbstractContext.get(AbstractContext.java:129)
at com.vaadin.cdi.internal.ContextWrapper.get(ContextWrapper.java:51)
at org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy.get(ContextualInstanceStrategy.java:100)
at org.jboss.weld.bean.ContextualInstance.get(ContextualInstance.java:50)
at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:758)
at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:781)
at org.jboss.weld.util.ForwardingBeanManager.getReference(ForwardingBeanManager.java:61)
at org.jboss.weld.bean.builtin.BeanManagerProxy.getReference(BeanManagerProxy.java:85)
at org.apache.deltaspike.core.api.provider.BeanProvider.getContextualReference(BeanProvider.java:449)
at org.apache.deltaspike.core.api.provider.BeanProvider.getContextualReference(BeanProvider.java:242)
at org.apache.deltaspike.core.api.provider.BeanProvider.getContextualReference(BeanProvider.java:236)
at com.vaadin.cdi.internal.ViewContextualStorageManager.prepareChange(ViewContextualStorageManager.java:71)
at com.vaadin.cdi.internal.ViewContextualStorageManager$Proxy$_$$_WeldClientProxy.prepareChange(Unknown Source)
at com.vaadin.cdi.CDIViewProvider.getView(CDIViewProvider.java:226)
at com.vaadin.navigator.Navigator.navigateTo(Navigator.java:652)
at com.certicom.scms.ui.screens.DashboardScreen$3.buttonClick(DashboardScreen.java:139)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:499)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:273)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:237)
at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1014)
at com.vaadin.ui.Button.fireClick(Button.java:384)
at com.vaadin.ui.Button$1.click(Button.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:155)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:116)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:445)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:410)
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:274)
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90)
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1601)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:445)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
at io.undertow.websockets.jsr.JsrWebSocketFilter.doFilter(JsrWebSocketFilter.java:130)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.lambda$handleRequest$1(ElytronRunAsHandler.java:68)
at org.wildfly.security.auth.server.FlexibleIdentityAssociation.runAsFunctionEx(FlexibleIdentityAssociation.java:101)
at org.wildfly.security.auth.server.Scoped.runAsFunctionEx(Scoped.java:150)
at org.wildfly.security.auth.server.Scoped.runAs(Scoped.java:62)
at org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.handleRequest(ElytronRunAsHandler.java:67)
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:53)
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:59)
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:326)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:812)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com$vaadin$ui$VerticalLayout from [Module “org.wildfly.security.elytron-private” from local module loader @7cdbc5d3 (finder: local module finder @3aa9e816 (roots: C:\Users\tstiemerling\Work\opt\wildfly-11.0.0.Final\modules,C:\Users\tstiemerling\Work\opt\wildfly-11.0.0.Final\modules\system\layers\base))]

at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:412)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:400)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at com.vaadin.ui.declarative.Design$DefaultComponentFactory.resolveComponentClass(Design.java:200)
... 110 more

Hi Tom!
Taking the exception into account, it seems that somehow it’s unable to load a design, because it cannot find the class named “com$vaadin$ui$VerticalLayout” … and that design is for a component that is being injected somewhere.
One thing you could try, is to locate that component and try to change it so it won’t load a design, instead of that try to create something easy with just JAVA API and see if it works.
That could maybe give us a hint of what is going on in there.
Regards.

Hi, yes the exception makes no sense given the context. The same thing works perfectly fine if we use DB authentication. Part of the problem is that the exception does not really give any idea of what the issue really is.

This issue has been resolved by moving to WildFly12.

Faced a similar problem using Thorntail 2.2.0.Final and Vaadin 8.5.2, solved it by enabling “loadOnStartup” for the Vaadin servlet.