微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java.security.SecureClassLoader的实例源码

项目:robopong    文件ClassFileManager.java   
/**
 * Will be used by us to get the class loader for our
 * compiled class. It creates an anonymous class
 * extending the SecureClassLoader which uses the
 * byte code created by the compiler and stored in
 * the JavaClassObject,and returns the Class for it
 */
@Override
public ClassLoader getClassLoader(Location location) {
    return new SecureClassLoader() {
        @Override
        protected Class<?> findClass(String name) throws ClassNotFoundException {
            byte[] b = jclassObject.getBytes();
            URL url = null;
            try {
                url = new URL("file://" + DynaCompTest.PADDLES_CODESOURCE);
            } catch (MalformedURLException e) {
                throw new RuntimeException(e);
            }
            return super.defineClass(name,jclassObject.getBytes(),b.length,new CodeSource(url,new Certificate[0]));
        }
    };
}
项目:Thriftypaxos    文件SourceCompiler.java   
@Override
public ClassLoader getClassLoader(Location location) {
    return new SecureClassLoader() {
        @Override
        protected Class<?> findClass(String name)
                throws ClassNotFoundException {
            byte[] bytes = classObject.getBytes();
            return super.defineClass(name,bytes,bytes.length);
        }
    };
}
项目:linden    文件ClassFileManager.java   
@Override
public ClassLoader getClassLoader(Location location) {
  return new SecureClassLoader() {
    @Override
    protected Class<?> findClass(String name)
        throws ClassNotFoundException {
      byte[] b = jclassObject.getBytes();
      return super.defineClass(name,jclassObject
          .getBytes(),b.length);
    }
  };
}
项目:JavaJail    文件RAMClassFileManager.java   
/**
 * Will be used by us to get the class loader for our
 * compiled class. It creates an anonymous class
 * extending the SecureClassLoader which uses the
 * byte code created by the compiler and stored in
 * the RAMClassFile,and returns the Class for it
 */
@Override
public ClassLoader getClassLoader(Location location) {
    return new SecureClassLoader() {
       @Override
       protected Class<?> findClass(String name)
            throws ClassNotFoundException {
            byte[] b = contents.get(name).getBytes();
            return super.defineClass(name,b,b.length);
       }
        };
}
项目:builderator    文件TestCompiler.java   
@Override
public ClassLoader getClassLoader(Location location) {
    return new SecureClassLoader() {
        @Override
        protected Class<?> findClass(String name) throws ClassNotFoundException {
            byte[] b = objects.get(name).getBytes();
            return super.defineClass(name,objects.get(name).getBytes(),b.length);
        }
    };
}
项目:agrona    文件ClassFileManager.java   
public ClassLoader getClassLoader(final Location location)
{
    return new SecureClassLoader()
    {
        protected Class<?> findClass(final String name)
        {
            final byte[] buffer = classObjectByNameMap.get(name).getBytes();
            return super.defineClass(name,buffer,buffer.length);
        }
    };
}
项目:jpexs-decompiler    文件ClassFileManager.java   
/**
 * Will be used by us to get the class loader for our compiled class. It
 * creates an anonymous class extending the SecureClassLoader which uses the
 * byte code created by the compiler and stored in the JavaClassObject,and
 * returns the Class for it
 *
 * @param location
 * @return
 */
@Override
public ClassLoader getClassLoader(Location location) {
    return new SecureClassLoader() {
        @Override
        protected Class<?> findClass(String name)
                throws ClassNotFoundException {
            byte[] b = jclassObject.getBytes();
            return super.defineClass(name,jclassObject
                    .getBytes(),b.length);
        }
    };
}
项目:nocket    文件ClassFileManager.java   
/**
 * Will be used by us to get the class loader for our compiled class. It
 * creates an anonymous class extending the SecureClassLoader which uses the
 * byte code created by the compiler and stored in the JavaClassObject,and
 * returns the Class for it
 *
 * @param location the location
 * @return the class loader
 */
@Override
public ClassLoader getClassLoader(Location location) {
    return new SecureClassLoader() {
        @Override
        protected Class<?> findClass(String name)
                throws ClassNotFoundException {
            byte[] b = jclassObject.getBytes();
            return super.defineClass(name,b.length);
        }
    };
}
项目:mechaverse    文件JavaCompilerUtil.java   
@Override
public ClassLoader getClassLoader(Location location) {
  return new SecureClassLoader() {
    @Override
    protected Class<?> findClass(String name) throws ClassNotFoundException {
      byte[] b = jclassObject.getBytes();
      return super.defineClass(name,b.length);
    }
  };
}
项目:logging    文件AbstractFoundationLoggingMarker.java   
/**
 * Will be used by us to get the class loader for our compiled class. It
 * creates an anonymous class extending the SecureClassLoader which uses
 * the byte code created by the compiler and stored in the
 * JavaClassObject,and returns the Class for it
 */
@Override
public ClassLoader getClassLoader(Location location) {
    return new SecureClassLoader() {
        @Override
        protected Class<?> findClass(String name) throws ClassNotFoundException {
            byte[] b = jclassObject.getBytes();
            return super.defineClass(name,b.length);
        }
    };
}
项目:java_jail    文件RAMClassFileManager.java   
/**
 * Will be used by us to get the class loader for our
 * compiled class. It creates an anonymous class
 * extending the SecureClassLoader which uses the
 * byte code created by the compiler and stored in
 * the RAMClassFile,b.length);
       }
        };
}
项目:Syntax-parser    文件ClassFileManager.java   
/**
 * Will be used by us to get the class loader for our
 * compiled class. It creates an anonymous class
 * extending the SecureClassLoader which uses the
 * byte code created by the compiler and stored in
 * the JavaClassObject,and returns the Class for it
 */
@Override
public ClassLoader getClassLoader(Location location) {
    return new SecureClassLoader() {

        @Override
        protected Class<?> findClass(String name) throws ClassNotFoundException {
            byte[] b = jclassObject.getBytes();
            return super.defineClass(name,b.length);
        }
    };
}
项目:elasticsearch-lang-java    文件MemoryJavaFileManager.java   
@Override
public ClassLoader getClassLoader(Location location) {
    return new SecureClassLoader() {
        @Override
        protected Class<?> findClass(String name) throws ClassNotFoundException {
            byte[] b = javaFileObject.getBytes();
            if (b != null && b.length > 0) {
                return super.defineClass(name,javaFileObject.getBytes(),b.length);
            } else {
                return super.findClass(name);
            }
        }
    };
}
项目:Openjsharp    文件JavaAdapterServices.java   
private static MethodHandle createnopermissionsInvoker() {
    final String className = "nopermissionsInvoker";

    final ClassWriter cw = new ClassWriter(ClassWriter.COmpuTE_FRAMES | ClassWriter.COmpuTE_MAXS);
    cw.visit(Opcodes.V1_7,ACC_PUBLIC | ACC_SUPER | ACC_FINAL,className,null,"java/lang/Object",null);
    final Type objectType = Type.getType(Object.class);
    final Type methodHandleType = Type.getType(MethodHandle.class);
    final InstructionAdapter mv = new InstructionAdapter(cw.visitMethod(ACC_PUBLIC | ACC_STATIC,"invoke",Type.getmethodDescriptor(Type.VOID_TYPE,methodHandleType,objectType),null));
    mv.visitCode();
    mv.visitvarInsn(ALOAD,0);
    mv.visitvarInsn(ALOAD,1);
    mv.invokevirtual(methodHandleType.getInternalName(),"invokeExact",Type.getmethodDescriptor(
            Type.VOID_TYPE,false);
    mv.visitInsn(RETURN);
    mv.visitMaxs(0,0);
    mv.visitEnd();
    cw.visitEnd();
    final byte[] bytes = cw.toByteArray();

    final ClassLoader loader = AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
        @Override
        public ClassLoader run() {
            return new SecureClassLoader(null) {
                @Override
                protected Class<?> findClass(final String name) throws ClassNotFoundException {
                    if(name.equals(className)) {
                        return defineClass(name,bytes.length,new ProtectionDomain(
                                new CodeSource(null,(CodeSigner[])null),new Permissions()));
                    }
                    throw new ClassNotFoundException(name);
                }
            };
        }
    });

    try {
        return MethodHandles.lookup().findStatic(Class.forName(className,true,loader),MethodType.methodType(void.class,MethodHandle.class,Object.class));
    } catch(final ReflectiveOperationException e) {
        throw new AssertionError(e.getMessage(),e);
    }
}
项目:openjdk-jdk10    文件CanAccesstest.java   
protected TestLoader() throws Exception {
    Constructor<?> ctor = SecureClassLoader.class.getDeclaredConstructor();
    assertFalse(ctor.canAccess(null));
    assertFalse(ctor.trySetAccessible());
}
项目:openjdk-jdk10    文件JavaAdapterServices.java   
private static MethodHandle createnopermissionsInvoker() {
    final String className = "nopermissionsInvoker";

    final ClassWriter cw = new ClassWriter(ClassWriter.COmpuTE_FRAMES | ClassWriter.COmpuTE_MAXS);
    cw.visit(Opcodes.V1_7,new Permissions()));
                    }
                    throw new ClassNotFoundException(name);
                }
            };
        }
    });

    try {
        return MethodHandles.publicLookup().findStatic(Class.forName(className,e);
    }
}
项目:openjdk9    文件JavaAdapterServices.java   
private static MethodHandle createnopermissionsInvoker() {
    final String className = "nopermissionsInvoker";

    final ClassWriter cw = new ClassWriter(ClassWriter.COmpuTE_FRAMES | ClassWriter.COmpuTE_MAXS);
    cw.visit(Opcodes.V1_7,e);
    }
}
项目:kaziranga    文件JavaAdapterServices.java   
private static MethodHandle createnopermissionsInvoker() {
    final String className = "nopermissionsInvoker";

    final ClassWriter cw = new ClassWriter(ClassWriter.COmpuTE_FRAMES | ClassWriter.COmpuTE_MAXS);
    cw.visit(Opcodes.V1_7,e);
    }
}
项目:lookaside_java-1.8.0-openjdk    文件JavaAdapterServices.java   
private static MethodHandle createnopermissionsInvoker() {
    final String className = "nopermissionsInvoker";

    final ClassWriter cw = new ClassWriter(ClassWriter.COmpuTE_FRAMES | ClassWriter.COmpuTE_MAXS);
    cw.visit(Opcodes.V1_7,e);
    }
}
项目:jdk8u_nashorn    文件JavaAdapterServices.java   
private static MethodHandle createnopermissionsInvoker() {
    final String className = "nopermissionsInvoker";

    final ClassWriter cw = new ClassWriter(ClassWriter.COmpuTE_FRAMES | ClassWriter.COmpuTE_MAXS);
    cw.visit(Opcodes.V1_7,e);
    }
}
项目:infobip-open-jdk-8    文件JavaAdapterServices.java   
private static MethodHandle createnopermissionsInvoker() {
    final String className = "nopermissionsInvoker";

    final ClassWriter cw = new ClassWriter(ClassWriter.COmpuTE_FRAMES | ClassWriter.COmpuTE_MAXS);
    cw.visit(Opcodes.V1_7,e);
    }
}
项目:OLD-OpenJDK8    文件JavaAdapterServices.java   
private static MethodHandle createnopermissionsInvoker() {
    final String className = "nopermissionsInvoker";

    final ClassWriter cw = new ClassWriter(ClassWriter.COmpuTE_FRAMES | ClassWriter.COmpuTE_MAXS);
    cw.visit(Opcodes.V1_7,0);
    mv.visitEnd();
    cw.visitEnd();
    final byte[] bytes = cw.toByteArray();

    final ClassLoader loader = AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
        @Override
        public ClassLoader run() {
            return new SecureClassLoader(null) {
                @Override
                protected Class<?> findClass(String name) throws ClassNotFoundException {
                    if(name.equals(className)) {
                        return defineClass(name,Object.class));
    } catch(ReflectiveOperationException e) {
        throw new AssertionError(e.getMessage(),e);
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。