X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=legacy%2Forg.argeo.cms.ui.workbench%2Fsrc%2Forg%2Fargeo%2Fcms%2Fspring%2FAuthenticatedApplicationContextInitialization.java;fp=legacy%2Forg.argeo.cms.ui.workbench%2Fsrc%2Forg%2Fargeo%2Fcms%2Fspring%2FAuthenticatedApplicationContextInitialization.java;h=0000000000000000000000000000000000000000;hb=9b60a87396b76e794032a259609d845e52b757b7;hp=e1af58274f505493a2f800565c1e93219dfebdee;hpb=27bfd18d689c7d48e9fa8bd251598d3ba497f38e;p=lgpl%2Fargeo-commons.git diff --git a/legacy/org.argeo.cms.ui.workbench/src/org/argeo/cms/spring/AuthenticatedApplicationContextInitialization.java b/legacy/org.argeo.cms.ui.workbench/src/org/argeo/cms/spring/AuthenticatedApplicationContextInitialization.java deleted file mode 100644 index e1af58274..000000000 --- a/legacy/org.argeo.cms.ui.workbench/src/org/argeo/cms/spring/AuthenticatedApplicationContextInitialization.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * 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.cms.spring; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.util.ArrayList; -import java.util.List; - -import javax.security.auth.Subject; - -import org.eclipse.gemini.blueprint.context.DependencyInitializationAwareBeanPostProcessor; -import org.springframework.beans.BeansException; -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; - -/** - * 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, ApplicationContextAware { - /** If non empty, restricts to these beans */ - private List beanNames = new ArrayList(); - - public Object postProcessBeforeInitialization(Object bean, String beanName) - throws BeansException { - if (beanNames.size() == 0 || beanNames.contains(beanName)) - authenticateAsSystem(); - return bean; - } - - public Object postProcessAfterInitialization(Object bean, String beanName) - throws BeansException { - if (beanNames.size() == 0 || beanNames.contains(beanName)) - deauthenticateAsSystem(); - return bean; - } - - public void setBeanNames(List beanNames) { - this.beanNames = beanNames; - } - - @Override - public void setApplicationContext(ApplicationContext applicationContext) - throws BeansException { - if (applicationContext.getAutowireCapableBeanFactory() instanceof AbstractBeanFactory) { - final AbstractBeanFactory beanFactory = ((AbstractBeanFactory) applicationContext - .getAutowireCapableBeanFactory()); - // retrieve subject's access control context - // and set it as the bean factory security context - Subject.doAs(getSubject(), new PrivilegedAction() { - @Override - public Void run() { - SecurityContextProvider scp = new SimpleSecurityContextProvider( - AccessController.getContext()); - beanFactory.setSecurityContextProvider(scp); - return null; - } - }); - } - } -}