@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 +18 -0
- package/README.md +6 -4
- package/dist/validation/assertionValidator.js +2 -2
- package/package.json +1 -1
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
|
|
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
|
|
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
|
|
765
|
-
|
|
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
|
|
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('
|
|
518
|
+
return `no bearer confirmation qualifies: ${listed.join(' | ')}${more > 0 ? ` | and ${more} more` : ''}`;
|
|
519
519
|
}
|