Remove dependency to Spring Security
[lgpl/argeo-commons.git] / org.argeo.security.core / src / org / argeo / security / core / AuthenticatedApplicationContextInitialization.java
index 6c477ee9f97161426216cc9da4d4dcceefd46e79..aa3827c928082cc0d36f0f1ca6f8d943a3d6af14 100644 (file)
@@ -15,7 +15,6 @@
  */
 package org.argeo.security.core;
 
-import java.beans.PropertyDescriptor;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.util.ArrayList;
@@ -25,97 +24,36 @@ import javax.security.auth.Subject;
 
 import org.eclipse.gemini.blueprint.context.DependencyInitializationAwareBeanPostProcessor;
 import org.springframework.beans.BeansException;
-import org.springframework.beans.PropertyValues;
 import org.springframework.beans.factory.support.AbstractBeanFactory;
 import org.springframework.beans.factory.support.SecurityContextProvider;
 import org.springframework.beans.factory.support.SimpleSecurityContextProvider;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
-import org.springframework.context.ApplicationEvent;
-import org.springframework.context.ApplicationListener;
-import org.springframework.context.event.ContextRefreshedEvent;
 
 /**
  * Executes with a system authentication the instantiation and initialization
  * methods of the application context where it has been defined.
  */
 public class AuthenticatedApplicationContextInitialization extends
-               AbstractSystemExecution implements DependencyInitializationAwareBeanPostProcessor,
-               ApplicationListener<ApplicationEvent>, ApplicationContextAware {
-       // private Log log = LogFactory
-       // .getLog(AuthenticatedApplicationContextInitialization.class);
+               AbstractSystemExecution implements
+               DependencyInitializationAwareBeanPostProcessor, ApplicationContextAware {
        /** If non empty, restricts to these beans */
        private List<String> beanNames = new ArrayList<String>();
 
-//     @SuppressWarnings("rawtypes")
-//     public Object postProcessBeforeInstantiation(Class beanClass,
-//                     String beanName) throws BeansException {
-//             // we authenticate when any bean is instantiated
-//             // 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()) {
-//             // if (beanNames.size() == 0)
-//             // authenticateAsSystem();
-//             // else if (beanNames.contains(beanName))
-//             // authenticateAsSystem();
-//             // }
-//             return null;
-//     }
-//
-//     public boolean postProcessAfterInstantiation(Object bean, String beanName)
-//                     throws BeansException {
-//             return true;
-//     }
-//
-//     public PropertyValues postProcessPropertyValues(PropertyValues pvs,
-//                     PropertyDescriptor[] pds, Object bean, String beanName)
-//                     throws BeansException {
-//             return pvs;
-//     }
-
        public Object postProcessBeforeInitialization(Object bean, String beanName)
                        throws BeansException {
                if (beanNames.size() == 0 || beanNames.contains(beanName))
                        authenticateAsSystem();
-               // try {
-               // if (beanNames.size() == 0 || beanNames.contains(beanName)) {
-               // LoginContext lc = new LoginContext("INIT", subject);
-               // lc.login();
-               // }
-               // } catch (LoginException e) {
-               // throw new ArgeoException("Cannot login as initialization", e);
-               // }
                return bean;
        }
 
        public Object postProcessAfterInitialization(Object bean, String beanName)
                        throws BeansException {
-               // NOTE: in case there was an exception in on the initialization method
-               // we expect the underlying thread to die and thus the system
-               // authentication to be lost. We have currently no way to catch the
-               // exception and perform the deauthentication by ourselves.
                if (beanNames.size() == 0 || beanNames.contains(beanName))
                        deauthenticateAsSystem();
-               // try {
-               // if (beanNames.size() == 0 || beanNames.contains(beanName)) {
-               // LoginContext lc = new LoginContext("INIT", subject);
-               // lc.logout();
-               // }
-               // } catch (LoginException e) {
-               // // TODO Auto-generated catch block
-               // e.printStackTrace();
-               // }
                return bean;
        }
 
-       public void onApplicationEvent(ApplicationEvent event) {
-               if (event instanceof ContextRefreshedEvent) {
-                       // make sure that we have deauthenticated after the application
-                       // context was initialized/refreshed
-                       // deauthenticateAsSystem();
-               }
-       }
-
        public void setBeanNames(List<String> beanNames) {
                this.beanNames = beanNames;
        }