Radoslav Ivanov created GROOVY-8135:
---------------------------------------

             Summary: SecureASTCustomizer whitelist does not work
                 Key: GROOVY-8135
                 URL: https://issues.apache.org/jira/browse/GROOVY-8135
             Project: Groovy
          Issue Type: Bug
    Affects Versions: 2.4.8
            Reporter: Radoslav Ivanov


The example [1] throws a SecurityException[2]

Details

1. Source code

SecureASTCustomizer customizer = new SecureASTCustomizer();
customizer.setIndirectImportCheckEnabled(true);
        
List<String> starImportsWhitelist = new ArrayList<String>();
starImportsWhitelist.add("java.lang");
customizer.setStarImportsWhitelist(starImportsWhitelist);
        
CompilerConfiguration cc = new CompilerConfiguration();
cc.addCompilationCustomizers(customizer);
                
ClassLoader parent = getClass().getClassLoader();
GroovyClassLoader loader = new GroovyClassLoader(parent, cc);
                
loader.parseClass("Object[] array = new Object[0]; array.size()");      

2. Exception
Caused by: java.lang.SecurityException: Importing [[Ljava.lang.Object;] is not 
allowed
        at 
org.codehaus.groovy.control.customizers.SecureASTCustomizer.assertImportIsAllowed(SecureASTCustomizer.java:608)
        at 
org.codehaus.groovy.control.customizers.SecureASTCustomizer.access$800(SecureASTCustomizer.java:121)
        at 
org.codehaus.groovy.control.customizers.SecureASTCustomizer$SecuringCodeVisitor.assertExpressionAuthorized(SecureASTCustomizer.java:702)





--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to