Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix FlexibleAuthorizationPolicyProvider thread safety #6

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

cfgiugliano
Copy link

AuthorizationOptions.AddPolicy isn't thread safe (source)

Since FlexibleAuthorizationPolicyProvider is registered as singleton, it should avoid invoking AuthorizationOptions.AddPolicy

The current PR adds a ConcurrentDictionary to cache locally all the policies for the flexible authorization. The GetOrAdd method on the dictionary won't guarantee that the factory will be called just once but such operation isn't expensive and shouldn't cause any problem (see).

At the same time I've changed the fallback to base.GetPolicyAsync to be invoked only when it's not a flexible authorization policy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant