package org.jboss.as.quickstarts.datagrid.securecache.cdi; import java.io.IOException; import java.security.PrivilegedAction; import javax.enterprise.inject.Default; import javax.enterprise.inject.Produces; import org.infinispan.manager.DefaultCacheManager; import org.infinispan.manager.EmbeddedCacheManager; import org.infinispan.security.Security; import org.jboss.security.SecurityContextAssociation; import javax.inject.Named; import javax.security.auth.Subject; public class Resources { private static EmbeddedCacheManager ecm; @Named @Produces @Default public EmbeddedCacheManager cacheManager() throws IOException { if(ecm == null) { Subject subject = SecurityContextAssociation.getSubject(); Security.doAs(subject, new PrivilegedAction<Void>() { public Void run() { try { ecm = new DefaultCacheManager("infinispan.xml"); } catch (IOException e) { e.printStackTrace(); } ecm.start(); return null; } }); } return ecm; } }