2015-04-09 17 views
9

जेनकींस कार्यप्रवाह प्लगइन के लिए निम्न स्क्रिप्ट:जेनकिंस वर्कफ़्लो ग्रोवी स्क्रिप्ट के साथ स्क्रिप्ट अनुमोदन से बचने के लिए कुछ तकनीकें क्या हैं?

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

स्क्रिप्ट अनुमोदन की आवश्यकता है:

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 

आदेश स्क्रिप्ट चलाने के सफलतापूर्वक निर्माण का प्रयास किया जाना चाहिए, एक मैनुअल अनुमोदन प्रदान किया जाना चाहिए करने के लिए, और फिर एक और निर्माण फिर से प्रयास किया जाना चाहिए, और इसी तरह।

बड़ी लिपियों के लिए यह सफेद लिस्टिंग विधियों को रखने के लिए एक कठिन प्रक्रिया है।

क्या ग्रोवी विधियों का एक सबसेट है जिसमें स्क्रिप्ट अनुमोदन और/या सफेद सूची की आवश्यकता नहीं है?

उत्तर

5

आपको आने वाले नए रन विधियों को स्वीकार करने की आवश्यकता है।

स्क्रिप्ट सुरक्षा प्लगइन कुछ तरीकों से पहले से ही श्वेतसूची के साथ जहाज चलाता है। यहां सूचीबद्ध विधियों ने इसे अभी तक नहीं बनाया है। JENKINS-25804 डिफ़ॉल्ट रूप से नियमित कम्प्यूटेशनल विधियों को श्वेतसूची की इच्छा ट्रैक करता है।

नोट अगर आप स्क्रिप्ट स्रोत एससीएम से ग्रूवी सीपीएस डीएसएल उपयोग कर रहे हैं, वहाँ जानबूझकर अक्षम sandbox मोड के लिए कोई विकल्प नहीं है, यानी पूरे स्क्रिप्ट अनुमोदन मोड का उपयोग करने के लिए है कि। ऐसा इसलिए है क्योंकि प्रत्येक प्रशासक के बाद एक प्रशासक को पूरी स्क्रिप्ट को स्वीकृति देने की आवश्यकता होगी, भले ही कितना मामूली हो। इसके विपरीत, ग्रोवी सीपीएस डीएसएल स्रोत के साथ, व्यवस्थापक द्वारा किए गए प्रत्येक संपादन को तुरंत एक अलग चरण के बिना अनुमोदित के रूप में दर्ज किया जाता है।

+0

मुझे 'त्रुटि मिलती है: ग्रोवी स्क्रिप्ट का मूल्यांकन करने में विफल। org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: स्क्रिप्ट्स को विधि groovy.lang.Script println java.lang.Object' का उपयोग करने की अनुमति नहीं है - क्या यह एक गलत कॉन्फ़िगर सर्वर का प्रतिनिधित्व करता है? – MarkHu

संबंधित मुद्दे