Java 类java.security.PrivilegedAction 实例源码
项目:openjdk-jdk10
文件:CertChainUnclosed.java
public static void main(String[] args) throws Exception {
String os = AccessController.doPrivileged(
(PrivilegedAction<String>)() -> System.getProperty("os.name"));
if (!os.toUpperCase(Locale.US).contains("WINDOWS")) {
System.out.println("Not Windows. Skip test.");
return;
}
kt("-genkeypair -alias a -dname CN=A");
kt("-exportcert -file a.crt -alias a");
Files.copy(Paths.get(System.getProperty("test.src"), "AlgOptions.jar"),
Paths.get("test.jar"));
sun.security.tools.jarsigner.Main.main(
"-storepass changeit -keystore jks -certchain a.crt test.jar a"
.split(" "));
// On Windows, if the file is still opened (or not if GC was
// performed) and the next line would fail
Files.delete(Paths.get("a.crt"));
}
项目:dev-courses
文件:RefCapablePropertyResourceBundle.java
/**
* Recursive
*/
private InputStream getMostSpecificStream(
String key, String l, String c, String v) {
final String filePath = baseName.replace('.', '/') + '/' + key
+ ((l == null) ? "" : ("_" + l))
+ ((c == null) ? "" : ("_" + c))
+ ((v == null) ? "" : ("_" + v))
+ ".text";
// System.err.println("Seeking " + filePath);
InputStream is = (InputStream) AccessController.doPrivileged(
new PrivilegedAction() {
public InputStream run() {
return loader.getResourceAsStream(filePath);
}
});
// N.b. If were using Class.getRes... instead of ClassLoader.getRes...
// we would need to prefix the path with "/".
return (is == null && l != null)
? getMostSpecificStream(key, ((c == null) ? null : l),
((v == null) ? null : c), null)
: is;
}
项目:holon-core
文件:AbstractDatastore.java
/**
* Load default {@link ExpressionResolver}s using Java {@link ServiceLoader} extensions only if
* {@link #getExpressionResolverType()} is not null.
* @param classLoader The ClassLoader to use. If <code>null</code>, this class ClassLoader or the default
* ClassLoader will be used.
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
protected synchronized void loadExpressionResolvers(ClassLoader classLoader) {
final Class<? extends ExpressionResolver> expressionResolverType = getExpressionResolverType();
if (expressionResolverType != null) {
final ClassLoader cl = (classLoader != null) ? classLoader
: (this.getClass().getClassLoader() != null) ? this.getClass().getClassLoader()
: ClassUtils.getDefaultClassLoader();
LOGGER.debug(() -> "Load ExpressionResolvers for classloader [" + cl
+ "] using ServiceLoader with service name: " + expressionResolverType.getName());
// load from META-INF/services
Iterable<? extends ExpressionResolver> loaded = AccessController
.doPrivileged(new PrivilegedAction<Iterable<? extends ExpressionResolver>>() {
@Override
public Iterable<? extends ExpressionResolver> run() {
return ServiceLoader.load(expressionResolverType, classLoader);
}
});
loaded.forEach(er -> {
addExpressionResolver(er);
LOGGER.debug(() -> "Registered ExpressionResolver [" + er.getClass().getName() + "]");
});
}
}
项目:OpenJSharp
文件:XMLDecoder.java
private boolean parsingComplete() {
if (this.input == null) {
return false;
}
if (this.array == null) {
if ((this.acc == null) && (null != System.getSecurityManager())) {
throw new SecurityException("AccessControlContext is not set");
}
AccessController.doPrivileged(new PrivilegedAction<Void>() {
public Void run() {
XMLDecoder.this.handler.parse(XMLDecoder.this.input);
return null;
}
}, this.acc);
this.array = this.handler.getObjects();
}
return true;
}
项目:jdk8u-jdk
文件:RowSetProvider.java
/**
* Returns the requested System Property. If a {@code SecurityException}
* occurs, just return NULL
* @param propName - System property to retrieve
* @return The System property value or NULL if the property does not exist
* or a {@code SecurityException} occurs.
*/
static private String getSystemProperty(final String propName) {
String property = null;
try {
property = AccessController.doPrivileged(new PrivilegedAction<String>() {
public String run() {
return System.getProperty(propName);
}
}, null, new PropertyPermission(propName, "read"));
} catch (SecurityException se) {
trace("error getting " + propName + ": "+ se);
if (debug) {
se.printStackTrace();
}
}
return property;
}
项目:jdk8u-jdk
文件:Cleaner.java
/**
* Runs this cleaner, if it has not been run before.
*/
public void clean() {
if (!remove(this))
return;
try {
thunk.run();
} catch (final Throwable x) {
AccessController.doPrivileged(new PrivilegedAction<Void>() {
public Void run() {
if (System.err != null)
new Error("Cleaner terminated abnormally", x)
.printStackTrace();
System.exit(1);
return null;
}});
}
}
项目:Progetto-C
文件:Log.java
/**
* Check if the system property org.newdawn.slick.verboseLog is set to true.
* If this is the case we activate the verbose logging mode
*/
public static void checkVerboseLogSetting() {
try {
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
String val = System.getProperty(Log.forceVerboseProperty);
if ((val != null) && (val.equalsIgnoreCase(Log.forceVerbosePropertyOnValue))) {
Log.setForcedVerboseOn();
}
return null;
}
});
} catch (Throwable e) {
// ignore, security failure - probably an applet
}
}
项目:jdk8u-jdk
文件:AquaLookAndFeel.java
/**
* UIManager.setLookAndFeel calls this method before the first
* call (and typically the only call) to getDefaults(). Subclasses
* should do any one-time setup they need here, rather than
* in a static initializer, because look and feel class objects
* may be loaded just to discover that isSupportedLookAndFeel()
* returns false.
*
* @see #uninitialize
* @see UIManager#setLookAndFeel
*/
public void initialize() {
java.security.AccessController.doPrivileged(new PrivilegedAction<Void>() {
public Void run() {
System.loadLibrary("osxui");
return null;
}
});
java.security.AccessController.doPrivileged(new PrivilegedAction<Void>(){
@Override
public Void run() {
JRSUIControl.initJRSUI();
return null;
}
});
super.initialize();
final ScreenPopupFactory spf = new ScreenPopupFactory();
spf.setActive(true);
PopupFactory.setSharedInstance(spf);
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventPostProcessor(AquaMnemonicHandler.getInstance());
}
项目:lams
文件:PageContextImpl.java
public int getAttributesScope(final String name) {
if (name == null) {
throw new NullPointerException(Localizer
.getMessage("jsp.error.attribute.null_name"));
}
if (SecurityUtil.isPackageProtectionEnabled()) {
return ((Integer) AccessController
.doPrivileged(new PrivilegedAction() {
public Object run() {
return new Integer(doGetAttributeScope(name));
}
})).intValue();
} else {
return doGetAttributeScope(name);
}
}
项目:jdk8u-jdk
文件:JDK13Services.java
/** Obtain the value of a default provider property.
@param typeClass The type of the default provider property. This
should be one of Receiver.class, Transmitter.class, Sequencer.class,
Synthesizer.class, SourceDataLine.class, TargetDataLine.class,
Clip.class or Port.class.
@return The complete value of the property, if available.
If the property is not set, null is returned.
*/
private static synchronized String getDefaultProvider(Class typeClass) {
if (!SourceDataLine.class.equals(typeClass)
&& !TargetDataLine.class.equals(typeClass)
&& !Clip.class.equals(typeClass)
&& !Port.class.equals(typeClass)
&& !Receiver.class.equals(typeClass)
&& !Transmitter.class.equals(typeClass)
&& !Synthesizer.class.equals(typeClass)
&& !Sequencer.class.equals(typeClass)) {
return null;
}
String name = typeClass.getName();
String value = AccessController.doPrivileged(
(PrivilegedAction<String>) () -> System.getProperty(name));
if (value == null) {
value = getProperties().getProperty(name);
}
if ("".equals(value)) {
value = null;
}
return value;
}
项目:dice
文件:JDKThreadedEntropySource.java
/**
* The constructor is only called once to construct the one
* instance we actually use. It instantiates the message digest
* and starts the thread going.
*/
ThreadedSeedGenerator() {
pool = new byte[20];
start = end = 0;
final ThreadGroup[] finalsg = new ThreadGroup[1];
Thread t = java.security.AccessController.doPrivileged
((PrivilegedAction<Thread>) () -> {
ThreadGroup parent, group =
Thread.currentThread().getThreadGroup();
while ((parent = group.getParent()) != null)
group = parent;
finalsg[0] = new ThreadGroup
(group, "Dice SeedGenerator ThreadGroup");
Thread newT = new Thread(finalsg[0],
ThreadedSeedGenerator.this,
"Dice SeedGenerator Thread");
newT.setPriority(Thread.MIN_PRIORITY);
newT.setDaemon(true);
return newT;
});
seedGroup = finalsg[0];
t.start();
}
项目:rosette-elasticsearch-plugin
文件:NameTranslationProcessor.java
@Override
public void processDocument(String inputText, IngestDocument ingestDocument) throws Exception {
// call /name-translation endpoint and set the result in the field
NameTranslationRequest request = new NameTranslationRequest.Builder(inputText, targetLanguage)
.entityType(entityType)
.targetScript(targetScript)
.sourceLanguageOfUse(sourceLanguage)
.sourceLanguageOfOrigin(sourceOrigin)
.sourceScript(sourceScript).build();
NameTranslationResponse response;
try {
// RosApi client binding's Jackson needs elevated privilege
response = AccessController.doPrivileged((PrivilegedAction<NameTranslationResponse>) () ->
rosAPI.getHttpRosetteAPI().perform(AbstractRosetteAPI.NAME_TRANSLATION_SERVICE_PATH, request, NameTranslationResponse.class)
);
} catch (HttpRosetteAPIException ex) {
LOGGER.error(ex.getErrorResponse().getMessage());
throw new ElasticsearchException(ex.getErrorResponse().getMessage(), ex);
}
ingestDocument.setFieldValue(targetField, response.getTranslation());
}
项目:OpenJSharp
文件:Activation.java
/**
* Prints warning message if installed Policy is the default Policy
* implementation and globally granted permissions do not include
* AllPermission or any ExecPermissions/ExecOptionPermissions.
*/
static void checkConfiguration() {
Policy policy =
AccessController.doPrivileged(new PrivilegedAction<Policy>() {
public Policy run() {
return Policy.getPolicy();
}
});
if (!(policy instanceof PolicyFile)) {
return;
}
PermissionCollection perms = getExecPermissions();
for (Enumeration<Permission> e = perms.elements();
e.hasMoreElements();)
{
Permission p = e.nextElement();
if (p instanceof AllPermission ||
p instanceof ExecPermission ||
p instanceof ExecOptionPermission)
{
return;
}
}
System.err.println(getTextResource("rmid.exec.perms.inadequate"));
}
项目:lams
文件:ConstructorResolver.java
/**
* Retrieve all candidate methods for the given class, considering
* the {@link RootBeanDefinition#isNonPublicAccessAllowed()} flag.
* Called as the starting point for factory method determination.
*/
private Method[] getCandidateMethods(final Class<?> factoryClass, final RootBeanDefinition mbd) {
if (System.getSecurityManager() != null) {
return AccessController.doPrivileged(new PrivilegedAction<Method[]>() {
@Override
public Method[] run() {
return (mbd.isNonPublicAccessAllowed() ?
ReflectionUtils.getAllDeclaredMethods(factoryClass) : factoryClass.getMethods());
}
});
}
else {
return (mbd.isNonPublicAccessAllowed() ?
ReflectionUtils.getAllDeclaredMethods(factoryClass) : factoryClass.getMethods());
}
}
项目:jdk8u-jdk
文件:UnicastServerRef.java
/**
* Sets a filter for invocation arguments, if a filter has been set.
* Called by dispatch before the arguments are read.
*/
protected void unmarshalCustomCallData(ObjectInput in)
throws IOException, ClassNotFoundException {
if (filter != null &&
in instanceof ObjectInputStream) {
// Set the filter on the stream
ObjectInputStream ois = (ObjectInputStream) in;
AccessController.doPrivileged(new PrivilegedAction<Void>() {
@Override
public Void run() {
ObjectInputFilter.Config.setObjectInputFilter(ois, filter);
return null;
}
});
}
}
项目:OpenJSharp
文件:Win32ShellFolderManager2.java
private ComInvoker() {
super(1, 1, 0, TimeUnit.DAYS, new LinkedBlockingQueue<Runnable>());
allowCoreThreadTimeOut(false);
setThreadFactory(this);
final Runnable shutdownHook = new Runnable() {
public void run() {
AccessController.doPrivileged(new PrivilegedAction<Void>() {
public Void run() {
shutdownNow();
return null;
}
});
}
};
AccessController.doPrivileged(new PrivilegedAction<Void>() {
public Void run() {
Runtime.getRuntime().addShutdownHook(
new Thread(shutdownHook)
);
return null;
}
});
}
项目:tomcat7
文件:Response.java
public StringBuffer generateCookieString(final Cookie cookie) {
final StringBuffer sb = new StringBuffer();
//web application code can receive a IllegalArgumentException
//from the appendCookieValue invocation
if (SecurityUtil.isPackageProtectionEnabled()) {
AccessController.doPrivileged(new PrivilegedAction<Void>() {
@Override
public Void run(){
ServerCookie.appendCookieValue
(sb, cookie.getVersion(), cookie.getName(),
cookie.getValue(), cookie.getPath(),
cookie.getDomain(), cookie.getComment(),
cookie.getMaxAge(), cookie.getSecure(),
cookie.isHttpOnly());
return null;
}
});
} else {
ServerCookie.appendCookieValue
(sb, cookie.getVersion(), cookie.getName(), cookie.getValue(),
cookie.getPath(), cookie.getDomain(), cookie.getComment(),
cookie.getMaxAge(), cookie.getSecure(),
cookie.isHttpOnly());
}
return sb;
}
项目:OpenJSharp
文件:AppContext.java
/**
* Constructor for AppContext. This method is <i>not</i> public,
* nor should it ever be used as such. The proper way to construct
* an AppContext is through the use of SunToolkit.createNewAppContext.
* A ThreadGroup is created for the new AppContext, a Thread is
* created within that ThreadGroup, and that Thread calls
* SunToolkit.createNewAppContext before calling anything else.
* That creates both the new AppContext and its EventQueue.
*
* @param threadGroup The ThreadGroup for the new AppContext
* @see sun.awt.SunToolkit
* @since 1.2
*/
AppContext(ThreadGroup threadGroup) {
numAppContexts.incrementAndGet();
this.threadGroup = threadGroup;
threadGroup2appContext.put(threadGroup, this);
this.contextClassLoader =
AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
public ClassLoader run() {
return Thread.currentThread().getContextClassLoader();
}
});
// Initialize push/pop lock and its condition to be used by all the
// EventQueues within this AppContext
Lock eventQueuePushPopLock = new ReentrantLock();
put(EVENT_QUEUE_LOCK_KEY, eventQueuePushPopLock);
Condition eventQueuePushPopCond = eventQueuePushPopLock.newCondition();
put(EVENT_QUEUE_COND_KEY, eventQueuePushPopCond);
}
项目:openjdk-jdk10
文件:DefaultMBeanServerInterceptor.java
private static void checkMBeanTrustPermission(final Class<?> theClass)
throws SecurityException {
SecurityManager sm = System.getSecurityManager();
if (sm != null) {
Permission perm = new MBeanTrustPermission("register");
PrivilegedAction<ProtectionDomain> act =
new PrivilegedAction<ProtectionDomain>() {
public ProtectionDomain run() {
return theClass.getProtectionDomain();
}
};
ProtectionDomain pd = AccessController.doPrivileged(act);
AccessControlContext acc =
new AccessControlContext(new ProtectionDomain[] { pd });
sm.checkPermission(perm, acc);
}
}
项目:openjdk-jdk10
文件:ServiceRegistry.java
public synchronized void clear() {
Iterator<Object> iter = map.values().iterator();
while (iter.hasNext()) {
Object provider = iter.next();
iter.remove();
if (provider instanceof RegisterableService) {
RegisterableService rs = (RegisterableService)provider;
AccessControlContext acc = accMap.get(provider.getClass());
if (acc != null || System.getSecurityManager() == null) {
AccessController.doPrivileged((PrivilegedAction<Void>) () -> {
rs.onDeregistration(registry, category);
return null;
}, acc);
}
}
}
poset.clear();
accMap.clear();
}
项目:tomcat7
文件:Introspection.java
/**
* Obtain the declared fields for a class taking account of any security
* manager that may be configured.
*/
public static Field[] getDeclaredFields(final Class<?> clazz) {
Field[] fields = null;
if (Globals.IS_SECURITY_ENABLED) {
fields = AccessController.doPrivileged(
new PrivilegedAction<Field[]>(){
@Override
public Field[] run(){
return clazz.getDeclaredFields();
}
});
} else {
fields = clazz.getDeclaredFields();
}
return fields;
}
项目:jdk8u-jdk
文件:PollingWatchService.java
@Override
void implClose() throws IOException {
synchronized (map) {
for (Map.Entry<Object,PollingWatchKey> entry: map.entrySet()) {
PollingWatchKey watchKey = entry.getValue();
watchKey.disable();
watchKey.invalidate();
}
map.clear();
}
AccessController.doPrivileged(new PrivilegedAction<Void>() {
@Override
public Void run() {
scheduledExecutor.shutdown();
return null;
}
});
}
项目:OpenJSharp
文件:PollingWatchService.java
@Override
void implClose() throws IOException {
synchronized (map) {
for (Map.Entry<Object,PollingWatchKey> entry: map.entrySet()) {
PollingWatchKey watchKey = entry.getValue();
watchKey.disable();
watchKey.invalidate();
}
map.clear();
}
AccessController.doPrivileged(new PrivilegedAction<Void>() {
@Override
public Void run() {
scheduledExecutor.shutdown();
return null;
}
});
}
项目:openjdk-jdk10
文件:TypeConverterFactory.java
private static ClassLoader getClassLoader(final Class<?> clazz) {
return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
@Override
public ClassLoader run() {
return clazz.getClassLoader();
}
}, GET_CLASS_LOADER_CONTEXT);
}
项目:lams
文件:SecurityActions.java
static void setCurrentRequestContext(final ServletRequestContext servletRequestContext) {
if (System.getSecurityManager() == null) {
ServletRequestContext.setCurrentRequestContext(servletRequestContext);
} else {
AccessController.doPrivileged(new PrivilegedAction<Object>() {
@Override
public Object run() {
ServletRequestContext.setCurrentRequestContext(servletRequestContext);
return null;
}
});
}
}
项目:openjdk-jdk10
文件:ContextClassloaderLocal.java
private static ClassLoader getContextClassLoader() {
return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
@Override
public ClassLoader run() {
ClassLoader cl = null;
try {
cl = Thread.currentThread().getContextClassLoader();
} catch (SecurityException ex) {
}
return cl;
}
});
}
项目:NotifyTools
文件:Beans.java
private static void setStub(Applet applet, final ClassLoader loader,
boolean serialized, String beanName) throws ClassNotFoundException {
// Get path to the resource representing the applet.
String pathName = beanName.replace('.', '/');
final String resourceName = serialized ? pathName.concat(".ser") : pathName.concat(".class"); //$NON-NLS-1$ //$NON-NLS-2$
URL objectUrl = AccessController
.doPrivileged(new PrivilegedAction<URL>() {
public URL run() {
if (loader == null) {
return ClassLoader.getSystemResource(resourceName);
}
return loader.getResource(resourceName);
}
});
// If we can't get to the applet itself, the codebase and doc base are
// left as null.
if (objectUrl == null) {
applet.setStub(getAppletStub(getStubAppletContext(applet),
null, null));
return;
}
// Try to decompose the resource URL to get to the doc/code URL
String urlString = objectUrl.toExternalForm();
// This is the URL of the directory that contains the applet.
int codeURLlength = urlString.length() - resourceName.length();
URL codeBase = safeURL(urlString.substring(0, codeURLlength));
// URL of the document containing the applet.
int docURLlength = urlString.lastIndexOf('/');
URL docBase = safeURL(urlString.substring(0, docURLlength + 1));
applet.setStub(getAppletStub(getStubAppletContext(applet),
codeBase, docBase));
}
项目:NotifyTools
文件:EventHandler.java
public Object invoke(final Object proxy, final Method method, final Object[] arguments) {
return AccessController.doPrivileged(new PrivilegedAction<Object>() {
public Object run() {
return invokeImpl(proxy, method, arguments);
}
}, context);
}
项目:gemini.blueprint
文件:PrivilegedUtils.java
/**
* Temporarily changes the TCCL to the given one for the duration of the given execution. All actions except the
* execution are executed with privileged access.
*
* Consider checking if there is a security manager in place before calling this method.
*
* @param customClassLoader
* @param execution
* @return
*/
public static <T> T executeWithCustomTCCL(final ClassLoader customClassLoader,
final UnprivilegedExecution<T> execution) {
final Thread currentThread = Thread.currentThread();
final ClassLoader oldTCCL = getTCCLAction.getTCCL();
boolean hasSecurity = System.getSecurityManager() != null;
try {
if (hasSecurity) {
AccessController.doPrivileged(new PrivilegedAction<Object>() {
public Object run() {
currentThread.setContextClassLoader(customClassLoader);
return null;
}
});
} else {
currentThread.setContextClassLoader(customClassLoader);
}
return execution.run();
} finally {
if (hasSecurity) {
AccessController.doPrivileged(new PrivilegedAction<Object>() {
public Object run() {
currentThread.setContextClassLoader(oldTCCL);
return null;
}
});
} else {
currentThread.setContextClassLoader(oldTCCL);
}
}
}
项目:openjdk-jdk10
文件:ReflectionNavigator.java
public Collection<? extends Method> getDeclaredMethods(final Class clazz) {
Method[] methods =
AccessController.doPrivileged(new PrivilegedAction<Method[]>() {
@Override
public Method[] run() {
return clazz.getDeclaredMethods();
}
});
return Arrays.asList(methods);
}
项目:jdk8u-jdk
文件:RMIConnector.java
private ClassLoader pushDefaultClassLoader() {
final Thread t = Thread.currentThread();
final ClassLoader old = t.getContextClassLoader();
if (defaultClassLoader != null)
AccessController.doPrivileged(new PrivilegedAction<Void>() {
public Void run() {
t.setContextClassLoader(defaultClassLoader);
return null;
}
});
return old;
}
项目:openjdk-jdk10
文件:OutputStreamFactory.java
public static EncapsOutputStream newEncapsOutputStream(
final ORB orb) {
return AccessController.doPrivileged(
new PrivilegedAction<EncapsOutputStream>() {
@Override
public EncapsOutputStream run() {
return new EncapsOutputStream(
(com.sun.corba.se.spi.orb.ORB)orb);
}
});
}
项目:openjdk-jdk10
文件:RegistryImpl.java
/**
* Generates an AccessControlContext with minimal permissions.
* The approach used here is taken from the similar method
* getAccessControlContext() in the sun.applet.AppletPanel class.
*/
private static AccessControlContext getAccessControlContext(int port) {
// begin with permissions granted to all code in current policy
PermissionCollection perms = AccessController.doPrivileged(
new java.security.PrivilegedAction<PermissionCollection>() {
public PermissionCollection run() {
CodeSource codesource = new CodeSource(null,
(java.security.cert.Certificate[]) null);
Policy p = java.security.Policy.getPolicy();
if (p != null) {
return p.getPermissions(codesource);
} else {
return new Permissions();
}
}
});
/*
* Anyone can connect to the registry and the registry can connect
* to and possibly download stubs from anywhere. Downloaded stubs and
* related classes themselves are more tightly limited by RMI.
*/
perms.add(new SocketPermission("*", "connect,accept"));
perms.add(new SocketPermission("localhost:"+port, "listen,accept"));
perms.add(new RuntimePermission("accessClassInPackage.sun.jvmstat.*"));
perms.add(new RuntimePermission("accessClassInPackage.sun.jvm.hotspot.*"));
perms.add(new FilePermission("<<ALL FILES>>", "read"));
/*
* Create an AccessControlContext that consists of a single
* protection domain with only the permissions calculated above.
*/
ProtectionDomain pd = new ProtectionDomain(
new CodeSource(null,
(java.security.cert.Certificate[]) null), perms);
return new AccessControlContext(new ProtectionDomain[] { pd });
}
项目:openjdk-jdk10
文件:AnyImpl.java
public org.omg.CORBA.portable.InputStream create_input_stream() {
final org.omg.CORBA.portable.InputStream is = super
.create_input_stream();
AnyInputStream aIS = AccessController
.doPrivileged(new PrivilegedAction<AnyInputStream>() {
@Override
public AnyInputStream run() {
return new AnyInputStream(
(com.sun.corba.se.impl.encoding.EncapsInputStream) is);
}
});
return aIS;
}
项目:jdk8u-jdk
文件:MLet.java
private synchronized void setMBeanServer(final MBeanServer server) {
this.server = server;
PrivilegedAction<ClassLoaderRepository> act =
new PrivilegedAction<ClassLoaderRepository>() {
public ClassLoaderRepository run() {
return server.getClassLoaderRepository();
}
};
currentClr = AccessController.doPrivileged(act);
}
项目:jdk8u-jdk
文件:FontManagerFactory.java
/**
* Get a valid FontManager implementation for the current platform.
*
* @return a valid FontManager instance for the current platform
*/
public static synchronized FontManager getInstance() {
if (instance != null) {
return instance;
}
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
try {
String fmClassName =
System.getProperty("sun.font.fontmanager",
DEFAULT_CLASS);
ClassLoader cl = ClassLoader.getSystemClassLoader();
Class fmClass = Class.forName(fmClassName, true, cl);
instance = (FontManager) fmClass.newInstance();
} catch (ClassNotFoundException |
InstantiationException |
IllegalAccessException ex) {
throw new InternalError(ex);
}
return null;
}
});
return instance;
}
项目:holon-core
文件:ContextManager.java
/**
* Ensure scopes registry inited using {@link ServiceLoader}
* @param classLoader ClassLoader
*/
private void ensureInited(final ClassLoader classLoader) {
LinkedHashMap<String, ContextScope> contextScopes = scopes.get(classLoader);
if (contextScopes == null) {
// load using ServiceLoader
contextScopes = AccessController
.doPrivileged(new PrivilegedAction<LinkedHashMap<String, ContextScope>>() {
@Override
public LinkedHashMap<String, ContextScope> run() {
LinkedHashMap<String, ContextScope> result = new LinkedHashMap<>();
LOGGER.debug(() -> "Load scopes for classloader [" + classLoader
+ "] using ServiceLoader with service name: " + ContextScope.class.getName());
ServiceLoader<ContextScope> serviceLoader = ServiceLoader.load(ContextScope.class,
classLoader);
for (final ContextScope provider : serviceLoader) {
if (provider.getName() == null) {
throw new IllegalStateException("Invalid ContextScope, missing scope name: "
+ provider.getClass().getName());
}
result.put(provider.getName(), provider);
LOGGER.debug(() -> "Loaded and registered scope with name [" + provider.getName()
+ "] for classloader [" + classLoader + "]");
}
sortScopes(result);
return result;
}
});
scopes.put(classLoader, contextScopes);
}
}
项目:openjdk-jdk10
文件:XPathFactoryFinder.java
private boolean isObjectModelSupportedBy(final XPathFactory factory,
final String objectModel,
AccessControlContext acc) {
return AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
public Boolean run() {
return factory.isObjectModelSupported(objectModel);
}
}, acc);
}
项目:openjdk-jdk10
文件:FactoryFinder.java
private static <T> T findServiceProvider(final Class<T> type) {
try {
return AccessController.doPrivileged(new PrivilegedAction<T>() {
public T run() {
final ServiceLoader<T> serviceLoader = ServiceLoader.load(type);
final Iterator<T> iterator = serviceLoader.iterator();
if (iterator.hasNext()) {
return iterator.next();
} else {
return null;
}
}
});
} catch(ServiceConfigurationError e) {
// It is not possible to wrap an error directly in
// FactoryConfigurationError - so we need to wrap the
// ServiceConfigurationError in a RuntimeException.
// The alternative would be to modify the logic in
// FactoryConfigurationError to allow setting a
// Throwable as the cause, but that could cause
// compatibility issues down the road.
final RuntimeException x = new RuntimeException(
"Provider for " + type + " cannot be created", e);
final FactoryConfigurationError error =
new FactoryConfigurationError(x, x.getMessage());
throw error;
}
}
项目:hadoop-oss
文件:UserGroupInformation.java
/**
* Run the given action as the user.
* @param <T> the return type of the run method
* @param action the method to execute
* @return the value from the run method
*/
@InterfaceAudience.Public
@InterfaceStability.Evolving
public <T> T doAs(PrivilegedAction<T> action) {
logPrivilegedAction(subject, action);
return Subject.doAs(subject, action);
}