View Javadoc
1   package org.metricshub.winrm.service.client.encryption;
2   
3   /*-
4    * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲
5    * WinRM Java Client
6    * ჻჻჻჻჻჻
7    * Copyright 2023 - 2024 Metricshub
8    * ჻჻჻჻჻჻
9    * Licensed under the Apache License, Version 2.0 (the "License");
10   * you may not use this file except in compliance with the License.
11   * You may obtain a copy of the License at
12   *
13   *      http://www.apache.org/licenses/LICENSE-2.0
14   *
15   * Unless required by applicable law or agreed to in writing, software
16   * distributed under the License is distributed on an "AS IS" BASIS,
17   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18   * See the License for the specific language governing permissions and
19   * limitations under the License.
20   * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱
21   */
22  
23  import org.apache.http.HttpEntityEnclosingRequest;
24  import org.apache.http.entity.BasicHttpEntity;
25  import org.apache.http.protocol.HTTP;
26  
27  /**
28   * Code from io.cloudsoft.winrm4j.client.encryption.AsyncHttpEncryptionAwareConduit.EncryptionAwareHttpEntity
29   * release 0.12.3 @link https://github.com/cloudsoft/winrm4j
30   */
31  public abstract class EncryptionAwareHttpEntity extends BasicHttpEntity {
32  
33  	public void refreshHeaders(final HttpEntityEnclosingRequest request) {
34  		final ContentWithType appropriate = getAppropriate();
35  		setContentLength(appropriate.getPayload().length);
36  
37  		request.setHeader(HTTP.CONTENT_LEN, String.valueOf(appropriate.getPayload().length));
38  		request.setHeader(HTTP.CONTENT_TYPE, appropriate.getContentType());
39  	}
40  
41  	protected abstract ContentWithType getAppropriate();
42  }