Hi, To allow certain signatures in Groovy Sandbox go to "Manage Jenkins -> In-process Script Approval". Please note that if you catch this kind of exceptions the signatures will not appear there.
Timur суббота, 7 февраля 2015 г., 10:57:08 UTC+3 пользователь Baptiste Mathus написал: > > 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 <[email protected] <javascript:> > >: > >> 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 <[email protected] >> <javascript:>>: >> >>> 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 [email protected] <javascript:>. >>> 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/d9d3c19e-cddd-4d25-b4dc-38ddddbb929f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
