org.infinispan.marshall.exts.SecurityActions Maven / Gradle / Ivy
package org.infinispan.marshall.exts;
import java.lang.reflect.Field;
import java.security.AccessController;
import java.security.PrivilegedAction;
import org.infinispan.util.logging.Log;
import org.infinispan.util.logging.LogFactory;
/**
* SecurityActions for the org.infinispan.marshall.exts package.
*
* Do not move. Do not change class and method visibility to avoid being called from other
* {@link java.security.CodeSource}s, thus granting privilege escalation to external code.
*
* @author William Burns
* @since 8.2
*/
final class SecurityActions {
private static final Log log = LogFactory.getLog(SecurityActions.class);
private static Field getDeclaredField(Class> c, String fieldName) {
try {
return c.getDeclaredField(fieldName);
} catch (NoSuchFieldException e) {
return null;
}
}
static Field getField(Class> c, String fieldName) {
Field field;
if (System.getSecurityManager() != null) {
field = AccessController.doPrivileged((PrivilegedAction) () -> {
Field f = getDeclaredField(c, fieldName);
f.setAccessible(true);
return f;
});
} else {
field = getDeclaredField(c, fieldName);
field.setAccessible(true);
}
return field;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy