|
Author: adrianc
Date: Sat Jan 9 22:40:12 2010 New Revision: 897572 URL: http://svn.apache.org/viewvc?rev=897572&view=rev Log: Moved runUnprotected and endRunUnprotected method implementations from ThreadContext to ExecutionContextImpl. Minor change to demo data. Modified: ofbiz/branches/executioncontext20091231/applications/securityext/data/UserDemoData.xml ofbiz/branches/executioncontext20091231/framework/api/src/org/ofbiz/api/context/ExecutionContext.java ofbiz/branches/executioncontext20091231/framework/api/src/org/ofbiz/api/context/ThreadContext.java ofbiz/branches/executioncontext20091231/framework/context/src/org/ofbiz/context/ExecutionContextImpl.java Modified: ofbiz/branches/executioncontext20091231/applications/securityext/data/UserDemoData.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/executioncontext20091231/applications/securityext/data/UserDemoData.xml?rev=897572&r1=897571&r2=897572&view=diff ============================================================================== --- ofbiz/branches/executioncontext20091231/applications/securityext/data/UserDemoData.xml (original) +++ ofbiz/branches/executioncontext20091231/applications/securityext/data/UserDemoData.xml Sat Jan 9 22:40:12 2010 @@ -87,8 +87,6 @@ <UserLoginSecurityGroup groupId="BIZADMIN" userLoginId="bizadmin" fromDate="2001-01-01 12:00:00.0"/> <UserToUserGroupRel userLoginId="anonymous" groupId="OFBIZ_USERS"/> - <UserToUserGroupRel userLoginId="system" groupId="OFBIZ_USERS"/> - <UserToUserGroupRel userLoginId="admin" groupId="OFBIZ_USERS"/> <UserToUserGroupRel userLoginId="flexadmin" groupId="OFBIZ_USERS"/> <UserToUserGroupRel userLoginId="demoadmin" groupId="OFBIZ_USERS"/> <UserToUserGroupRel userLoginId="ltdadmin" groupId="OFBIZ_USERS"/> @@ -96,5 +94,6 @@ <UserToUserGroupRel userLoginId="bizadmin" groupId="OFBIZ_USERS"/> <UserToArtifactPermRel userLoginId="admin" artifactPath="ofbiz" permissionValue="admin=true"/> + <UserToArtifactPermRel userLoginId="system" artifactPath="ofbiz" permissionValue="admin=true"/> </entity-engine-xml> Modified: ofbiz/branches/executioncontext20091231/framework/api/src/org/ofbiz/api/context/ExecutionContext.java URL: http://svn.apache.org/viewvc/ofbiz/branches/executioncontext20091231/framework/api/src/org/ofbiz/api/context/ExecutionContext.java?rev=897572&r1=897571&r2=897572&view=diff ============================================================================== --- ofbiz/branches/executioncontext20091231/framework/api/src/org/ofbiz/api/context/ExecutionContext.java (original) +++ ofbiz/branches/executioncontext20091231/framework/api/src/org/ofbiz/api/context/ExecutionContext.java Sat Jan 9 22:40:12 2010 @@ -45,6 +45,12 @@ */ public interface ExecutionContext { + /** + * Restores the <code>AuthorizationManager</code> instance that was in use + * before the last <code>runUnprotected</code> method call. + */ + public void endRunUnprotected(); + /** Returns an <code>AccessController</code> instance for this * user login and execution path combination. * @@ -120,6 +126,12 @@ */ public void reset(); + /** + * Replaces the current <code>AuthorizationManager</code> instance + * with one that allows unrestricted use of all artifacts. + */ + public void runUnprotected(); + /** Sets the currency unit of measure. * * @param currencyUom The ISO currency code Modified: ofbiz/branches/executioncontext20091231/framework/api/src/org/ofbiz/api/context/ThreadContext.java URL: http://svn.apache.org/viewvc/ofbiz/branches/executioncontext20091231/framework/api/src/org/ofbiz/api/context/ThreadContext.java?rev=897572&r1=897571&r2=897572&view=diff ============================================================================== --- ofbiz/branches/executioncontext20091231/framework/api/src/org/ofbiz/api/context/ThreadContext.java (original) +++ ofbiz/branches/executioncontext20091231/framework/api/src/org/ofbiz/api/context/ThreadContext.java Sat Jan 9 22:40:12 2010 @@ -24,7 +24,6 @@ import org.ofbiz.api.authorization.AccessController; import org.ofbiz.api.authorization.AuthorizationManager; -import org.ofbiz.api.authorization.NullAuthorizationManager; import org.ofbiz.base.util.Debug; import org.ofbiz.base.util.UtilProperties; @@ -34,7 +33,6 @@ public class ThreadContext { protected static final String module = ThreadContext.class.getName(); - protected static final AuthorizationManager nullAuthorizationManager = new NullAuthorizationManager(); protected static final ThreadLocal<ExecutionContext> executionContext = new ThreadLocal<ExecutionContext>() { protected synchronized ExecutionContext initialValue() { @@ -50,19 +48,8 @@ } }; - /** Used by <code>runUnprotected</code> and <code>endRunUnprotected</code> - * to save/restore the original <code>AuthorizationManager</code> instance. - */ - protected static final ThreadLocal<AuthorizationManager> authManager = new ThreadLocal<AuthorizationManager>() { - protected synchronized AuthorizationManager initialValue() {return null;}; - }; - public static void endRunUnprotected() { - AuthorizationManager savedAuthorizationManager = authManager.get(); - if (savedAuthorizationManager != null) { - setSecurity(savedAuthorizationManager); - authManager.set(null); - } + executionContext.get().endRunUnprotected(); } public static AccessController getAccessController() { @@ -126,8 +113,7 @@ } public static void runUnprotected() { - authManager.set(getSecurity()); - setSecurity(nullAuthorizationManager); + executionContext.get().runUnprotected(); } public static void setCurrencyUom(String currencyUom) { Modified: ofbiz/branches/executioncontext20091231/framework/context/src/org/ofbiz/context/ExecutionContextImpl.java URL: http://svn.apache.org/viewvc/ofbiz/branches/executioncontext20091231/framework/context/src/org/ofbiz/context/ExecutionContextImpl.java?rev=897572&r1=897571&r2=897572&view=diff ============================================================================== --- ofbiz/branches/executioncontext20091231/framework/context/src/org/ofbiz/context/ExecutionContextImpl.java (original) +++ ofbiz/branches/executioncontext20091231/framework/context/src/org/ofbiz/context/ExecutionContextImpl.java Sat Jan 9 22:40:12 2010 @@ -22,8 +22,11 @@ import java.util.Map; import java.util.TimeZone; +import javolution.util.FastList; + import org.ofbiz.api.authorization.AccessController; import org.ofbiz.api.authorization.AuthorizationManager; +import org.ofbiz.api.authorization.NullAuthorizationManager; import org.ofbiz.base.util.Debug; import org.ofbiz.base.util.UtilProperties; import org.ofbiz.entity.DelegatorFactory; @@ -38,6 +41,11 @@ public class ExecutionContextImpl extends org.ofbiz.api.context.AbstractExecutionContext implements ExecutionContext { public static final String module = ExecutionContextImpl.class.getName(); + protected static final AuthorizationManager nullAuthorizationManager = new NullAuthorizationManager(); + /** Used by <code>runUnprotected</code> and <code>endRunUnprotected</code> + * to save/restore the original <code>AuthorizationManager</code> instance. + */ + protected final FastList<AuthorizationManager> managerList = FastList.newInstance(); protected Delegator delegator = null; protected LocalDispatcher dispatcher = null; protected AuthorizationManager security = null; @@ -105,6 +113,7 @@ @Override public void reset() { super.reset(); + this.managerList.clear(); this.delegator = null; this.dispatcher = null; this.security = null; @@ -150,4 +159,17 @@ this.userLogin = null; this.resetUserPreferences(); } + + @Override + public void endRunUnprotected() { + if (!this.managerList.isEmpty()) { + this.setSecurity(this.managerList.removeLast()); + } + } + + @Override + public void runUnprotected() { + this.managerList.addLast(getSecurity()); + this.setSecurity(nullAuthorizationManager); + } } |
| Free forum by Nabble | Edit this page |
