You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.6 KiB
37 lines
1.6 KiB
using System;
|
|
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.IdentityModel.Tokens;
|
|
using Volo.Abp.Modularity;
|
|
|
|
namespace EShopOnAbp.Shared.Hosting.Microservices;
|
|
|
|
public static class JwtBearerConfigurationHelper
|
|
{
|
|
public static void Configure(
|
|
ServiceConfigurationContext context,
|
|
string audience)
|
|
{
|
|
var configuration = context.Services.GetConfiguration();
|
|
|
|
context.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
|
|
.AddJwtBearer(options =>
|
|
{
|
|
options.Authority = configuration["AuthServer:Authority"];
|
|
options.RequireHttpsMetadata = Convert.ToBoolean(configuration["AuthServer:RequireHttpsMetadata"]);
|
|
options.Audience = audience;
|
|
// IDX10204: Unable to validate issuer on K8s if not set
|
|
options.TokenValidationParameters = new TokenValidationParameters()
|
|
{
|
|
ValidIssuers = new[]
|
|
{ configuration["AuthServer:Authority"], configuration["AuthServer:MetadataAddress"] },
|
|
// IDX10500: Signature validation failed. No security keys were provided to validate the signature on K8s
|
|
SignatureValidator = delegate(string token, TokenValidationParameters parameters)
|
|
{
|
|
var jwt = new Microsoft.IdentityModel.JsonWebTokens.JsonWebToken(token);
|
|
return jwt;
|
|
}
|
|
};
|
|
});
|
|
}
|
|
}
|