is there any way avoids redeclared so much "withCredentials" in scripted pipeline

35 views
Skip to first unread message

kakam...@gmail.com

unread,
Oct 21, 2022, 2:45:26 AM10/21/22
to jenkins...@googlegroups.com

hi my friends:


i develop one job to do auto installation,and this job need so much user/password,i refer these credentials in my scripted pipeline like below:

// code placeholder

withCredentials([usernamePassword(credentialsId: 'CDNativePassInfo', usernameVariable: 'CDNATIVE_USER', passwordVariable: 'CDNATIVE_PASSWORD'), usernamePassword(credentialsId: 'ABC_NODE_INFO', usernameVariable: 'ABC_NODE_USER', passwordVariable: 'ABC_NODE_PASSWORD'), usernamePassword(credentialsId: 'BOAPP_TENANT_PWD', usernameVariable: 'BOAPP_TENANT_USER', passwordVariable: 'BOAPP_TENANT_PASSWORD'), usernamePassword(credentialsId: 'CCE_LOGIN_INFO', usernameVariable: 'CCE_LOGIN_USER', passwordVariable: 'CCE_LOGIN_PASSWORD'), usernamePassword(credentialsId: 'CDTEMPLATEBO_JWTKEY', usernameVariable: 'CDTEMPLATEBO_JWTKEY_NAME', passwordVariable: 'CDTEMPLATEBO_JWTKEY_VALUE'), usernamePassword(credentialsId: 'CDBATCHFILEPROCESSBO_JWTKEY', usernameVariable: 'CDBATCHFILEPROCESSBO_JWTKEY_NAME', passwordVariable: 'CDBATCHFILEPROCESSBO_JWTKEY_VALUE'), usernamePassword(credentialsId: 'CDCODEMACHINE_factor', usernameVariable: 'CDCODEMACHINE_factor_NAME', passwordVariable: 'CDCODEMACHINE_factor_VALUE'), usernamePassword(credentialsId: 'CDENERGYPREDICTION_clientsecret', usernameVariable: 'CDENERGYPREDICTION_clientsecret_NAME', passwordVariable: 'CDENERGYPREDICTION_clientsecret_VALUE'), usernamePassword(credentialsId: 'CDENERGYPREDICTION_factor', usernameVariable: 'CDENERGYPREDICTION_factor_NAME', passwordVariable: 'CDENERGYPREDICTION_factor_VALUE'), usernamePassword(credentialsId: 'CDAIRFLOW_factor', usernameVariable: 'CDAIRFLOW_factor_NAME', passwordVariable: 'CDAIRFLOW_factor_VALUE'), usernamePassword(credentialsId: 'CDAIRFLOW_fernet_key', usernameVariable: 'CDAIRFLOW_fernet_key_NAME', passwordVariable: 'CDAIRFLOW_fernet_key_VALUE'), usernamePassword(credentialsId: 'ABC_MYSQL_INFO', usernameVariable: 'ABC_MYSQL_USER', passwordVariable: 'ABC_MYSQL_PASSWORD'), usernamePassword(credentialsId: 'COLDMACHINE_OAUTH', usernameVariable: 'COLDMACHINE_OAUTH_NAME', passwordVariable: 'COLDMACHINE_OAUTH_PWD'), usernamePassword(credentialsId: 'ENERGYPREDICTION_OAUTH', usernameVariable: 'ENERGYPREDICTION_OAUTH_NAME', passwordVariable: 'ENERGYPREDICTION_OAUTH_PWD'), usernamePassword(credentialsId: 'SECURITYVOICE_OAUTH', usernameVariable: 'SECURITYVOICE_OAUTH_NAME', passwordVariable: 'SECURITYVOICE_OAUTH_PWD'), usernamePassword(credentialsId: 'NATIVEBO_DB_PWD', usernameVariable: 'NATIVEBO_DB_NOTCARE', passwordVariable: 'NATIVEBO_DB_PWD'), usernamePassword(credentialsId: 'MYSQL_LOGIN_INFO', usernameVariable: 'MYSQL_UserName', passwordVariable: 'MYSQL_PassWord'), usernamePassword(credentialsId: 'OPENGAUSS_ADMIN_INFO', usernameVariable: 'OPENGAUSS_ADMIN_USER', passwordVariable: 'OPENGAUSS_ADMIN_PWD') ])

{ //to do something }

i think this code style is not clean code,is there any clean way to refer many credentials in groovy? more clean and beautiful way

Ivan Fernandez Calvo

unread,
Oct 21, 2022, 12:22:27 PM10/21/22
to Jenkins Users

Your script is doing more than o thing, your are exposing your credentials to more than one process, so your have a security issue in progress, but you do not know it yet. It is absurd to pass that amount of credential to one script.
Reply all
Reply to author
Forward
0 new messages