]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/core/AuthenticatedApplicationContextInitialization.java
Merge https://www.argeo.org/bugzilla/show_bug.cgi?id=154
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.core / src / main / java / org / argeo / security / core / AuthenticatedApplicationContextInitialization.java
index 7afc3c179d9c6deff2cfae994b4b105e24a46221..97dd6cae037f9798602a64a12844bf5bb924fd3a 100644 (file)
@@ -16,6 +16,8 @@
 package org.argeo.security.core;
 
 import java.beans.PropertyDescriptor;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.springframework.beans.BeansException;
 import org.springframework.beans.PropertyValues;
@@ -33,6 +35,8 @@ public class AuthenticatedApplicationContextInitialization extends
                ApplicationListener {
        // private Log log = LogFactory
        // .getLog(AuthenticatedApplicationContextInitialization.class);
+       /** If non empty, restricts to these beans */
+       private List<String> beanNames = new ArrayList<String>();
 
        @SuppressWarnings("rawtypes")
        public Object postProcessBeforeInstantiation(Class beanClass,
@@ -41,7 +45,10 @@ public class AuthenticatedApplicationContextInitialization extends
                // we will deauthenticate only when the application context has been
                // refreshed in order to be able to deal with factory beans has well
                if (!isAuthenticatedBySelf()) {
-                       authenticateAsSystem();
+                       if (beanNames.size() == 0)
+                               authenticateAsSystem();
+                       else if (beanNames.contains(beanName))
+                               authenticateAsSystem();
                }
                return null;
        }
@@ -81,4 +88,8 @@ public class AuthenticatedApplicationContextInitialization extends
                }
        }
 
+       public void setBeanNames(List<String> beanNames) {
+               this.beanNames = beanNames;
+       }
+
 }