[jboss-cvs] JBossAS SVN: r90342 - projects/security/security-xacml/trunk/jboss-xacml/src/main/java/org/jboss/security/xacml/core.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jun 17 12:34:30 EDT 2009


Author: anil.saldhana at jboss.com
Date: 2009-06-17 12:34:30 -0400 (Wed, 17 Jun 2009)
New Revision: 90342

Modified:
   projects/security/security-xacml/trunk/jboss-xacml/src/main/java/org/jboss/security/xacml/core/JBossPDP.java
Log:
SECURITY-418: JBossPDP evaluate thread safe

Modified: projects/security/security-xacml/trunk/jboss-xacml/src/main/java/org/jboss/security/xacml/core/JBossPDP.java
===================================================================
--- projects/security/security-xacml/trunk/jboss-xacml/src/main/java/org/jboss/security/xacml/core/JBossPDP.java	2009-06-17 16:34:07 UTC (rev 90341)
+++ projects/security/security-xacml/trunk/jboss-xacml/src/main/java/org/jboss/security/xacml/core/JBossPDP.java	2009-06-17 16:34:30 UTC (rev 90342)
@@ -27,6 +27,8 @@
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
 
 import javax.xml.XMLConstants;
 import javax.xml.bind.JAXBContext;
@@ -69,7 +71,8 @@
 import org.xml.sax.InputSource;
 
 /**
- *  PDP for JBoss XACML
+ *  <p>PDP for JBoss XACML</p>
+ *  <b>Thread-safe evaluate method</b>
  *  @author Anil.Saldhana at redhat.com
  *  @since  Jul 6, 2007 
  *  @version $Revision$
@@ -88,6 +91,8 @@
    private JBossPolicyFinder policyFinder = new JBossPolicyFinder();
 
    private org.jboss.security.xacml.sunxacml.PDP policyDecisionPoint = null;
+   
+   private Lock lock = new ReentrantLock();
 
    /**
     * CTR
@@ -236,7 +241,18 @@
       {   
          this.bootstrapPDP();
       }
-      ResponseCtx resp = policyDecisionPoint.evaluate(req);
+      
+      ResponseCtx resp = null;
+      
+      lock.lock();
+      try
+      {
+         resp = policyDecisionPoint.evaluate(req);  
+      }
+      finally
+      {
+         lock.unlock();
+      }
 
       ResponseContext response = RequestResponseContextFactory.createResponseContext();
       response.set(XACMLConstants.RESPONSE_CTX, resp);




More information about the jboss-cvs-commits mailing list