Skip to content

Commit e1af158

Browse files
authored
Set principal in function context (#22)
1 parent 32f6615 commit e1af158

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

src/AzureFunctions.Extensions.OpenIDConnect.Isolated/AuthorizationFunctionMiddleware.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ public async Task Invoke(FunctionContext executingContext, FunctionExecutionDele
4949
Unauthorized(functionContextAccessor, requestData);
5050
return;
5151
}
52-
52+
53+
executingContext.Items.Add(HttpRequestDataExtensions.UserKey, authenticationResult.User);
54+
5355
var attribute = _routeGuardian.GetAuthorizationConfiguration(executingContext.FunctionDefinition.Name);
5456
var requirements = _requirementsRetriever.ForAttribute(attribute);
5557

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System.Security.Claims;
2+
using Microsoft.Azure.Functions.Worker.Http;
3+
4+
namespace AzureFunctions.Extensions.OpenIDConnect.Isolated;
5+
6+
public static class HttpRequestDataExtensions
7+
{
8+
internal const string UserKey = "OpenIDConnect_principal";
9+
public static ClaimsPrincipal User(this HttpRequestData httpRequestData)
10+
{
11+
if (httpRequestData.FunctionContext.Items.TryGetValue(UserKey, out var user))
12+
{
13+
return user as ClaimsPrincipal;
14+
}
15+
return null;
16+
}
17+
}

0 commit comments

Comments
 (0)