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();
+    }
 }

Reply via email to