You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by al...@apache.org on 2009/07/30 04:09:03 UTC

svn commit: r799155 - in /openjpa/trunk: openjpa-lib/src/main/java/org/apache/openjpa/lib/util/J2DoPrivHelper.java openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidatorImpl.java

Author: allee8285
Date: Thu Jul 30 02:09:02 2009
New Revision: 799155

URL: http://svn.apache.org/viewvc?rev=799155&view=rev
Log:
OENJPA-1206 - Enable Java 2 security on BV buildDefaultValidatorFactory call.

Modified:
    openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/J2DoPrivHelper.java
    openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidatorImpl.java

Modified: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/J2DoPrivHelper.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/J2DoPrivHelper.java?rev=799155&r1=799154&r2=799155&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/J2DoPrivHelper.java (original)
+++ openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/J2DoPrivHelper.java Thu Jul 30 02:09:02 2009
@@ -46,7 +46,9 @@
 import java.util.zip.ZipFile;
 
 import javax.validation.ConstraintViolation;
+import javax.validation.Validation;
 import javax.validation.Validator;
+import javax.validation.ValidatorFactory;
 
 import serp.bytecode.BCClass;
 import serp.bytecode.BCClassLoader;
@@ -110,7 +112,8 @@
  * <li>AnnotatedElement.getAnnotations
  * <li>AnnotatedElement.getDeclaredAnnotations
  * <li>AnnotatedElement.isAnnotationPresent
- * <li>javax.validationValidator.validate
+ * <li>javax.validation.Validator.validate
+ * <li>javax.validation.Validation.buildDefaultValidatorFactory
  * </ul>
  * 
  * If these methods are used, the following sample usage patterns should be
@@ -1185,9 +1188,9 @@
     }
     
     /**
-     * Return a PrivilegeAction object for javax.validationValidator.validate().
+     * Return a PrivilegeAction object for javax.validation.Validator.validate().
      * 
-     * Requires security policy: 'permission java.lang.RuntimePermission "*";'
+     * Requires security policy: 'permission java.lang.RuntimePermission "accessDeclaredMemeber";'
      */
     public static final <T> PrivilegedAction<Set<ConstraintViolation<T>>> validateAction(
         final Validator validator, final T arg0, final Class<?>[] groups) {
@@ -1197,4 +1200,17 @@
             }
         };
     }
+
+    /**
+     * Return a PrivilegeAction object for javax.validation.Validation.buildDefaultValidatorFactory().
+     * 
+     * Requires security policy: 'permission java.lang.RuntimePermission "createClassLoader";'
+     */
+    public static final <T> PrivilegedAction<ValidatorFactory> buildDefaultValidatorFactoryAction() {
+        return new PrivilegedAction<ValidatorFactory>() {
+            public ValidatorFactory run() {
+                return Validation.buildDefaultValidatorFactory();
+            }
+        };
+    }
 }

Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidatorImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidatorImpl.java?rev=799155&r1=799154&r2=799155&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidatorImpl.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidatorImpl.java Thu Jul 30 02:09:02 2009
@@ -390,7 +390,7 @@
     private ValidatorFactory getDefaultValidatorFactory() {
         ValidatorFactory factory = null;
         try {
-            factory = Validation.buildDefaultValidatorFactory();
+            factory = AccessController.doPrivileged(J2DoPrivHelper.buildDefaultValidatorFactoryAction());
         } catch (javax.validation.ValidationException e) {
             // no validation providers found
         }