-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
Jenkins version - 2.289.3 (Windows server 2019, oracle jdk version "1.8.0_212")
vsphere-cloud-plugin plugin version - 2.25
The plugin depends on network library yavijava
https://github.com/jenkinsci/vsphere-cloud-plugin/blob/master/pom.xml#L95-L96
The yavijava supports two types of http clients:
CloseableHttpClient
HttpURLConnection - is default
The HttpURLConnection client's behaviour can be impacted by system-wide cookie handler CookieManager:
https://docs.oracle.com/javase/8/docs/api/java/net/CookieManager.html The major problem is that the CookieManager overlaps logic provided by [WSClient] to setup http header Cookie. Global CookieManager know nothing about logic of vsphere-cloud-plugin and fill all http headers with stored cookies, as result vsphere center rejects login requests with error:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<soapenv:Fault>
<faultcode>ServerFaultCode</faultcode>
<faultstring>Cannot complete login due to an incorrect user name or password.</faultstring>
<detail>
<InvalidLoginFault xmlns="urn:vim25" xsi:type="InvalidLogin">
<faultMessage>
<key>vim.fault.InvalidLoginWithReason</key>
<arg>
<key>1</key>
<value xsi:type="xsd:string">vim.fault.InvalidLoginReasonRegisterFailed</value>
</arg>
<message>Login failed because the session could not be re-registered.</message>
</faultMessage>
</InvalidLoginFault>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
The vsphere-cloud-plugin does not use CookieManager, but there is no guarantee that other plugins avoid it. Example:
https://github.com/jenkinsci/parameterized-remote-trigger-plugin/blob/master/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java#L158-L159
As workaroud we can switch to CloseableHttpClient http client.
I have prepared draft pull request:
https://github.com/jenkinsci/vsphere-cloud-plugin/pull/133
Please also pay attention to the issue in repository yavijava: