當前位置: 首頁>>代碼示例>>Java>>正文


Java AccessController類代碼示例

本文整理匯總了Java中java.security.AccessController的典型用法代碼示例。如果您正苦於以下問題:Java AccessController類的具體用法?Java AccessController怎麽用?Java AccessController使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


AccessController類屬於java.security包,在下文中一共展示了AccessController類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: setProperty

import java.security.AccessController; //導入依賴的package包/類
/**
 * Set property to given value.
 * <p>
 * Specifying a null value will cause the property to be cleared
 *
 * @param name
 * @param value
 * @return previous value
 */
private static String setProperty(final String name, final String value) {

    final PrivilegedAction<String> action;
    if (value != null)
        action = new PrivilegedAction<String>() {

            @Override
            public String run() {

                return System.setProperty(name, value);
            }
        };
    else
        action = new PrivilegedAction<String>() {

            @Override
            public String run() {

                return System.clearProperty(name);
            }
        };
    return AccessController.doPrivileged(action);
}
 
開發者ID:uavorg,項目名稱:uavstack,代碼行數:33,代碼來源:HttpRequest.java

示例2: clearStore

import java.security.AccessController; //導入依賴的package包/類
/**
 * Clear all sessions from the Store.
 */
public void clearStore() {

    if (store == null)
        return;

    try {     
        if (SecurityUtil.isPackageProtectionEnabled()){
            try{
                AccessController.doPrivileged(new PrivilegedStoreClear());
            }catch(PrivilegedActionException ex){
                Exception exception = ex.getException();
                log.error("Exception clearing the Store: " + exception,
                        exception);
            }
        } else {
            store.clear();
        }
    } catch (IOException e) {
        log.error("Exception clearing the Store: " + e, e);
    }

}
 
開發者ID:liaokailin,項目名稱:tomcat7,代碼行數:26,代碼來源:PersistentManagerBase.java

示例3: executeMethod

import java.security.AccessController; //導入依賴的package包/類
/**
 * Executes the method of the specified <code>ApplicationContext</code>
 * @param method The method object to be invoked.
 * @param context The AppliationContext object on which the method
 *                   will be invoked
 * @param params The arguments passed to the called method.
 */
private Object executeMethod(final Method method, 
                             final ApplicationContext context,
                             final Object[] params) 
        throws PrivilegedActionException, 
               IllegalAccessException,
               InvocationTargetException {
                                 
    if (SecurityUtil.isPackageProtectionEnabled()){
       return AccessController.doPrivileged(new PrivilegedExceptionAction<Object>(){
            @Override
            public Object run() throws IllegalAccessException, InvocationTargetException{
                return method.invoke(context,  params);
            }
        });
    } else {
        return method.invoke(context, params);
    }        
}
 
開發者ID:liaokailin,項目名稱:tomcat7,代碼行數:26,代碼來源:ApplicationContextFacade.java

示例4: checkVerboseLogSetting

import java.security.AccessController; //導入依賴的package包/類
/**
 * 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
	}
}
 
開發者ID:j-dong,項目名稱:trashjam2017,代碼行數:21,代碼來源:Log.java

示例5: lookupViaProviders

import java.security.AccessController; //導入依賴的package包/類
private static URLStreamHandler lookupViaProviders(final String protocol) {
    if (gate.get() != null)
        throw new Error("Circular loading of URL stream handler providers detected");

    gate.set(gate);
    try {
        return AccessController.doPrivileged(
            new PrivilegedAction<>() {
                public URLStreamHandler run() {
                    Iterator<URLStreamHandlerProvider> itr = providers();
                    while (itr.hasNext()) {
                        URLStreamHandlerProvider f = itr.next();
                        URLStreamHandler h = f.createURLStreamHandler(protocol);
                        if (h != null)
                            return h;
                    }
                    return null;
                }
            });
    } finally {
        gate.set(null);
    }
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:24,代碼來源:URL.java

示例6: initializeInputMethodSelectionKey

import java.security.AccessController; //導入依賴的package包/類
/**
 * Initializes the input method selection key definition in preference trees
 */
private void initializeInputMethodSelectionKey() {
    AccessController.doPrivileged(new PrivilegedAction<Object>() {
        public Object run() {
            // Look in user's tree
            Preferences root = Preferences.userRoot();
            inputMethodSelectionKey = getInputMethodSelectionKeyStroke(root);

            if (inputMethodSelectionKey == null) {
                // Look in system's tree
                root = Preferences.systemRoot();
                inputMethodSelectionKey = getInputMethodSelectionKeyStroke(root);
            }
            return null;
        }
    });
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:20,代碼來源:InputContext.java

示例7: getAttribute

import java.security.AccessController; //導入依賴的package包/類
@Override
public Object getAttribute(final String name, final int scope) {

	if (name == null) {
		throw new NullPointerException(Localizer.getMessage("jsp.error.attribute.null_name"));
	}

	if (SecurityUtil.isPackageProtectionEnabled()) {
		return AccessController.doPrivileged(new PrivilegedAction<Object>() {
			@Override
			public Object run() {
				return doGetAttribute(name, scope);
			}
		});
	} else {
		return doGetAttribute(name, scope);
	}

}
 
開發者ID:how2j,項目名稱:lazycat,代碼行數:20,代碼來源:PageContextImpl.java

示例8: getDeclaredMethod

import java.security.AccessController; //導入依賴的package包/類
private static Method getDeclaredMethod(final Class cl, final String methodName, final Class[] args,
                                 final int requiredModifierMask,
                                 final int disallowedModifierMask) {
    return (Method) AccessController.doPrivileged(new PrivilegedAction() {
        public Object run() {
            Method method = null;
            try {
                method =
                    cl.getDeclaredMethod(methodName, args);
                    int mods = method.getModifiers();
                    if ((mods & disallowedModifierMask) != 0 ||
                        (mods & requiredModifierMask) != requiredModifierMask) {
                        method = null;
                    }
                    //if (!Modifier.isPrivate(mods) ||
                    //    Modifier.isStatic(mods)) {
                    //    method = null;
                    //}
            } catch (NoSuchMethodException e) {
            // Since it is alright if methodName does not exist,
            // no need to do anything special here.
            }
            return method;
        }
    });
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:27,代碼來源:ObjectStreamClassUtil_1_3.java

示例9: handle

import java.security.AccessController; //導入依賴的package包/類
public void handle(final Callback[] callbacks)
        throws java.io.IOException, UnsupportedCallbackException {
    try {
        java.security.AccessController.doPrivileged
            (new java.security.PrivilegedExceptionAction<Void>() {
            public Void run() throws java.io.IOException,
                                UnsupportedCallbackException {
                ch.handle(callbacks);
                return null;
            }
        }, acc);
    } catch (java.security.PrivilegedActionException pae) {
        if (pae.getException() instanceof java.io.IOException) {
            throw (java.io.IOException)pae.getException();
        } else {
            throw (UnsupportedCallbackException)pae.getException();
        }
    }
}
 
開發者ID:lambdalab-mirror,項目名稱:jdk8u-jdk,代碼行數:20,代碼來源:LoginContext.java

示例10: getClassLoaderInfo

import java.security.AccessController; //導入依賴的package包/類
/**
 * Retrieve the configuration associated with the specified classloader. If
 * it does not exist, it will be created.
 * 
 * @param classLoader The classloader for which we will retrieve or build the 
 *                    configuration
 */
protected synchronized ClassLoaderLogInfo getClassLoaderInfo(ClassLoader classLoader) {
    
    if (classLoader == null) {
        classLoader = ClassLoader.getSystemClassLoader();
    }
    ClassLoaderLogInfo info = classLoaderLoggers.get(classLoader);
    if (info == null) {
        final ClassLoader classLoaderParam = classLoader;
        AccessController.doPrivileged(new PrivilegedAction<Void>() {
            @Override
            public Void run() {
                try {
                    readConfiguration(classLoaderParam);
                } catch (IOException e) {
                    // Ignore
                }
                return null;
            }
        });
        info = classLoaderLoggers.get(classLoader);
    }
    return info;
}
 
開發者ID:sunmingshuai,項目名稱:apache-tomcat-7.0.73-with-comment,代碼行數:31,代碼來源:ClassLoaderLogManager.java

示例11: registerCleaner

import java.security.AccessController; //導入依賴的package包/類
private static synchronized void registerCleaner(PoolCleaner cleaner) {
    unregisterCleaner(cleaner);
    cleaners.add(cleaner);
    if (poolCleanTimer == null) {
        ClassLoader loader = Thread.currentThread().getContextClassLoader();
        try {
            Thread.currentThread().setContextClassLoader(ConnectionPool.class.getClassLoader());
            // Create the timer thread in a PrivilegedAction so that a
            // reference to the web application class loader is not created
            // via Thread.inheritedAccessControlContext
            PrivilegedAction<Timer> pa = new PrivilegedNewTimer();
            poolCleanTimer = AccessController.doPrivileged(pa);
        } finally {
            Thread.currentThread().setContextClassLoader(loader);
        }
    }
    poolCleanTimer.schedule(cleaner, cleaner.sleepTime,cleaner.sleepTime);
}
 
開發者ID:liaokailin,項目名稱:tomcat7,代碼行數:19,代碼來源:ConnectionPool.java

示例12: initMainAppContext

import java.security.AccessController; //導入依賴的package包/類
private final static void initMainAppContext() {
    // On the main Thread, we get the ThreadGroup, make a corresponding
    // AppContext, and instantiate the Java EventQueue.  This way, legacy
    // code is unaffected by the move to multiple AppContext ability.
    AccessController.doPrivileged(new PrivilegedAction<Void>() {
        public Void run() {
            ThreadGroup currentThreadGroup =
                    Thread.currentThread().getThreadGroup();
            ThreadGroup parentThreadGroup = currentThreadGroup.getParent();
            while (parentThreadGroup != null) {
                // Find the root ThreadGroup to construct our main AppContext
                currentThreadGroup = parentThreadGroup;
                parentThreadGroup = currentThreadGroup.getParent();
            }

            mainAppContext = SunToolkit.createNewAppContext(currentThreadGroup);
            return null;
        }
    });
}
 
開發者ID:lambdalab-mirror,項目名稱:jdk8u-jdk,代碼行數:21,代碼來源:AppContext.java

示例13: registerTarget

import java.security.AccessController; //導入依賴的package包/類
/**
 * Registers a target for a tie. Adds the tie to an internal table and calls
 * {@link Tie#setTarget} on the tie object.
 * @param tie the tie to register.
 * @param target the target for the tie.
 */
public void registerTarget(javax.rmi.CORBA.Tie tie, java.rmi.Remote target)
{
    synchronized (exportedServants) {
        // Do we already have this target registered?
        if (lookupTie(target) == null) {
            // No, so register it and set the target...
            exportedServants.put(target,tie);
            tie.setTarget(target);

            // Do we need to instantiate our keep-alive thread?
            if (keepAlive == null) {
                // Yes. Instantiate our keep-alive thread and start
                // it up...
                keepAlive = (KeepAlive)AccessController.doPrivileged(new PrivilegedAction() {
                    public java.lang.Object run() {
                        return new KeepAlive();
                    }
                });
                keepAlive.start();
            }
        }
    }
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:30,代碼來源:Util.java

示例14: WindowsFileSystem

import java.security.AccessController; //導入依賴的package包/類
WindowsFileSystem(WindowsFileSystemProvider provider,
                  String dir)
{
    this.provider = provider;

    // parse default directory and check it is absolute
    WindowsPathParser.Result result = WindowsPathParser.parse(dir);

    if ((result.type() != WindowsPathType.ABSOLUTE) &&
        (result.type() != WindowsPathType.UNC))
        throw new AssertionError("Default directory is not an absolute path");
    this.defaultDirectory = result.path();
    this.defaultRoot = result.root();

    PrivilegedAction<String> pa = new GetPropertyAction("os.version");
    String osversion = AccessController.doPrivileged(pa);
    String[] vers = Util.split(osversion, '.');
    int major = Integer.parseInt(vers[0]);
    int minor = Integer.parseInt(vers[1]);

    // symbolic links available on Vista and newer
    supportsLinks = (major >= 6);

    // enumeration of data streams available on Windows Server 2003 and newer
    supportsStreamEnumeration = (major >= 6) || (major == 5 && minor >= 2);
}
 
開發者ID:lambdalab-mirror,項目名稱:jdk8u-jdk,代碼行數:27,代碼來源:WindowsFileSystem.java

示例15: loadProperties

import java.security.AccessController; //導入依賴的package包/類
/** Load properties from a file.
    This method tries to load properties from the filename give into
    the passed properties object.
    If the file cannot be found or something else goes wrong,
    the method silently fails.
    @param properties The properties bundle to store the values of the
    properties file.
    @param filename The filename of the properties file to load. This
    filename is interpreted as relative to the subdirectory "lib" in
    the JRE directory.
 */
static void loadProperties(final Properties properties,
                           final String filename) {
    if(hasSecurityManager()) {
        try {
            // invoke the privileged action using 1.2 security
            PrivilegedAction<Void> action = new PrivilegedAction<Void>() {
                    public Void run() {
                        loadPropertiesImpl(properties, filename);
                        return null;
                    }
                };
            AccessController.doPrivileged(action);
            if(Printer.debug)Printer.debug("Loaded properties with JDK 1.2 security");
        } catch (Exception e) {
            if(Printer.debug)Printer.debug("Exception loading properties with JDK 1.2 security");
            // try without using JDK 1.2 security
            loadPropertiesImpl(properties, filename);
        }
    } else {
        // not JDK 1.2 security, assume we already have permission
        loadPropertiesImpl(properties, filename);
    }
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:35,代碼來源:JSSecurityManager.java


注:本文中的java.security.AccessController類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。