]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/core/AuthenticatedApplicationContextInitialization.java
Introduce SimpleRoleRegistration
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.core / src / main / java / org / argeo / security / core / AuthenticatedApplicationContextInitialization.java
index 10877960cdbdc521c629e9449bf7e9007c397789..97dd6cae037f9798602a64a12844bf5bb924fd3a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2012 Mathieu Baudier
+ * Copyright (C) 2007-2012 Argeo GmbH
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -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;
+       }
+
 }