@SuppressWarnings("deprecation") static Class<?> getCallerClass(int n) { if (hasGetCallerClass) { return JDKSpecific.getCallerClass(n + callerOffset); } else { return getCallStack()[n + callerOffset]; } }
@Override public Handle setup() { final ClassLoader current = WildFlySecurityManager.getCurrentContextClassLoaderPrivileged(); WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(classLoader); return new Handle() { @Override public void tearDown() { WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(current); } }; } }
private static <T> Iterable<T> load(Class<T> providerClass) { PrivilegedAction<Iterable<T>> action = new PrivilegedAction<Iterable<T>>() { @Override public Iterable<T> run() { return ServiceLoader.load(providerClass, providerClass.getClassLoader()); } }; return WildFlySecurityManager.doUnchecked(action); }
private static RemoteContextAssociationActions remoteContextAssociationActions() { return ! WildFlySecurityManager.isChecking() ? RemoteContextAssociationActions.NON_PRIVILEGED : RemoteContextAssociationActions.PRIVILEGED; } private interface RemotingContextAssociationActions {
@Override public void tearDown() { WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(current); } };
@Override public Properties getBatchConfigurationProperties() { throw BatchLogger.LOGGER.noBatchEnvironmentFound(WildFlySecurityManager.getCurrentContextClassLoaderPrivileged()); } }
private static String getProperty(final String name) { return WildFlySecurityManager.getPropertyPrivileged(name, null); }
private static void setContextID(final String contextID) { WildFlySecurityManager.doPrivilegedWithParameter(contextID, (ParametricPrivilegedAction<Void, String>) PolicyContextIdInterceptor::doSetContextID); }
public WildFlySecurityManager run() { return new WildFlySecurityManager(); } });
protected Context initialValue() { return new Context(); } };
/** * Determine whether the call stack contains a given class. Useful for assertions. * * @param clazz the class to test * @return {@code true} if the call stack contains the class */ public boolean callStackContains(Class<?> clazz) { final Class<?>[] stack = WildFlySecurityManager.getCallStack(); for (int i = 2; i < stack.length; i ++) { if (stack[i] == clazz) return true; } return false; } }
static Class<?>[] getCallStack() { return INSTANCE.getClassContext(); }
/** * Construct a new instance. * * @param name the permission name (must not be {@code null}) * @param actions the actions string (must be empty or {@code null}) */ public WildFlySecurityManagerPermission(final String name, final String actions) { super(name, strings); requireEmptyActions(actions); }
public WildFlySecurityManagerPermission withName(final String name) { return forName(name); }
private static RemotingContextAssociationActions remotingContextAssociationActions() { return ! WildFlySecurityManager.isChecking() ? RemotingContextAssociationActions.NON_PRIVILEGED : RemotingContextAssociationActions.PRIVILEGED; }
private static ClassLoader setThreadContextClassLoader(ClassLoader loader) { return (loader != null) ? WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(loader) : null; } }
private static RemotingContextAssociationActions remotingContextAccociationActions() { return ! WildFlySecurityManager.isChecking() ? RemotingContextAssociationActions.NON_PRIVILEGED : RemotingContextAssociationActions.PRIVILEGED; }
@Override public void reset() { WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(previous); }
private static RemotingContextAssociationActions remotingContextAssociationActions() { return ! WildFlySecurityManager.isChecking() ? RemotingContextAssociationActions.NON_PRIVILEGED : RemotingContextAssociationActions.PRIVILEGED; }
private static ClassLoaderActions classLoaderActions() { return WildFlySecurityManager.isChecking() ? ClassLoaderActions.PRIVILEGED : ClassLoaderActions.NON_PRIVILEGED; }