ScriptEngineSecurityTest.java 文件源码

java
阅读 22 收藏 0 点赞 0 评论 0

项目:openjdk-jdk10 作者:
@Test
public void fakeProxySubclassAccessCheckTest() {
    if (System.getSecurityManager() == null) {
        // pass vacuously
        return;
    }

    final ScriptEngineManager m = new ScriptEngineManager();
    final ScriptEngine e = m.getEngineByName("nashorn");

    e.put("name", ScriptEngineSecurityTest.class.getName());
    e.put("cl", ScriptEngineSecurityTest.class.getClassLoader());
    e.put("intfs", new Class[] { Runnable.class });

    final String getClass = "Java.type(name + '$FakeProxy').getProxyClass(cl, intfs);";

    // Should not be able to call static methods of Proxy via fake subclass
    try {
        e.eval(getClass);
        fail("should have thrown SecurityException");
    } catch (final Exception exp) {
        if (! (exp instanceof SecurityException)) {
            fail("SecurityException expected, got " + exp);
        }
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号