Author: struberg
Date: Mon Mar 21 21:47:17 2011
New Revision: 1083977

URL: http://svn.apache.org/viewvc?rev=1083977&view=rev
Log:
OWB-545 add security handling for SecurityService creation

We only allow creation of the ManagedSecurityService from
within the WebBeansContext!

Modified:
    
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/security/ManagedSecurityService.java

Modified: 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/security/ManagedSecurityService.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/security/ManagedSecurityService.java?rev=1083977&r1=1083976&r2=1083977&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/security/ManagedSecurityService.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/security/ManagedSecurityService.java
 Mon Mar 21 21:47:17 2011
@@ -18,6 +18,7 @@
  */
 package org.apache.webbeans.corespi.security;
 
+import org.apache.webbeans.config.WebBeansContext;
 import org.apache.webbeans.exception.WebBeansException;
 import org.apache.webbeans.spi.SecurityService;
 
@@ -52,7 +53,16 @@ public class ManagedSecurityService impl
 
     private static final PrivilegedActionGetSystemProperties 
SYSTEM_PROPERTY_ACTION = new PrivilegedActionGetSystemProperties();
 
-
+    public ManagedSecurityService()
+    {
+        // we need to make sure that only WebBeansContext gets used to create 
us!
+        StackTraceElement[] stackTrace = 
Thread.currentThread().getStackTrace();
+        String declaringClass = stackTrace[6].getClassName();
+        if (!declaringClass.equals(WebBeansContext.class.getName()))
+        {
+            throw new SecurityException("ManagedSecurityService must directly 
get created by WebBeansContext!");
+        }
+    }
 
     @Override
     public Principal getCurrentPrincipal()


Reply via email to