Fudie.Security 1.0.12

dotnet add package Fudie.Security --version 1.0.12
                    
NuGet\Install-Package Fudie.Security -Version 1.0.12
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Fudie.Security" Version="1.0.12" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Fudie.Security" Version="1.0.12" />
                    
Directory.Packages.props
<PackageReference Include="Fudie.Security" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Fudie.Security --version 1.0.12
                    
#r "nuget: Fudie.Security, 1.0.12"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Fudie.Security@1.0.12
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Fudie.Security&version=1.0.12
                    
Install as a Cake Addin
#tool nuget:?package=Fudie.Security&version=1.0.12
                    
Install as a Cake Tool

Fudie.Security

Security infrastructure for Fudie microservices. Split into four packages with clear responsibilities.

Packages

Package Purpose
Fudie.Security Core contracts (IPasswordHasher, IApiKeyGenerator, IFudieContext, ITokenGenerator, IJwtValidator) and implementations (BcryptPasswordHasher, ApiKeyGenerator)
Fudie.Security.Jwt JWT token generation and validation (JwtValidator, ISigningKeyProvider)
Fudie.Security.Extensions JWKS key fetching with in-memory caching
Fudie.Security.Http Authorization middleware, endpoint catalog, and security requirements for HTTP APIs

Dependency Graph

Fudie.Security.Http
  -> Fudie.Security
  -> Fudie.Http
  -> Fudie.DependencyInjection

Fudie.Security.Extensions
  -> Fudie.Security.Jwt
       -> Fudie.Security
       -> Fudie.DependencyInjection

Installation

Reference the packages your service needs:

  • All HTTP services need Fudie.Security.Http + Fudie.Security.Extensions
  • Auth service (token issuer) needs Fudie.Security + Fudie.Security.Jwt directly

Configuration

1. appsettings.json

{
  "Fudie": {
    "Security": {
      "JwksUrl": "http://auth-service:8080/auth/jwks",
      "CacheRefreshMinutes": 60
    }
  }
}
Key Required Default Description
JwksUrl Yes - Full URL of the JWKS endpoint that serves public signing keys
CacheRefreshMinutes No 60 Minutes to cache JWKS keys before refreshing

2. Program.cs

// --- Service Registration ---

// Registers JWKS key provider, JWT validator, and in-memory cache.
// Reads from the Fudie:Security section in appsettings.json.
// Throws InvalidOperationException if the section or JwksUrl is missing.
builder.Services.AddFudieJwksProvider();

// --- Middleware Pipeline ---

// Enables authorization middleware, registers endpoints in the catalog,
// and maps the GET /catalog discovery endpoint.
featureBuilder.UseFudieAuthorization();

3. What each call registers

AddFudieJwksProvider() (from Fudie.Security.Extensions):

  • Binds FudieSecurityOptions from configuration
  • Registers IMemoryCache
  • Registers HTTP client for JWKS endpoint
  • Registers ISigningKeyProvider (singleton)
  • Registers IJwtValidator (singleton, if not already registered)

UseFudieAuthorization() (from Fudie.Security.Http):

  • Discovers IAggregateDescription implementations across loaded assemblies
  • Registers all feature endpoints in the ICatalogRegistry
  • Adds FudieAuthorizationMiddleware to the pipeline
  • Maps the GET /catalog discovery endpoint

Error Handling

The application will fail fast at startup if:

  • The Fudie:Security configuration section is missing
  • JwksUrl is empty or not provided
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Fudie.Security:

Package Downloads
Fudie.Security.Jwt

JWT token generation and validation using ECDSA keys.

Fudie.Security.Http

Authorization middleware, endpoint catalog, and security requirements for HTTP APIs.

Fudie

Fudie framework — all packages in one reference. Install this to get the full framework.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.12 186 3/8/2026
1.0.11 165 3/7/2026
1.0.10 172 3/5/2026
1.0.9 171 3/5/2026
1.0.8 166 3/5/2026
1.0.7 172 3/4/2026
1.0.6 167 3/4/2026
1.0.5 168 3/4/2026
1.0.4 178 3/3/2026
1.0.3 175 3/3/2026
1.0.2 172 3/3/2026
1.0.1 170 3/2/2026
1.0.0 177 3/2/2026