001
014
015 package com.liferay.portal.kernel.util;
016
017 import com.liferay.portal.kernel.security.pacl.PACLConstants;
018 import com.liferay.portal.kernel.security.pacl.permission.PortalRuntimePermission;
019
020 import java.net.URL;
021 import java.net.URLClassLoader;
022
023 import java.security.Permission;
024
025
028 public class PortalClassLoaderUtil {
029
030 public static ClassLoader getClassLoader() {
031 SecurityManager securityManager = System.getSecurityManager();
032
033 if (securityManager != null) {
034 Permission permission = new RuntimePermission(
035 PACLConstants.RUNTIME_PERMISSION_GET_CLASSLOADER.concat(
036 StringPool.PERIOD).concat("portal"));
037
038 securityManager.checkPermission(permission);
039 }
040
041 return _classLoader;
042 }
043
044 public static void setClassLoader(ClassLoader classLoader) {
045 PortalRuntimePermission.checkSetBeanProperty(
046 PortalClassLoaderUtil.class);
047
048 if (ServerDetector.isJOnAS() && JavaDetector.isJDK6()) {
049 _classLoader = new URLClassLoader(new URL[0], classLoader);
050 }
051 else {
052 _classLoader = classLoader;
053 }
054 }
055
056 private static ClassLoader _classLoader;
057
058 }