2016-12-16 100 views
0

目前,我在一個.net網站點擊一個按鈕後,觸發了幾個帶參數的作業。然後,該作業由匿名用戶啓動。如何使用用戶憑證遠程登錄jenkins?

這是觸發任務的代碼:

protected void Btn_Click(object sender, EventArgs e) 
    { 


     string userName = txtUser.Text; 
     string password = txtPassword.Text; 
     userName = Base64Util.Base64Encode(userName); 
     password = Base64Util.Base64Encode(password); 

     string url = Constants.build_jenkins_url + "/job/BUILD1/buildWithParameters?token=authtoken&Checkpoint=" + checkpointInput.Text + "&Git files=false" + "&SHA=None" + "&Build CST=true" + "&CST name=" + CSTNameInput.Text + "&Clean build=true" + "&Run sequences=false&user=" + userName + "&passwd=" + password; 
     HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); 
      webRequest.Method = "POST"; 
     HttpWebResponse resp = (HttpWebResponse)webRequest.GetResponse(); 
      Response.Redirect(Constants.build_jenkins_url, "_blank", "fullscreen=1,menubar=yes,toolbar=yes,scrollbars=yes,status=yes,titlebar=yes"); 

     } 

我想觸發與用戶憑據的作業。在那種情況下,詹金斯會告訴我,詹金斯開始工作。你們有什麼想法如何實現這一目標?

回答

0
Use this approach: Setting Basic Authentication, it will work 


      URL urldemo = new URL(buildUrl); 
      URLConnection yc = urldemo.openConnection(); 
      String userpass = userName + ":" + password; 
      String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes()); 

      yc.setRequestProperty ("Authorization", basicAuth); 
      BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream())); 
相關問題