]> 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 f6573e806d5104329d221a94e60e6bbcd2dc7be6..97dd6cae037f9798602a64a12844bf5bb924fd3a 100644 (file)
@@ -1,6 +1,23 @@
+/*
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 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;
@@ -18,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,
@@ -26,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;
        }
@@ -66,4 +88,8 @@ public class AuthenticatedApplicationContextInitialization extends
                }
        }
 
+       public void setBeanNames(List<String> beanNames) {
+               this.beanNames = beanNames;
+       }
+
 }