You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2017/02/14 13:46:47 UTC

tomee git commit: TOMEE-2014 applygin patch from Magesh to use security manager if there

Repository: tomee
Updated Branches:
  refs/heads/master ebe3b7232 -> dc4683e9e


TOMEE-2014 applygin patch from Magesh to use security manager if there


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/dc4683e9
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/dc4683e9
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/dc4683e9

Branch: refs/heads/master
Commit: dc4683e9ecaf585ff0b66fe31767ad0ea59984a1
Parents: ebe3b72
Author: rmannibucau <rm...@apache.org>
Authored: Tue Feb 14 14:43:49 2017 +0100
Committer: rmannibucau <rm...@apache.org>
Committed: Tue Feb 14 14:43:49 2017 +0100

----------------------------------------------------------------------
 .../core/security/AbstractSecurityService.java       |  7 +++----
 .../apache/openejb/util/JavaSecurityManagers.java    | 15 +++++++++++++++
 2 files changed, 18 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/dc4683e9/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java b/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java
index fe89ef1..57e2c9c 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java
@@ -34,7 +34,6 @@ import javax.security.auth.Subject;
 import javax.security.auth.login.LoginException;
 import javax.security.jacc.EJBMethodPermission;
 import javax.security.jacc.PolicyConfigurationFactory;
-import javax.security.jacc.PolicyContext;
 import javax.servlet.http.HttpServletRequest;
 import java.io.Serializable;
 import java.lang.reflect.Method;
@@ -150,7 +149,7 @@ public abstract class AbstractSecurityService implements DestroyableResource, Se
     @Override
     public void contextEntered(final ThreadContext oldContext, final ThreadContext newContext) {
         final String moduleID = newContext.getBeanContext().getModuleID();
-        PolicyContext.setContextID(moduleID);
+        JavaSecurityManagers.setContextID(moduleID);
 
         final ProvidedSecurityContext providedSecurityContext = newContext.get(ProvidedSecurityContext.class);
         SecurityContext securityContext = oldContext != null ? oldContext.get(SecurityContext.class) :
@@ -190,9 +189,9 @@ public abstract class AbstractSecurityService implements DestroyableResource, Se
     @Override
     public void contextExited(final ThreadContext exitedContext, final ThreadContext reenteredContext) {
         if (reenteredContext == null) {
-            PolicyContext.setContextID(null);
+            JavaSecurityManagers.setContextID(null);
         } else {
-            PolicyContext.setContextID(reenteredContext.getBeanContext().getModuleID());
+            JavaSecurityManagers.setContextID(reenteredContext.getBeanContext().getModuleID());
         }
     }
 

http://git-wip-us.apache.org/repos/asf/tomee/blob/dc4683e9/container/openejb-core/src/main/java/org/apache/openejb/util/JavaSecurityManagers.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/JavaSecurityManagers.java b/container/openejb-core/src/main/java/org/apache/openejb/util/JavaSecurityManagers.java
index 6da5d1b..b22fd21 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/util/JavaSecurityManagers.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/util/JavaSecurityManagers.java
@@ -16,6 +16,7 @@
  */
 package org.apache.openejb.util;
 
+import javax.security.jacc.PolicyContext;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.util.Properties;
@@ -96,4 +97,18 @@ public final class JavaSecurityManagers {
             });
         }
     }
+
+    public static void setContextID(final String moduleID) {
+        if (System.getSecurityManager() == null) {
+            PolicyContext.setContextID(moduleID);
+        } else {
+            AccessController.doPrivileged(new PrivilegedAction<String>() {
+                @Override
+                public String run() {
+                    PolicyContext.setContextID(moduleID);
+                    return null;
+                }
+            });
+        }
+    }
 }