This is an automated email from the ASF dual-hosted git repository. jgallimore pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tomee.git
commit 7f26f045f46700ec99208cb4e16c08a3d9f22486 Author: Jonathan Gallimore <[email protected]> AuthorDate: Thu Jul 9 21:28:00 2020 +0100 Band-aid to prevent the server blowing up on non CDI apps --- .../TomEESecurityServletContainerInitializer.java | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tomee/tomee-security/src/main/java/org/apache/tomee/security/servlet/TomEESecurityServletContainerInitializer.java b/tomee/tomee-security/src/main/java/org/apache/tomee/security/servlet/TomEESecurityServletContainerInitializer.java index 59cba7f..b4bdd41 100644 --- a/tomee/tomee-security/src/main/java/org/apache/tomee/security/servlet/TomEESecurityServletContainerInitializer.java +++ b/tomee/tomee-security/src/main/java/org/apache/tomee/security/servlet/TomEESecurityServletContainerInitializer.java @@ -19,6 +19,7 @@ package org.apache.tomee.security.servlet; import org.apache.tomee.security.cdi.TomEESecurityExtension; import org.apache.tomee.security.provider.TomEESecurityAuthConfigProvider; +import javax.enterprise.inject.spi.BeanManager; import javax.enterprise.inject.spi.CDI; import javax.security.auth.message.config.AuthConfigFactory; import javax.servlet.ServletContainerInitializer; @@ -30,8 +31,21 @@ import java.util.Set; public class TomEESecurityServletContainerInitializer implements ServletContainerInitializer { @Override public void onStartup(final Set<Class<?>> c, final ServletContext ctx) throws ServletException { + BeanManager beanManager; + try { + beanManager = getBeanManager(); + } catch (IllegalStateException e) { + + // CDI not enabled? + return; + } + + if (beanManager == null) { + return; + } + final TomEESecurityExtension securityExtension = - CDI.current().getBeanManager().getExtension(TomEESecurityExtension.class); + beanManager.getExtension(TomEESecurityExtension.class); if (securityExtension.hasAuthenticationMechanisms()) { AuthConfigFactory.getFactory().registerConfigProvider( @@ -41,4 +55,8 @@ public class TomEESecurityServletContainerInitializer implements ServletContaine "TomEE Security JSR-375"); } } + + private BeanManager getBeanManager() throws IllegalStateException { + return CDI.current().getBeanManager(); + } }
