私はいくつかのJava標準ライブラリメソッドを使用する必要があるJenkinsfileを構築しています。Jenkins JenkinsfileサンドボックスでJavaクラス(java.net.URLなど)を使用するにはどうすればよいですか?
例えば、ビルドスクリプトの1ビットで、ユーザー入力として提供されたURLからホスト名を抽出する必要があります。私はいくつかの他の文字列の内容の一部の文字列の内容を置き換えるためにjava.lang.Stringでを使用したいスクリプトの別のビットで
URI u = new URI(artifactoryIndexURL)
:私はこのような何かをしたいと思います。
残念ながらクラスが記載されている白(またはそのような何か)ではないと表示されます。
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use new java.net.URI java.lang.String
at org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.StaticWhitelist.rejectNew(StaticWhitelist.java:187)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onNewInstance(SandboxInterceptor.java:130)
at org.kohsuke.groovy.sandbox.impl.Checker$3.call(Checker.java:191)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedConstructor(Checker.java:188)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.constructorCall(SandboxInvoker.java:20)
ジェンキンスデフォルトのサンドボックスは、メソッドの非常に小さなコアが、すべてを除くように見えます。私がJenkinsfileで特定のJavaクラスを実行できるようにする方法はありますか?私のJenkinsサーバーで完全な管理者権限を取得する必要はありませんか?この問題を回避する通常の方法は何ですか?