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
}