-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
workflow-cps 2.39, script-security 1.33
Outside the sandbox, the following will correctly echo java.util.regex.Pattern
def f = ~/foo/
echo f.class.toString()
But when sandboxed, it barfs with RejectedAccessException: Scripts not permitted to use staticMethod org.codehaus.groovy.runtime.ScriptBytecodeAdapter bitwiseNegate java.lang.Object.
This is distinct to CPS-transformed code - if that's in a @NonCPS method or any other non-CPS sandboxed code, it works fine. Somehow we're misidentifying the ~/foo/ in sandboxed CPS code.
EDIT: Amending to include the fact that staticMethod java.util.regex.Pattern compile java.lang.String is not whitelisted. That should be fixed too.
- is duplicated by
-
JENKINS-37214 switch statement with regexes doesn't work in Pipeline DSL
-
- Resolved
-
- links to
Well, this is goofier than I thought. Turns out StringGroovyMethods.bitwiseNegate(String) actually returns a Pattern. Waaaaaat. So I guess this is simple enough to add to the whitelist.