@sap-ux/axios-extension 1.12.5 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abap/catalog/v2-catalog-service.js +3 -5
- package/dist/abap/ui5-abap-repository-service.js +1 -1
- package/dist/base/patchTls.d.ts +25 -0
- package/dist/base/patchTls.js +52 -0
- package/dist/cacerts/sap-global-root-ca.d.ts +7 -0
- package/dist/cacerts/sap-global-root-ca.js +54 -0
- package/dist/factory.js +4 -0
- package/package.json +2 -2
|
@@ -99,7 +99,8 @@ class V2CatalogService extends base_1.CatalogService {
|
|
|
99
99
|
$format: 'json',
|
|
100
100
|
$filter: `Title eq '${title}' and TechnicalServiceVersion eq ${version}`
|
|
101
101
|
};
|
|
102
|
-
const
|
|
102
|
+
const requestPath = this.entitySet ? `/${this.entitySet}` : '/ServiceCollection';
|
|
103
|
+
const response = yield this.get(requestPath, { params });
|
|
103
104
|
const services = response.odata();
|
|
104
105
|
if (services.length > 1) {
|
|
105
106
|
// #14793: Fix for user created multi namespaces for the same service
|
|
@@ -126,9 +127,6 @@ class V2CatalogService extends base_1.CatalogService {
|
|
|
126
127
|
*/
|
|
127
128
|
getServiceAnnotations({ id, title, path }) {
|
|
128
129
|
return __awaiter(this, void 0, void 0, function* () {
|
|
129
|
-
if (!this.entitySet) {
|
|
130
|
-
yield this.determineEntitySet();
|
|
131
|
-
}
|
|
132
130
|
if (!id) {
|
|
133
131
|
const ServiceConfig = yield this.findService({ title, path });
|
|
134
132
|
if (ServiceConfig) {
|
|
@@ -136,7 +134,7 @@ class V2CatalogService extends base_1.CatalogService {
|
|
|
136
134
|
}
|
|
137
135
|
}
|
|
138
136
|
if (id) {
|
|
139
|
-
const response = yield this.get(
|
|
137
|
+
const response = yield this.get(`/ServiceCollection('${encodeURIComponent(id)}')/Annotations`, {
|
|
140
138
|
params: { $format: 'json' }
|
|
141
139
|
});
|
|
142
140
|
return response.odata();
|
|
@@ -119,7 +119,7 @@ class Ui5AbapRepositoryService extends odata_service_1.ODataService {
|
|
|
119
119
|
return __awaiter(this, void 0, void 0, function* () {
|
|
120
120
|
const info = yield this.getInfo(bsp.name);
|
|
121
121
|
const payload = this.createPayload(archive, bsp.name, bsp.description || 'Deployed with SAP Fiori tools', info ? info.Package : bsp.package);
|
|
122
|
-
this.log.debug(`Payload:\n${
|
|
122
|
+
this.log.debug(`Payload:\n ID: ${this.publicUrl}/Repositories('${bsp.name}') \n ABAP Package: ${info ? info.Package : bsp.package}`);
|
|
123
123
|
const config = this.createConfig(bsp.transport, testMode, safeMode);
|
|
124
124
|
const frontendUrl = this.getAbapFrontendUrl();
|
|
125
125
|
try {
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test for sap domains and patching to trust SAPs root certificate
|
|
3
|
+
*
|
|
4
|
+
*/
|
|
5
|
+
export declare class TlsPatch {
|
|
6
|
+
private static _patched;
|
|
7
|
+
/**
|
|
8
|
+
* Test if the patch is already applied.
|
|
9
|
+
*
|
|
10
|
+
* @returns true if the patch is already applied
|
|
11
|
+
*/
|
|
12
|
+
static get isPatched(): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Test if the patch is required.
|
|
15
|
+
*
|
|
16
|
+
* @param url the url to test
|
|
17
|
+
* @returns true if the patch is required
|
|
18
|
+
*/
|
|
19
|
+
static isPatchRequired(url: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Monkey patching the secure context to also support SAPs root CA.
|
|
22
|
+
*/
|
|
23
|
+
static apply(): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=patchTls.d.ts.map
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TlsPatch = void 0;
|
|
7
|
+
const tls_1 = __importDefault(require("tls"));
|
|
8
|
+
const sap_global_root_ca_1 = require("../cacerts/sap-global-root-ca");
|
|
9
|
+
/**
|
|
10
|
+
* Test for sap domains and patching to trust SAPs root certificate
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
13
|
+
class TlsPatch {
|
|
14
|
+
/**
|
|
15
|
+
* Test if the patch is already applied.
|
|
16
|
+
*
|
|
17
|
+
* @returns true if the patch is already applied
|
|
18
|
+
*/
|
|
19
|
+
static get isPatched() {
|
|
20
|
+
return TlsPatch._patched;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Test if the patch is required.
|
|
24
|
+
*
|
|
25
|
+
* @param url the url to test
|
|
26
|
+
* @returns true if the patch is required
|
|
27
|
+
*/
|
|
28
|
+
static isPatchRequired(url) {
|
|
29
|
+
return !TlsPatch.isPatched && url && (url.includes('.sap.corp') || url.includes('.net.sap'));
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Monkey patching the secure context to also support SAPs root CA.
|
|
33
|
+
*/
|
|
34
|
+
static apply() {
|
|
35
|
+
if (TlsPatch.isPatched) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const origCreateSecureContext = tls_1.default.createSecureContext;
|
|
39
|
+
tls_1.default.createSecureContext = (options) => {
|
|
40
|
+
const context = origCreateSecureContext(options);
|
|
41
|
+
const pem = sap_global_root_ca_1.sapGlobalRootCaCert.replace(/\r\n/g, '\n');
|
|
42
|
+
const certs = pem.match(/-----BEGIN CERTIFICATE-----\n[\s\S]+?\n-----END CERTIFICATE-----/g);
|
|
43
|
+
certs.forEach((cert) => {
|
|
44
|
+
context.context.addCACert(cert.trim());
|
|
45
|
+
});
|
|
46
|
+
return context;
|
|
47
|
+
};
|
|
48
|
+
TlsPatch._patched = true;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.TlsPatch = TlsPatch;
|
|
52
|
+
//# sourceMappingURL=patchTls.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SAP Global Root CA certificate is publicly available from:
|
|
3
|
+
* https://github.com/SAP/SapMachine/blob/sapmachine/src/java.base/share/data/cacerts/sapglobalrootca
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
export declare const sapGlobalRootCaCert = "\nOwner: CN=SAP Global Root CA, O=SAP AG, L=Walldorf, C=DE\nIssuer: CN=SAP Global Root CA, O=SAP AG, L=Walldorf, C=DE\nSerial number: 5d03d93d31615d8f488b3970c78f1b99\nValid from: Thu Apr 26 15:41:55 GMT 2012 until: Mon Apr 26 15:46:27 GMT 2032\nSignature algorithm name: SHA256withRSA\nSubject Public Key Algorithm: 4096-bit RSA key\nVersion: 3\n-----BEGIN CERTIFICATE-----\n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\n-----END CERTIFICATE-----\n";
|
|
7
|
+
//# sourceMappingURL=sap-global-root-ca.d.ts.map
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sapGlobalRootCaCert = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* SAP Global Root CA certificate is publicly available from:
|
|
6
|
+
* https://github.com/SAP/SapMachine/blob/sapmachine/src/java.base/share/data/cacerts/sapglobalrootca
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
exports.sapGlobalRootCaCert = `
|
|
10
|
+
Owner: CN=SAP Global Root CA, O=SAP AG, L=Walldorf, C=DE
|
|
11
|
+
Issuer: CN=SAP Global Root CA, O=SAP AG, L=Walldorf, C=DE
|
|
12
|
+
Serial number: 5d03d93d31615d8f488b3970c78f1b99
|
|
13
|
+
Valid from: Thu Apr 26 15:41:55 GMT 2012 until: Mon Apr 26 15:46:27 GMT 2032
|
|
14
|
+
Signature algorithm name: SHA256withRSA
|
|
15
|
+
Subject Public Key Algorithm: 4096-bit RSA key
|
|
16
|
+
Version: 3
|
|
17
|
+
-----BEGIN CERTIFICATE-----
|
|
18
|
+
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
|
|
52
|
+
-----END CERTIFICATE-----
|
|
53
|
+
`;
|
|
54
|
+
//# sourceMappingURL=sap-global-root-ca.js.map
|
package/dist/factory.js
CHANGED
|
@@ -31,6 +31,7 @@ const auth_1 = require("./auth");
|
|
|
31
31
|
const service_provider_1 = require("./base/service-provider");
|
|
32
32
|
const abap_1 = require("./abap");
|
|
33
33
|
const util_1 = require("util");
|
|
34
|
+
const patchTls_1 = require("./base/patchTls");
|
|
34
35
|
/**
|
|
35
36
|
* Create a new instance of given type and set default configuration merged with the given config.
|
|
36
37
|
*
|
|
@@ -72,6 +73,9 @@ function createInstance(ProviderType, config) {
|
|
|
72
73
|
instance.cookies.addCookie(singleCookieStr.trim());
|
|
73
74
|
});
|
|
74
75
|
}
|
|
76
|
+
if (patchTls_1.TlsPatch.isPatchRequired(config.baseURL)) {
|
|
77
|
+
patchTls_1.TlsPatch.apply();
|
|
78
|
+
}
|
|
75
79
|
return instance;
|
|
76
80
|
}
|
|
77
81
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sap-ux/axios-extension",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.13.0",
|
|
4
4
|
"description": "Extension of the Axios module adding convenience methods to interact with SAP systems especially with OData services.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"@types/lodash": "4.14.202",
|
|
30
30
|
"nock": "13.4.0",
|
|
31
31
|
"supertest": "6.3.3",
|
|
32
|
-
"@sap-ux/project-access": "1.
|
|
32
|
+
"@sap-ux/project-access": "1.21.0"
|
|
33
33
|
},
|
|
34
34
|
"files": [
|
|
35
35
|
"dist",
|