Skip to content

Commit 2d3f83b

Browse files
committed
Merge branch 'main' into wca/oidc-client-dpop-extensions
2 parents 42ac071 + f9c26e4 commit 2d3f83b

File tree

11 files changed

+208
-46
lines changed

11 files changed

+208
-46
lines changed

package-lock.json

Lines changed: 84 additions & 33 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,20 @@
2626
},
2727
"dependencies": {
2828
"@astrojs/markdown-remark": "^6.3.1",
29-
"@astrojs/starlight": "^0.34.0",
29+
"@astrojs/starlight": "^0.34.3",
3030
"@astrojs/ts-plugin": "^1.10.4",
3131
"@fontsource/roboto": "^5.2.5",
3232
"@pasqal-io/starlight-client-mermaid": "^0.1.0",
3333
"@resvg/resvg-js": "^2.6.2",
34-
"astro": "^5.7.2",
34+
"astro": "^5.7.13",
3535
"astro-opengraph-images": "^1.12.2",
36-
"astro-redirect-from": "^1.3.1",
36+
"astro-redirect-from": "^1.3.3",
3737
"astro-rehype-relative-markdown-links": "^0.18.1",
3838
"jsdom": "^26.0.0",
3939
"patch-package": "^8.0.0",
4040
"react": "^19.0.0",
4141
"rehype-external-links": "^3.0.0",
42-
"satori": "^0.12.1",
42+
"satori": "^0.13.1",
4343
"sharp": "^0.34.1",
4444
"starlight-auto-sidebar": "^0.1.1",
4545
"starlight-giscus": "^0.6.1",
@@ -50,8 +50,8 @@
5050
},
5151
"devDependencies": {
5252
"@types/jsdom": "^21.1.7",
53-
"@types/node": "^22.13.10",
54-
"@types/react": "^19.0.10",
53+
"@types/node": "^22.15.18",
54+
"@types/react": "^19.1.4",
5555
"node-fetch": "^3.3.2",
5656
"prettier": "3.5.3"
5757
},
File renamed without changes.

src/content/docs/identityserver/data/ef.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ dotnet add package Duende.IdentityServer.EntityFramework
2525
```
2626

2727
## Configuration Store Support
28-
For storing [configuration data](/identityserver/configuration/), then the configuration store can be used.
28+
For storing [configuration data](/identityserver/configuration/), the configuration store can be used.
2929
This support provides implementations of the `IClientStore`, `IResourceStore`, `IIdentityProviderStore`, and the `ICorsPolicyService` extensibility points.
3030
These implementations use a `DbContext`-derived class called `ConfigurationDbContext` to model the tables in the database.
3131

src/content/docs/identityserver/diagnostics/logging.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,3 +110,53 @@ Then, in your `appsettings.json` file, you can set the default minimum log level
110110
}
111111
}
112112
```
113+
114+
## Filtering Exceptions
115+
116+
The `LoggingOptions` class allows developers to filter out any exceptions that
117+
could potentially lead to log bloat. For example, in a web application, developers
118+
should expect to see `OperationCanceledException` as clients end HTTP requests
119+
abruptly for many reasons. It's such a common occurrence to see this exception that
120+
the default filter included with IdentityServer excludes it by default.
121+
122+
```csharp
123+
/// <summary>
124+
/// Called when the IdentityServer middleware detects an unhandled exception, and is used to determine if the exception is logged.
125+
/// Returns true to emit the log, false to suppress.
126+
/// </summary>
127+
public Func<HttpContext, Exception, bool> UnhandledExceptionLoggingFilter = (context, exception) =>
128+
{
129+
var result = !(context.RequestAborted.IsCancellationRequested && exception is OperationCanceledException);
130+
return result;
131+
};
132+
```
133+
134+
To apply custom filtering, you can set the `UnhandledExceptionLoggingFilter` property on
135+
the `LoggingOptions` for your `IdentityServerOptions`.
136+
137+
```csharp
138+
var isBuilder = builder.Services.AddIdentityServer(options =>
139+
{
140+
options.Logging.UnhandledExceptionLoggingFilter =
141+
(ctx, ex) => {
142+
if (ctx.User is { Identity.Name: "Jeff" })
143+
{
144+
// Oh Jeff...
145+
return false;
146+
}
147+
148+
if (ex.Message.Contains("Oops"))
149+
{
150+
// ignore this exception
151+
return false;
152+
}
153+
154+
// this is a real exception
155+
return true;
156+
};
157+
})
158+
.AddTestUsers(TestUsers.Users)
159+
.AddLicenseSummary();
160+
```
161+
162+
Returning `true` means the exception will be logged, while returning `false` indicates the exception should not be logged.

src/content/docs/identityserver/fundamentals/openid-connect-events.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ identity provider. Understanding the direction of these events can help you dete
7777
| `OnTokenResponseReceived` | **Incoming** |
7878
| `OnTokenValidated` | **Incoming** |
7979
| `OnUserInformationReceived` | **Incoming** |
80+
| `OnTicketReceived` | **Incoming** |
8081
| `OnPushAuthorization` (**.NET 9+ only**) | **Outgoing** |
8182

8283
## Commonly Subscribed Events
@@ -174,6 +175,15 @@ For ASP.NET Core developers, the most commonly subscribed events are:
174175
endpoint.
175176
- **Commonly subscribed**: Sometimes, if extra claims processing is required.
176177

178+
### OnTicketReceived
179+
180+
- **When called**: Invoked after the OpenID Connect authentication flow is complete and before the authentication ticket
181+
is returned.
182+
- **How often**: Called once per successful authentication flow completion.
183+
- **Example use case**: Modify the final authentication ticket, perform additional validation, or execute custom logic
184+
before completing the authentication process.
185+
- **Commonly subscribed**: Sometimes, when final authentication customization is needed before completing the flow or for diagnostics and troubleshooting purposes.
186+
177187
### OnPushAuthorization
178188

179189
- **When called**: Invoked before sending authorization parameters using the Pushed Authorization Request (PAR)

src/content/docs/identityserver/quickstarts/1-client-credentials.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ available [here](https://github.com/DuendeSoftware/Samples/tree/main/IdentitySer
3636

3737
In addition to the written steps below there's also a YouTube video available:
3838

39-
<iframe width="853" height="505" src="https://www.youtube.com/embed/3-1QY8s2C9k" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
39+
<iframe width="853" height="505" src="https://www.youtube.com/embed/EhuCpbH7Ad0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
4040

4141
## Preparation
4242

src/content/docs/identityserver/quickstarts/2-interactive.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ that enable the UI. Note that there are three places to comment in - two in
6565
`ConfigurePipeline` and one in `ConfigureServices`.
6666

6767
:::note
68-
There is also a template called `isinmem` which combines the basic
69-
IdentityServer from the `isempty` template with the quickstart UI from the
70-
`isui` template.
68+
There is also a template called `duende-is-inmem` which combines the basic
69+
IdentityServer from the `duende-is-empty` template with the quickstart UI from the
70+
`duende-is-ui` template.
7171
:::
7272

7373
Comment in the service registration and pipeline configuration, run the

src/content/docs/identityserver/reference/efoptions/operational.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,9 @@ Settings that affect the background cleanup of expired entries (tokens) from the
7575

7676
* **`TokenCleanupBatchSize`**
7777

78-
Gets or sets the number of records to remove at a time. Defaults to `100`.
78+
Gets or sets the number of records to remove per batch operation.
79+
The cleanup job will perform multiple batch operations as long as there are more records to remove than the configured `TokenCleanupBatchSize`.
80+
Defaults to `100`.
7981

8082
* **`FuzzTokenCleanupStart`**
8183

0 commit comments

Comments
 (0)