-
-
Notifications
You must be signed in to change notification settings - Fork 49
Open
Description
ClaimsPrincipalAuthorization requires ClaimsPrincipal which is not resolved for AuthorizationLevel.Anonymous.
As a consequence ClaimsPrincipal null is passed to ClaimsPrincipalAuthorization:
Change
`
{{#if ValidatesToken}}
if (req.Headers["{{TokenHeader}}"].Count == 0)
{
return new UnauthorizedResult();
}
string authorizationHeader = req.Headers["{{TokenHeader}}"][0];
if (string.IsNullOrWhiteSpace(authorizationHeader))
{
return new UnauthorizedResult();
}
principal = await pluginFunctions.ValidateToken(authorizationHeader);
if (principal == null)
{
return new UnauthorizedResult();
}
contextSetter.SetHttpContext(principal, requestUrl, headerDictionary);
{{/if}}
{{#if AuthorizesClaims}}
var claimsPrincipalAuthorizationResult = await pluginFunctions.IsAuthorized(principal, req.Method, requestUrl);
if (!claimsPrincipalAuthorizationResult)
{
return new UnauthorizedResult();
}
{{/if}}
`
to
`
{{#if ValidatesToken}}
if (req.Headers["{{TokenHeader}}"].Count == 0)
{
return new UnauthorizedResult();
}
string authorizationHeader = req.Headers["{{TokenHeader}}"][0];
if (string.IsNullOrWhiteSpace(authorizationHeader))
{
return new UnauthorizedResult();
}
principal = await pluginFunctions.ValidateToken(authorizationHeader);
if (principal == null)
{
return new UnauthorizedResult();
}
contextSetter.SetHttpContext(principal, requestUrl, headerDictionary);
{{#if AuthorizesClaims}}
var claimsPrincipalAuthorizationResult = await pluginFunctions.IsAuthorized(principal, req.Method, requestUrl);
if (!claimsPrincipalAuthorizationResult)
{
return new UnauthorizedResult();
}
{{/if}}
{{/if}}
`
jlocans
Metadata
Metadata
Assignees
Labels
No labels