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);
+ }
}