@mcp-abap-adt/auth-providers 4.1.2 → 4.1.3

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/CHANGELOG.md CHANGED
@@ -7,6 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [4.1.3] - 2026-09-26
11
+
12
+ ### Changed
13
+
14
+ - A `bearerConfirmation` refusal naming several candidates joins them with
15
+ ` | ` instead of `; `, and ends ` | and N more`. The count reason
16
+ `carries N SubjectConfirmationData; exactly one is allowed` contains `; `
17
+ itself, so the old separator read ambiguously. `check` and every reason's
18
+ wording are unchanged.
19
+
20
+ ### Removed
21
+
22
+ - `mcp.json`, an XSUAA service key with a client secret, committed to the
23
+ repository on 2025-12-23 with the since-removed `bin/` CLIs. It was never in
24
+ the npm package. It stays in the git history, so that binding should be
25
+ rotated or deleted. `.gitignore` now keeps `mcp.json` and
26
+ `*service-key*.json` out.
27
+
10
28
  ## [4.1.2] - 2026-09-26
11
29
 
12
30
  ### Security
package/README.md CHANGED
@@ -672,7 +672,7 @@ What the table compresses:
672
672
  `xsd:dateTime`; `NotOnOrAfter` has not passed beyond `clockSkewMs`;
673
673
  `NotBefore` has arrived within it. When none qualifies, the refusal names
674
674
  every candidate in document order with the first sub-rule it failed —
675
- `no bearer confirmation qualifies: #1 Recipient is not the ACS; #2
675
+ `no bearer confirmation qualifies: #1 Recipient is not the ACS | #2
676
676
  NotOnOrAfter has passed` — listing at most five, then `and N more`.
677
677
  - **Check 9 is AND across restrictions, OR within one**, as SAML Core §2.5.1.4
678
678
  says: every `AudienceRestriction` must name you; the `Audience` elements
@@ -755,14 +755,16 @@ value.
755
755
  | `bearerConfirmation` | `the assertion carries no saml:Subject` |
756
756
  | `bearerConfirmation` | `the assertion carries <n> saml:Subject; exactly one is allowed` |
757
757
  | `bearerConfirmation` | `the saml:Subject holds no SubjectConfirmation` |
758
- | `bearerConfirmation` | `no bearer confirmation qualifies: #1 <reason>; #2 <reason>; …` |
758
+ | `bearerConfirmation` | `no bearer confirmation qualifies: #1 <reason> \| #2 <reason> \| …` |
759
759
  | `destination` | `the response carries no Destination` |
760
760
  | `destination` | `the response is addressed to "…", not to us` |
761
761
  | `replay` | `this assertion has been presented before` |
762
762
 
763
763
  A `bearerConfirmation` refusal naming candidates lists each one's first failed
764
- sub-rule, in document order, joined by `; `; past five candidates it ends
765
- `; and N more`, N being how many were not listed. The eleven reasons:
764
+ sub-rule, in document order, joined by ` | ` — not `; `, which a count reason
765
+ such as `carries 2 SubjectConfirmationData; exactly one is allowed` contains
766
+ itself; past five candidates it ends ` | and N more`, N being how many were
767
+ not listed. The eleven reasons:
766
768
 
767
769
  | # | `<reason>`, in the order a candidate is tested |
768
770
  |---|---|
@@ -506,7 +506,7 @@ function readConfirmation(confirmation, context) {
506
506
  return { notOnOrAfter, notBefore };
507
507
  }
508
508
  /**
509
- * `no bearer confirmation qualifies: #1 …; #2 …`, naming at most
509
+ * `no bearer confirmation qualifies: #1 … | #2 …`, naming at most
510
510
  * LISTED_CANDIDATES candidates so the message stays bounded however many the
511
511
  * document carries.
512
512
  */
@@ -515,5 +515,5 @@ function describeRefusals(reasons) {
515
515
  .slice(0, LISTED_CANDIDATES)
516
516
  .map((reason, index) => `#${index + 1} ${reason}`);
517
517
  const more = reasons.length - listed.length;
518
- return `no bearer confirmation qualifies: ${listed.join('; ')}${more > 0 ? `; and ${more} more` : ''}`;
518
+ return `no bearer confirmation qualifies: ${listed.join(' | ')}${more > 0 ? ` | and ${more} more` : ''}`;
519
519
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/auth-providers",
3
- "version": "4.1.2",
3
+ "version": "4.1.3",
4
4
  "description": "Token providers for MCP ABAP ADT auth-broker",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",