@mcp-abap-adt/connection 1.1.0 → 1.2.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.
|
@@ -18,6 +18,11 @@ declare abstract class AbstractAbapConnection implements AbapConnection {
|
|
|
18
18
|
* Controls whether x-sap-adt-sessiontype: stateful header is added to requests
|
|
19
19
|
* - stateful: SAP maintains session state between requests (locks, transactions)
|
|
20
20
|
* - stateless: Each request is independent
|
|
21
|
+
*
|
|
22
|
+
* On on-prem (basic/saml auth) this is a no-op: Eclipse ADT does not send
|
|
23
|
+
* x-sap-adt-sessiontype header; locks go to the global enqueue table via JCo.
|
|
24
|
+
* Sending stateful on older BASIS (e.g. 7.40) stores the lock in ABAP session
|
|
25
|
+
* memory instead, causing HTTP 423 on subsequent PUT requests.
|
|
21
26
|
*/
|
|
22
27
|
setSessionType(type: 'stateful' | 'stateless'): void;
|
|
23
28
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractAbapConnection.d.ts","sourceRoot":"","sources":["../../src/connection/AbstractAbapConnection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,0BAA0B,CAAC;AAM7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,uBAAe,sBAAuB,YAAW,cAAc;IAU3D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAV3C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAAyC;IAE5D,SAAS,aACU,MAAM,EAAE,SAAS,EACf,MAAM,EAAE,OAAO,GAAG,IAAI,EACzC,SAAS,CAAC,EAAE,MAAM;IAoBpB
|
|
1
|
+
{"version":3,"file":"AbstractAbapConnection.d.ts","sourceRoot":"","sources":["../../src/connection/AbstractAbapConnection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,0BAA0B,CAAC;AAM7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,uBAAe,sBAAuB,YAAW,cAAc;IAU3D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAV3C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAAyC;IAE5D,SAAS,aACU,MAAM,EAAE,SAAS,EACf,MAAM,EAAE,OAAO,GAAG,IAAI,EACzC,SAAS,CAAC,EAAE,MAAM;IAoBpB;;;;;;;;;;OAUG;IACH,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI;IAUpD;;;;OAIG;IACH,qBAAqB,IAAI,IAAI;IAI7B;;;OAGG;IACH,sBAAsB,IAAI,IAAI;IAU9B;;OAEG;IACH,cAAc,IAAI,WAAW,GAAG,UAAU;IAI1C;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKrC;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,SAAS,IAAI,SAAS;IAItB,KAAK,IAAI,IAAI;IAYP,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAevD;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE3B,cAAc,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EACnC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA4P9B,SAAS,CAAC,QAAQ,CAAC,wBAAwB,IAAI,MAAM;IAErD;;;OAGG;cACa,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,UAAU,GAAE,MAAgC,EAC5C,UAAU,GAAE,MAAgC,GAC3C,OAAO,CAAC,MAAM,CAAC;IAgLlB;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,MAAM,GAAG,IAAI;IAIvC;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIlD;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM,GAAG,IAAI;IAIrC,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlD,OAAO,CAAC,yBAAyB;IAkEjC,OAAO,CAAC,gBAAgB;YAqBV,oBAAoB;IAiClC,OAAO,CAAC,eAAe;CA+BxB;AAGD,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -70,8 +70,16 @@ class AbstractAbapConnection {
|
|
|
70
70
|
* Controls whether x-sap-adt-sessiontype: stateful header is added to requests
|
|
71
71
|
* - stateful: SAP maintains session state between requests (locks, transactions)
|
|
72
72
|
* - stateless: Each request is independent
|
|
73
|
+
*
|
|
74
|
+
* On on-prem (basic/saml auth) this is a no-op: Eclipse ADT does not send
|
|
75
|
+
* x-sap-adt-sessiontype header; locks go to the global enqueue table via JCo.
|
|
76
|
+
* Sending stateful on older BASIS (e.g. 7.40) stores the lock in ABAP session
|
|
77
|
+
* memory instead, causing HTTP 423 on subsequent PUT requests.
|
|
73
78
|
*/
|
|
74
79
|
setSessionType(type) {
|
|
80
|
+
if (this.config.authType !== 'jwt') {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
75
83
|
this.sessionMode = type;
|
|
76
84
|
this.logger?.debug(`Session type set to: ${type}`, {
|
|
77
85
|
sessionId: this.sessionId?.substring(0, 8),
|
|
@@ -514,6 +522,13 @@ class AbstractAbapConnection {
|
|
|
514
522
|
}
|
|
515
523
|
this.cookieStore.set(trimmedName, trimmedValue);
|
|
516
524
|
}
|
|
525
|
+
// Enforce configured SAP client in sap-usercontext cookie.
|
|
526
|
+
// SAP may return sap-usercontext=sap-client=<default_client> based on system
|
|
527
|
+
// default rather than the X-SAP-Client header value, causing requests to be
|
|
528
|
+
// routed to the wrong client (e.g. a read-only client → 403 on write operations).
|
|
529
|
+
if (this.config.client) {
|
|
530
|
+
this.cookieStore.set('sap-usercontext', `sap-client=${this.config.client}`);
|
|
531
|
+
}
|
|
517
532
|
if (this.cookieStore.size === 0) {
|
|
518
533
|
return;
|
|
519
534
|
}
|