2015-04-09 15 views
9

aşağıdaki Jenkins İş Akışı eklenti komut dosyası:Jenkins iş akışı Groovy komut dosyasında komut dosyası onaylarından kaçınmanın bazı teknikleri nelerdir?

def mapping = readFile 'a file' 
mapping.eachLine { 
     def line = it.tokenize('|') 
     sh "${line[1]}" 
} 

komut onaylar gerekiyor: başarıyla inşa teşebbüs edilmelidir manuel onay verilmiş olması gerekir çalıştırmak komut sahip olmak için

staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods tokenize java.lang.String java.lang.String 
staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods eachLine java.lang.String java.lang.String 

, ve sonra başka bir yapı tekrar denenmelidir, vb.

Büyük komut dosyaları için beyaz listeleme yöntemlerini tutmak için oldukça sıkıcı bir işlemdir.

Komut dosyası onayı ve/veya beyaz liste gerektirmeyen groovy yöntemlerinin bir alt kümesi var mı?

cevap

5

Yeni çalışma yöntemlerini geldikçe onaylamalısınız.

Script Güvenlik eklentisi, önceden beyaz listeye alınmış bazı yöntemlerle birlikte gönderilir. Burada listelediğiniz yöntemler henüz yapılmadı. JENKINS-25804, varsayılan olarak beyaz liste rutin hesaplama yöntemlerini kullanma isteğini izler. Eğer SCM dan komut kaynağını Groovy CPS DSL kullanıyorsanız, kasten tam komut onay modunu kullanmak devre dışı sandbox moduna hiçbir seçenek, yani olduğu

Not. Bunun nedeni, bir yöneticinin, her türlü düzenlemeden sonra tüm senaryoyu ne kadar önemsiz olursa olsun onaylaması gerektiğidir. Buna karşılık, Groovy CPS DSL kaynağında, bir yönetici tarafından yapılan her düzenleme, ayrı bir adım olmadan onaylandığı şekilde hemen kaydedilir.

+0

HATA alıyorum: Mükemmel komut dosyası değerlendirilemedi. org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Komut dosyalarının kullanılmasına izin verilmiyor groovy.lang.Script println java.lang.Object' - bu yanlış yapılandırılmış bir sunucuyu temsil ediyor mu? – MarkHu