Skip to content

Commit

Permalink
feat: Add JsonOptions configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
me-viper committed Jul 26, 2023
1 parent 1450679 commit af93889
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 14 deletions.
27 changes: 14 additions & 13 deletions src/OpaDotNet.Extensions.AspNetCore/PublicAPI.Shipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,22 @@ OpaDotNet.Extensions.AspNetCore.IOpaPolicyService
OpaDotNet.Extensions.AspNetCore.IOpaPolicyService.Evaluate<TInput, TOutput>(TInput input, string! entrypoint) -> TOutput
OpaDotNet.Extensions.AspNetCore.IOpaPolicyService.EvaluatePredicate<TInput>(TInput input, string! entrypoint) -> bool
OpaDotNet.Extensions.AspNetCore.IOpaPolicyService.EvaluateRaw(System.ReadOnlySpan<char> inputJson, string! entrypoint) -> string!
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.AllowedHeaders.get -> System.Collections.Generic.HashSet<string!>!
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.AllowedHeaders.set -> void
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.EngineOptions.get -> OpaDotNet.Wasm.WasmPolicyEngineOptions?
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.EngineOptions.set -> void
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.Entrypoints.get -> System.Collections.Generic.HashSet<string!>?
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.Entrypoints.set -> void
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.IncludeClaimsInHttpRequest.get -> bool
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.IncludeClaimsInHttpRequest.set -> void
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.MaximumEvaluatorsRetained.get -> int
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.MaximumEvaluatorsRetained.set -> void
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.MonitoringInterval.get -> System.TimeSpan
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.MonitoringInterval.set -> void
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.OpaAuthorizationOptions() -> void
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.PolicyBundlePath.get -> string?
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.PolicyBundlePath.set -> void
OpaDotNet.Extensions.AspNetCore.OpaEvaluatorPoolProvider
OpaDotNet.Extensions.AspNetCore.OpaEvaluatorPoolProvider.OpaEvaluatorPoolProvider() -> void
OpaDotNet.Extensions.AspNetCore.OpaPolicyAuthorizeAttribute
Expand All @@ -25,18 +37,6 @@ OpaDotNet.Extensions.AspNetCore.OpaPolicyHandler
OpaDotNet.Extensions.AspNetCore.OpaPolicyHandler.OpaPolicyHandler(OpaDotNet.Extensions.AspNetCore.IOpaPolicyService! service, Microsoft.Extensions.Options.IOptions<OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions!>! options, Microsoft.Extensions.Logging.ILogger<OpaDotNet.Extensions.AspNetCore.OpaPolicyHandler!>! logger) -> void
OpaDotNet.Extensions.AspNetCore.OpaPolicyHandler<TResource>
OpaDotNet.Extensions.AspNetCore.OpaPolicyHandler<TResource>.OpaPolicyHandler(OpaDotNet.Extensions.AspNetCore.IOpaPolicyService! service, Microsoft.Extensions.Logging.ILogger<OpaDotNet.Extensions.AspNetCore.OpaPolicyHandler<TResource>!>! logger) -> void
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.AllowedHeaders.get -> System.Collections.Generic.HashSet<string!>!
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.AllowedHeaders.set -> void
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.EngineOptions.get -> OpaDotNet.Wasm.WasmPolicyEngineOptions?
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.EngineOptions.set -> void
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.Entrypoints.get -> System.Collections.Generic.HashSet<string!>?
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.Entrypoints.set -> void
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.IncludeClaimsInHttpRequest.get -> bool
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.IncludeClaimsInHttpRequest.set -> void
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.MaximumEvaluatorsRetained.get -> int
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.MaximumEvaluatorsRetained.set -> void
OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions.PolicyBundlePath.set -> void
OpaDotNet.Extensions.AspNetCore.OpaPolicyProvider
OpaDotNet.Extensions.AspNetCore.OpaPolicyProvider.GetDefaultPolicyAsync() -> System.Threading.Tasks.Task<Microsoft.AspNetCore.Authorization.AuthorizationPolicy!>!
OpaDotNet.Extensions.AspNetCore.OpaPolicyProvider.GetFallbackPolicyAsync() -> System.Threading.Tasks.Task<Microsoft.AspNetCore.Authorization.AuthorizationPolicy?>!
Expand All @@ -54,12 +54,13 @@ override OpaDotNet.Extensions.AspNetCore.OpaPolicyHandler<TResource>.HandleRequi
override OpaDotNet.Extensions.AspNetCore.OpaPolicyRequirement.ToString() -> string!
override OpaDotNet.Extensions.AspNetCore.OpaPolicyWatchingCompilationService.StartAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
override OpaDotNet.Extensions.AspNetCore.OpaPolicyWatchingCompilationService.StopAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
static OpaDotNet.Extensions.AspNetCore.ServiceCollectionExtensions.AddCompiler<T>(this OpaDotNet.Extensions.AspNetCore.IOpaAuthorizationBuilder! builder) -> OpaDotNet.Extensions.AspNetCore.IOpaAuthorizationBuilder!
static OpaDotNet.Extensions.AspNetCore.ServiceCollectionExtensions.AddCompiler<T>(this OpaDotNet.Extensions.AspNetCore.IOpaAuthorizationBuilder! builder, System.Func<System.IServiceProvider!, T!>! compiler) -> OpaDotNet.Extensions.AspNetCore.IOpaAuthorizationBuilder!
static OpaDotNet.Extensions.AspNetCore.ServiceCollectionExtensions.AddCompiler<T>(this OpaDotNet.Extensions.AspNetCore.IOpaAuthorizationBuilder! builder) -> OpaDotNet.Extensions.AspNetCore.IOpaAuthorizationBuilder!
static OpaDotNet.Extensions.AspNetCore.ServiceCollectionExtensions.AddConfiguration(this OpaDotNet.Extensions.AspNetCore.IOpaAuthorizationBuilder! builder, Microsoft.Extensions.Configuration.IConfiguration! configuration) -> OpaDotNet.Extensions.AspNetCore.IOpaAuthorizationBuilder!
static OpaDotNet.Extensions.AspNetCore.ServiceCollectionExtensions.AddConfiguration(this OpaDotNet.Extensions.AspNetCore.IOpaAuthorizationBuilder! builder, System.Action<OpaDotNet.Extensions.AspNetCore.OpaAuthorizationOptions!>! configuration) -> OpaDotNet.Extensions.AspNetCore.IOpaAuthorizationBuilder!
static OpaDotNet.Extensions.AspNetCore.ServiceCollectionExtensions.AddDefaultCompiler(this OpaDotNet.Extensions.AspNetCore.IOpaAuthorizationBuilder! builder) -> OpaDotNet.Extensions.AspNetCore.IOpaAuthorizationBuilder!
static OpaDotNet.Extensions.AspNetCore.ServiceCollectionExtensions.AddEvaluatorFactory<T>(this OpaDotNet.Extensions.AspNetCore.IOpaAuthorizationBuilder! builder, System.Func<System.IServiceProvider!, T!>! evaluatorFactoryProvider) -> OpaDotNet.Extensions.AspNetCore.IOpaAuthorizationBuilder!
static OpaDotNet.Extensions.AspNetCore.ServiceCollectionExtensions.AddJsonOptions(this OpaDotNet.Extensions.AspNetCore.IOpaAuthorizationBuilder! builder, System.Action<System.Text.Json.JsonSerializerOptions!>! jsonOptions) -> OpaDotNet.Extensions.AspNetCore.IOpaAuthorizationBuilder!
static OpaDotNet.Extensions.AspNetCore.ServiceCollectionExtensions.AddOpaAuthorization(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, System.Action<OpaDotNet.Extensions.AspNetCore.IOpaAuthorizationBuilder!>! configure) -> Microsoft.Extensions.DependencyInjection.IServiceCollection!
virtual OpaDotNet.Extensions.AspNetCore.OpaPolicyCompilationService.StartAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
virtual OpaDotNet.Extensions.AspNetCore.OpaPolicyCompilationService.StopAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
using System.Diagnostics.CodeAnalysis;
using System.Text.Json;

using JetBrains.Annotations;

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;

using OpaDotNet.Wasm;
using OpaDotNet.Wasm.Compilation;

namespace OpaDotNet.Extensions.AspNetCore;
Expand All @@ -14,6 +16,25 @@ namespace OpaDotNet.Extensions.AspNetCore;
[ExcludeFromCodeCoverage]
public static class ServiceCollectionExtensions
{
public static IOpaAuthorizationBuilder AddJsonOptions(
this IOpaAuthorizationBuilder builder,
Action<JsonSerializerOptions> jsonOptions)
{
ArgumentNullException.ThrowIfNull(builder);
ArgumentNullException.ThrowIfNull(jsonOptions);

builder.Services
.AddOptions<OpaAuthorizationOptions>()
.PostConfigure(
p =>
{
p.EngineOptions ??= WasmPolicyEngineOptions.Default;
jsonOptions.Invoke(p.EngineOptions.SerializationOptions);
});

return builder;
}

public static IOpaAuthorizationBuilder AddConfiguration(
this IOpaAuthorizationBuilder builder,
IConfiguration configuration)
Expand All @@ -22,7 +43,6 @@ public static IOpaAuthorizationBuilder AddConfiguration(
ArgumentNullException.ThrowIfNull(configuration);

builder.Services.Configure<OpaAuthorizationOptions>(configuration);

return builder;
}

Expand Down

0 comments on commit af93889

Please sign in to comment.