2011-05-05 8 views
1

자이 썬을 Java 응용 프로그램에 내장하고 있습니다. 사용자는 일부 파이썬 스크립트를 제출하고 실행할 수 있습니다. 그 스크립트에서 취약한 자바 패키지/클래스에 액세스하지 않도록하고 싶습니다. 또 다른 옵션은 자바 통합을 전혀 사용하지 않는 것입니다.자이 썬에서 특정 Java 패키지 호출을 비활성화하는 방법

답변

2

자이 썬이 사용할 맞춤 클래스 로더를 설정할 가능성이있다. 코드는 다음과 같습니다

final PySystemState state = new PySystemState(); 
state.setClassLoader(new MyClassLoader()); 
Py.setSystemState(state); 

그리고 MyClassLoader에 스크립트에서 액세스하고 어떤 기준에 따라이를 거부되고있는 자바 클래스를 확인할 수 있습니다. 이것은 다음과 같이 보입니다.

public class MyClassLoader extends ClassLoader 
{ 
    @Override 
    protected synchronized Class<?> loadClass(final String className, final boolean resolve) 
     throws ClassNotFoundException 
    { 
    if (className.startsWith("secret.class")) 
    { 
     throw new RuntimeException(); 
    } 

    return MyClassLoader.getSystemClassLoader().loadClass(className); 

    } 
} 
1

액세스 할 수있는 대상을 선택할 수있는 Java 보안 관리자를 살펴보십시오.

관련 문제