IIUC, for the moment only GStrings are whitelisted: see
https://github.com/jenkinsci/workflow-plugin/blob/master/cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsWhitelist.java#L54

I guess we'll need feedback of Jesse or Kohsuke as to where they want to go
about that: filing JIRAs for classes to be whitelisted? another way?

IMO this is still a WIP, as you can for example read in the changelog some
weeks ago


   - Flow scripts may now be run in a Groovy sandbox to allow regular users
   to define them without administrator approval. More work is likely
   needed to supply a reasonable method call whitelist out of the box.
   
<https://github.com/jenkinsci/workflow-plugin/blob/master/CHANGES.md#01-beta-5>


Cheers

2015-02-07 8:45 GMT+01:00 Baptiste Mathus <bmat...@batmat.net>:

> Hi,
> As the inline documentation (see the question marks on the right), this is
> because your code runs in sandboxed mode/you're not an admin:
> if *Use Groovy Sandbox* is checked, or you are not an administrator, not
> all APIs will be available.
>
> (Though I somehow agree that at first sight StringBuilder could be
> whitelisted).
>
> About sharing libraries, I guess this doc could help:
> https://github.com/jenkinsci/workflow-plugin/blob/master/cps-global-lib/README.md
>
> HTH
>
> 2015-02-06 21:01 GMT+01:00 Benjamin Muschko <benjamin.musc...@gmail.com>:
>
>> Hi,
>>
>> I was wondering what the technical limitations are for a workflow Groovy
>> script, more specifically:
>>
>> 1) Is is possible to use classes like StringBuilder?
>>
>> Example:
>>
>> stage 'tryout'
>> node {
>>     useStringBuilder()
>> }
>>
>> def useStringBuilder() {
>>     echo "Before usage"
>>     StringBuilder test = new StringBuilder()
>>     echo "After usage"
>> }
>>
>> If I use this method my in my flow.groovy script, the job never seems to
>> print out "After usage". Instead I get the message: 
>> "org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:
>> Scripts not permitted to use new java.lang.StringBuilder". Are "restricted"
>> classes documented somewhere? Why is there a restriction?
>>
>> 2) Can you define your own classes within the Groovy script?
>>
>> stage 'tryout'
>> node {
>>     new HelloWorld().printMessage()
>> }
>>
>> class HelloWorld {
>>     def printMessage() {
>>         echo "Hello World"
>>     }
>> }
>>
>> If I create an instance of a custom class, I get the following message: 
>> "org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:
>> Scripts not permitted to use method groovy.lang.GroovyObject invokeMethod
>> java.lang.String java.lang.Object".
>>
>> 3) Is there a way to reuse methods or classes across multiple jobs? How
>> do you envision reusable code?
>>
>> In all of these cases, I'd like to consume an existing, checked-in Groovy
>> script via "Groovy CPS DSL from SCM".
>>
>> Thanks,
>>
>> Ben
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Jenkins Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to jenkinsci-users+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/jenkinsci-users/2410ce55-ad9d-4d2b-b63c-6ebd633b85b5%40googlegroups.com
>> <https://groups.google.com/d/msgid/jenkinsci-users/2410ce55-ad9d-4d2b-b63c-6ebd633b85b5%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> Baptiste <Batmat> MATHUS - http://batmat.net
> Sauvez un arbre,
> Mangez un castor !
>
> --
> Baptiste <Batmat> MATHUS - http://batmat.net
> Sauvez un arbre,
> Mangez un castor !
> nbsp;!
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/CANWgJS4-OEjM1YujB6FS%2B2hMZc6nw%3DTDsvPotvZk_aT62w_JzA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to