package org.infinispan.security.impl; import org.infinispan.factories.AbstractComponentFactory; import org.infinispan.factories.AutoInstantiableFactory; import org.infinispan.factories.annotations.DefaultFactoryFor; import org.infinispan.factories.scopes.Scope; import org.infinispan.factories.scopes.Scopes; import org.infinispan.security.GlobalSecurityManager; /** * Factory for GlobalSecurityManager implementations * * @author Tristan Tarrant * @since 8.1 */ @Scope(Scopes.GLOBAL) @DefaultFactoryFor(classes = GlobalSecurityManager.class) public class GlobalSecurityManagerFactory extends AbstractComponentFactory implements AutoInstantiableFactory { @Override public <T> T construct(Class<T> componentType) { if (globalConfiguration.security().authorization().enabled()) return componentType.cast(new GlobalSecurityManagerImpl()); else return null; } }