Open Closed

swagger api login with oidc gives 400 error #10367


User avatar
0
sghorakavi@cpat.com created

Check the docs before asking a question: https://abp.io/docs/latest Check the samples to see the basic tasks: https://abp.io/docs/latest/samples The exact solution to your question may have been answered before, and please first use the search on the homepage.

Provide us with the following info: 🧐 Hint: If you are using the ABP Studio, you can see all the information about your solution from the configuration window, which opens when you right-click on the solution and click on the Solution Configuration button.

  • Exception message and full stack trace:
  • Steps to reproduce the issue: Need help to fix this issue.
  • I have below value in json file
  • "OpenIddict": { "SwaggerRootUrl": "https://localhost:44320/portal/api", "Applications": { "Approach_Web": { "ClientId": "Approach_Web", "ClientSecret": "1q2w3e*", "RootUrl": "https://localhost:44386", "WildCardRootUrl": "https://{0}.dev.cpat.dev:44386" }, "Approach_App": { "ClientId": "Approach_App" }, "Approach_Swagger": { "ClientId": "Approach_Swagger", "RootUrl": "https://localhost:44320/portal/api", "RedirectUris": "https://localhost:44320/portal/api/swagger/oauth2-redirect.html", "ResponseType": "code", "Scope": "email openid profile roles" } } }

var configurationSection = _configuration.GetSection("OpenIddict:Applications"); //Web Client var webClientId = configurationSection["Approach_Web:ClientId"]; if (!webClientId.IsNullOrWhiteSpace()) { var webClientRootUrl = configurationSection["Approach_Web:RootUrl"]!.EnsureEndsWith('/'); /* Approach_Web client is only needed if you created a tiered * solution. Otherwise, you can delete this client. */ await CreateApplicationAsync( applicationType: OpenIddictConstants.ApplicationTypes.Web, name: webClientId!, type: OpenIddictConstants.ClientTypes.Confidential, consentType: OpenIddictConstants.ConsentTypes.Implicit, displayName: "Web Application", secret: configurationSection["Approach_Web:ClientSecret"] ?? "1q2w3e*", grantTypes: new List<string> //Hybrid flow { OpenIddictConstants.GrantTypes.AuthorizationCode, OpenIddictConstants.GrantTypes.Implicit }, scopes: commonScopes, redirectUris: new List<string> { $"{webClientRootUrl}signin-oidc" }, postLogoutRedirectUris: new List<string> { $"{webClientRootUrl}signout-callback-oidc" }, clientUri: webClientRootUrl, logoUri: "/images/clients/aspnetcore.svg" ); } Get error:


28 Answer(s)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    Please share the full logs.txt file

    liming.ma@volosoft.com

    Thanks.

  • User Avatar
    0
    sghorakavi@cpat.com created

    sent you logs from docker build and local launch. pls check your email.

    I will also send you local build and local launch. The errors are different for the same code.

    Took sample code and changed path base to "portal/api" https://localhost:44320/portal/api/ from https://localhost:44320/ =? docker launch shows swagger ui but there is error https://localhost:44320/auth/ from https://localhost:44319 => worked https://localhost:44386/portal from https://localhost:44386 =? not working due to api host

    // In Swagger Client redirectUris: https://localhost:44320/portal/api/swagger/oauth2-redirect.html

    Dockerlog has following information. It cannot start web server:

    Volo.Abp.AbpInitializationException: An error occurred during the initialize Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor phase of the module Volo.Abp.AspNetCore.AbpAspNetCoreModule, Volo.Abp.AspNetCore, Version=9.3.6.0, Culture=neutral, PublicKeyToken=null: An exception was thrown while activating λ:Volo.Abp.AspNetCore.VirtualFileSystem.IWebContentFileProvider -> Volo.Abp.AspNetCore.VirtualFileSystem.WebContentFileProvider -> λ:Volo.Abp.VirtualFileSystem.IVirtualFileProvider -> Volo.Abp.VirtualFileSystem.VirtualFileProvider.. See the inner exception for details. ---> Autofac.Core.DependencyResolutionException: An exception was thrown while activating λ:Volo.Abp.AspNetCore.VirtualFileSystem.IWebContentFileProvider -> Volo.Abp.AspNetCore.VirtualFileSystem.WebContentFileProvider -> λ:Volo.Abp.VirtualFileSystem.IVirtualFileProvider -> Volo.Abp.VirtualFileSystem.VirtualFileProvider. ---> Autofac.Core.DependencyResolutionException: An exception was thrown while invoking the constructor 'Void .ctor(Microsoft.Extensions.Options.IOptions1[Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemOptions], Volo.Abp.VirtualFileSystem.IDynamicFileProvider)' on type 'VirtualFileProvider'. ---> System.IO.DirectoryNotFoundException: /Approach.Domain.Shared/ at Microsoft.Extensions.FileProviders.PhysicalFileProvider..ctor(String root, ExclusionFilters filters) at Volo.Abp.VirtualFileSystem.VirtualFileSetListExtensions.ReplaceEmbeddedByPhysical[T](VirtualFileSetList fileSets, String physicalPath) at Approach.Web.ApproachWebModule.<>c__DisplayClass14_0.<ConfigureVirtualFileSystem>b__0(AbpVirtualFileSystemOptions options) in C:\develop\AccessBanyan\approach\src\Approach.Web\ApproachWebModule.cs:line 347 at Microsoft.Extensions.Options.OptionsFactory1.Create(String name) at Microsoft.Extensions.Options.UnnamedOptionsManager1.get_Value() at lambda_method105(Closure, Object[]) at Autofac.Core.Activators.Reflection.BoundConstructor.Instantiate() --- End of inner exception stack trace --- at Autofac.Core.Activators.Reflection.BoundConstructor.Instantiate() at Autofac.Core.Activators.Reflection.ReflectionActivator.<>c__DisplayClass14_0.<UseSingleConstructorActivation>b__0(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext context) at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext context) at Autofac.Builder.RegistrationBuilder3.<>c__DisplayClass41_0.<PropertiesAutowired>b__0(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext context) at Autofac.Extensions.DependencyInjection.KeyedServiceMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext context) at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action1 next) --- End of inner exception stack trace --- at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext context) at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext context) at Autofac.Core.Resolving.Middleware.SharingMiddleware.<>c__DisplayClass5_0.<Execute>b__0() at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid id, Func1 creator) at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid primaryId, Nullable1 qualifyingId, Func1 creator) at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext context) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext context) at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext context) at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest& request) at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest& request) at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest& request) at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest& request) at Autofac.Core.Lifetime.LifetimeScope.Autofac.IComponentContext.ResolveComponent(ResolveRequest& request) at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable1 parameters, Object& instance) at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable1 parameters) at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) at Volo.Abp.AspNetCore.AbpAspNetCoreModule.OnApplicationInitialization(ApplicationInitializationContext context) at Volo.Abp.Modularity.AbpModule.OnApplicationInitializationAsync(ApplicationInitializationContext context) at Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor.InitializeAsync(ApplicationInitializationContext context, IAbpModule module) at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) --- End of inner exception stack trace --- at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) at Volo.Abp.AbpApplicationBase.InitializeModulesAsync() at Volo.Abp.AbpApplicationWithExternalServiceProvider.InitializeAsync(IServiceProvider serviceProvider) at Microsoft.AspNetCore.Builder.AbpApplicationBuilderExtensions.InitializeApplicationAsync(IApplicationBuilder app) at Approach.Web.Program.Main(String[] args) in C:\develop\AccessBanyan\approach\src\Approach.Web\Program.cs:line 49 PS C:\develop\AccessBanyan\approach\e

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    System.IO.DirectoryNotFoundException: /Approach.Domain.Shared/

    Can you share the cshtml file content of your Approach.Domain.Shared project?

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    HTTP 400 error

    Can you share the JSON response of http://approach-httpapi-host:8080/api/abp/application-configuration endpoint?

    Thanks.

  • User Avatar
    0
    sghorakavi@cpat.com created

  • User Avatar
    0
    sghorakavi@cpat.com created

    [maliming] said: hi

    System.IO.DirectoryNotFoundException: /Approach.Domain.Shared/

    Can you share the cshtml file content of your Approach.Domain.Shared project?

    I do not see any cshtml in the shared

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    Sorry, it's the csproj file.

    Can you try to get a response from http://approach-httpapi-host:8080/api/abp/application-configuration in Docker or an accessible location?

    It seems the culture in the response is wrong.

    Thanks.

  • User Avatar
    0
    sghorakavi@cpat.com created

    [maliming] said: Sorry, it's the csproj file.

    Can you try to get a response from http://approach-httpapi-host:8080/api/abp/application-configuration in Docker or an accessible location?

    It seems the culture in the response is wrong.

    Thanks.

    pls check your email. I can access:https://localhost:44320/api/abp/application-configuration

  • User Avatar
    0
    sghorakavi@cpat.com created

    [sghorakavi@cpat.com] said:

    [maliming] said: Sorry, it's the csproj file.

    Can you try to get a response from http://approach-httpapi-host:8080/api/abp/application-configuration in Docker or an accessible location?

    It seems the culture in the response is wrong.

    Thanks.

    pls check your email. I can access:https://localhost:44320/api/abp/application-configuration

    <Project Sdk="Microsoft.NET.Sdk">
    
      <Import Project="..\..\common.props" />
    
      <PropertyGroup>
        <TargetFramework>net9.0</TargetFramework>
        <Nullable>enable</Nullable>
        <RootNamespace>Approach</RootNamespace>
        <GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="Volo.Abp.BackgroundJobs.Domain.Shared" Version="9.3.6" />
        <PackageReference Include="Volo.Abp.AuditLogging.Domain.Shared" Version="9.3.6" />
        <PackageReference Include="Volo.Abp.FeatureManagement.Domain.Shared" Version="9.3.6" />
        <PackageReference Include="Volo.Abp.PermissionManagement.Domain.Shared" Version="9.3.6" />
        <PackageReference Include="Volo.Abp.SettingManagement.Domain.Shared" Version="9.3.6" />
        <PackageReference Include="Volo.Abp.BlobStoring.Database.Domain.Shared" Version="9.3.6" />
        <PackageReference Include="Volo.Abp.GlobalFeatures" Version="9.3.6" />
    		<ProjectReference Include="../../modules/Cpat.Settings/src/Cpat.Settings.Domain.Shared/Cpat.Settings.Domain.Shared.csproj" />
    
    	</ItemGroup>
    
      <ItemGroup>
        <PackageReference Include="Volo.Abp.OpenIddict.Pro.Domain.Shared" Version="9.3.6" />
        <PackageReference Include="Volo.Abp.Identity.Pro.Domain.Shared" Version="9.3.6" />
        <PackageReference Include="Volo.Abp.LanguageManagement.Domain.Shared" Version="9.3.6" />
        <PackageReference Include="Volo.Saas.Domain.Shared" Version="9.3.6" />
        <PackageReference Include="Volo.Abp.TextTemplateManagement.Domain.Shared" Version="9.3.6" />
        <PackageReference Include="Volo.Abp.Gdpr.Domain.Shared" Version="9.3.6" />
      </ItemGroup>
    
      <ItemGroup>
        <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="9.0.5" />
      </ItemGroup>
    
      <ItemGroup>
        <EmbeddedResource Include="Localization\Approach\*.json" />
        <Content Remove="Localization\Approach\*.json" />
      </ItemGroup>
    
    </Project>
    
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    It seems your app uses the Invariant Language.

    Do you have UseAbpRequestLocalization in your module?

    Have you installed ICU in your Docker environment? Please share your Dockerfile.

    https://learn.microsoft.com/en-us/dotnet/core/extensions/globalization-icu

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    Please also share your Approach.Domain.Shared module code.

    Thanks.

  • User Avatar
    0
    sghorakavi@cpat.com created

    [maliming] said: hi

    It seems your app uses the Invariant Language.

    Do you have UseAbpRequestLocalization in your module?

    Have you installed ICU in your Docker environment? Please share your Dockerfile.

    https://learn.microsoft.com/en-us/dotnet/core/extensions/globalization-icu

    You are correct, I do not have UseAbpRequestLocalization. Let me rebuild with that and send you the output

    I am testing with docker-compose.

    Dockerfile.local ` FROM mcr.microsoft.com/dotnet/aspnet:9.0 USER $APP_UID EXPOSE 8080 EXPOSE 8081

    COPY bin/Release/net9.0/publish/ app/ WORKDIR /app ENTRYPOINT ["dotnet", "Approach.HttpApi.Host.dll"]`

    Dockerfile FROM mcr.microsoft.com/dotnet/aspnet:9.0 COPY bin/Release/net9.0/publish/ app/ WORKDIR /app ENV ASPNETCORE_URLS=http://+:80 ENTRYPOINT ["dotnet", "Approach.HttpApi.Host.dll"] `

  • User Avatar
    0
    sghorakavi@cpat.com created

    [maliming] said: hi

    Please also share your Approach.Domain.Shared module code.

    Thanks.

    `using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Approach.Localization; using Approach.MultiTenancy; using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; using Volo.Abp.PermissionManagement.Identity; using Volo.Abp.SettingManagement; using Volo.Abp.BlobStoring.Database; using Volo.Abp.Caching; using Volo.Abp.OpenIddict; using Volo.Abp.PermissionManagement.OpenIddict; using Volo.Abp.AuditLogging; using Volo.Abp.BackgroundJobs; using Volo.Abp.Emailing; using Volo.Abp.FeatureManagement; using Volo.Abp.Identity; using Volo.Abp.Commercial.SuiteTemplates; using Volo.Abp.LanguageManagement; using Volo.Abp.TextTemplateManagement; using Volo.Saas; using Volo.Abp.Gdpr;

    namespace Approach;

    [DependsOn( typeof(ApproachDomainSharedModule), typeof(AbpAuditLoggingDomainModule), typeof(AbpCachingModule), typeof(AbpBackgroundJobsDomainModule), typeof(AbpFeatureManagementDomainModule), typeof(AbpPermissionManagementDomainIdentityModule), typeof(AbpPermissionManagementDomainOpenIddictModule), typeof(AbpSettingManagementDomainModule), typeof(AbpEmailingModule), typeof(AbpIdentityProDomainModule), typeof(AbpOpenIddictProDomainModule), typeof(SaasDomainModule), typeof(TextTemplateManagementDomainModule), typeof(LanguageManagementDomainModule), typeof(VoloAbpCommercialSuiteTemplatesModule), typeof(AbpGdprDomainModule), typeof(BlobStoringDatabaseDomainModule) )] public class ApproachDomainModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { Configure

    #if DEBUG context.Services.Replace(ServiceDescriptor.Singleton<IEmailSender, NullEmailSender>()); #endif } } `

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    Please share the code of ApproachDomainSharedModule

    Thanks.

  • User Avatar
    0
    sghorakavi@cpat.com created

    [sghorakavi@cpat.com] said:

    [maliming] said: hi

    It seems your app uses the Invariant Language.

    Do you have UseAbpRequestLocalization in your module?

    Have you installed ICU in your Docker environment? Please share your Dockerfile.

    https://learn.microsoft.com/en-us/dotnet/core/extensions/globalization-icu

    You are correct, I do not have UseAbpRequestLocalization. Let me rebuild with that and send you the output

    I am testing with docker-compose.

    Dockerfile.local ` FROM mcr.microsoft.com/dotnet/aspnet:9.0 USER $APP_UID EXPOSE 8080 EXPOSE 8081

    COPY bin/Release/net9.0/publish/ app/ WORKDIR /app ENTRYPOINT ["dotnet", "Approach.HttpApi.Host.dll"]`

    Dockerfile FROM mcr.microsoft.com/dotnet/aspnet:9.0 COPY bin/Release/net9.0/publish/ app/ WORKDIR /app ENV ASPNETCORE_URLS=http://+:80 ENTRYPOINT ["dotnet", "Approach.HttpApi.Host.dll"] `

    I am recompiling docker-compose on my laptop and will send you the update with UseAbpRequestLocalization() line in host api. I have not installed ICU on laptop

  • User Avatar
    0
    sghorakavi@cpat.com created

    [maliming] said: hi

    Please share the code of ApproachDomainSharedModule

    Thanks.

    using Approach.Localization; using Volo.Abp.AuditLogging; using Volo.Abp.BackgroundJobs; using Volo.Abp.FeatureManagement; using Volo.Abp.Identity; using Volo.Abp.Localization; using Volo.Abp.Localization.ExceptionHandling; using Volo.Abp.Validation.Localization; using Volo.Abp.Modularity; using Volo.Abp.PermissionManagement; using Volo.Abp.SettingManagement; using Volo.Abp.VirtualFileSystem; using Volo.Abp.OpenIddict; using Volo.Abp.BlobStoring.Database; using Volo.Abp.LanguageManagement; using Volo.Abp.TextTemplateManagement; using Volo.Saas; using Volo.Abp.Gdpr; using Volo.Abp.GlobalFeatures;

    namespace Approach;

    [DependsOn( typeof(AbpAuditLoggingDomainSharedModule), typeof(AbpBackgroundJobsDomainSharedModule), typeof(AbpFeatureManagementDomainSharedModule), typeof(AbpPermissionManagementDomainSharedModule), typeof(AbpSettingManagementDomainSharedModule), typeof(AbpIdentityProDomainSharedModule), typeof(AbpOpenIddictProDomainSharedModule), typeof(LanguageManagementDomainSharedModule), typeof(SaasDomainSharedModule), typeof(TextTemplateManagementDomainSharedModule), typeof(AbpGdprDomainSharedModule), typeof(AbpGlobalFeaturesModule), typeof(BlobStoringDatabaseDomainSharedModule) )] public class ApproachDomainSharedModule : AbpModule { public override void PreConfigureServices(ServiceConfigurationContext context) { ApproachGlobalFeatureConfigurator.Configure(); ApproachModuleExtensionConfigurator.Configure(); }

    public override void ConfigureServices(ServiceConfigurationContext context)
    {
        Configure&lt;AbpVirtualFileSystemOptions&gt;(options =>
        {
            options.FileSets.AddEmbedded&lt;ApproachDomainSharedModule&gt;();
        });
    
        Configure&lt;AbpLocalizationOptions&gt;(options =>
        {
            options.Resources
                .Add&lt;ApproachResource&gt;("en")
                .AddBaseTypes(typeof(AbpValidationResource))
                .AddVirtualJson("/Localization/Approach");
    
            options.DefaultResourceType = typeof(ApproachResource);
            
            options.Languages.Add(new LanguageInfo("en", "en", "English")); 
            options.Languages.Add(new LanguageInfo("ar", "ar", "Arabic")); 
            options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "Chinese (Simplified)")); 
            options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "Chinese (Traditional)")); 
            options.Languages.Add(new LanguageInfo("cs", "cs", "Czech")); 
            options.Languages.Add(new LanguageInfo("en-GB", "en-GB", "English (United Kingdom)")); 
            options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); 
            options.Languages.Add(new LanguageInfo("fr", "fr", "French")); 
            options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "German (Germany)")); 
            options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi ")); 
            options.Languages.Add(new LanguageInfo("hu", "hu", "Hungarian")); 
            options.Languages.Add(new LanguageInfo("is", "is", "Icelandic")); 
            options.Languages.Add(new LanguageInfo("it", "it", "Italian")); 
            options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Portuguese (Brazil)")); 
            options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Romanian (Romania)")); 
            options.Languages.Add(new LanguageInfo("ru", "ru", "Russian")); 
            options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak")); 
            options.Languages.Add(new LanguageInfo("es", "es", "Spanish")); 
            options.Languages.Add(new LanguageInfo("sv", "sv", "Swedish")); 
            options.Languages.Add(new LanguageInfo("tr", "tr", "Turkish")); 
    
        });
        
        Configure&lt;AbpExceptionLocalizationOptions&gt;(options =>
        {
            options.MapCodeNamespace("Approach", typeof(ApproachResource));
        });
    }
    

    }

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    ok.

    Please remove all ReplaceEmbeddedByPhysical in your module.

    Or do not call it in docker environment.

    Thanks.

  • User Avatar
    0
    sghorakavi@cpat.com created

    [maliming] said: ok.

    Please remove all ReplaceEmbeddedByPhysical in your module.

    Or do not call it in docker environment.

    Thanks.

    Sure, I will build and send you update.

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    Great, we found the problem.

    Waiting for your good news.

    Thanks.

  • User Avatar
    0
    sghorakavi@cpat.com created

    [maliming] said: Great, we found the problem.

    Waiting for your good news.

    Thanks.

    Thank you very much. I am still getting same 400 error from swagger login.

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    Please add code to write some logs, make sure UseAbpRequestLocalization is applied,

  • User Avatar
    0
    sghorakavi@cpat.com created

    [maliming] said: Please add code to write some logs, make sure UseAbpRequestLocalization is applied,

    How can inject logger to ApproachHttpApiHostModule ?

    Below injection does not work

    private ILogger<ApproachHttpApiHostModule> _logger;

    private ApproachHttpApiHostModule(ILogger<ApproachHttpApiHostModule> logger) { _logger = logger; }

    public override void OnApplicationInitialization(ApplicationInitializationContext context) { var app = context.GetApplicationBuilder(); var env = context.GetEnvironment();

       // PathBase removed - ingress route already handles /api/auth prefix
       // This prevents conflicts with ABP framework endpoints like /api/abp/application-configuration
       app.UsePathBase("/portal/api");
       app.UseForwardedHeaders();
       if (env.IsDevelopment())
       {
           app.UseDeveloperExceptionPage();
       }
    
       _logger.LogInformation("before UseAbpRequestLocalization Application...");
       app.UseAbpRequestLocalization();
       _logger.LogInformation("after UseAbpRequestLocalization Application...");
       app.UseRouting();
       
       app.UseCors("SwaggerUICors");
       app.MapAbpStaticAssets();
    
       app.UseAbpStudioLink();
       app.UseAbpSecurityHeaders();
       app.UseCors();
       app.UseAuthentication();
    
       if (MultiTenancyConsts.IsEnabled)
       {
           app.UseMultiTenancy();
       }
    
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    
    using Microsoft.Extensions.DependencyInjection;
    using Microsoft.Extensions.Logging;
    using Volo.Abp;
    public override void OnApplicationInitialization(ApplicationInitializationContext context)
    {
        var app = context.GetApplicationBuilder();
        var env = context.GetEnvironment();
        // ✅ get logger from context
        var logger = context.ServiceProvider.GetRequiredService<ILogger<ApproachHttpApiHostModule>>();
        // PathBase removed - ingress route already handles /api/auth prefix
        // This prevents conflicts with ABP framework endpoints like /api/abp/application-configuration
        app.UsePathBase("/portal/api");
        app.UseForwardedHeaders();
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        logger.LogInformation("before UseAbpRequestLocalization Application...");
        app.UseAbpRequestLocalization();
        logger.LogInformation("after UseAbpRequestLocalization Application...");
        app.UseRouting();
    }
    
  • User Avatar
    0
    sghorakavi@cpat.com created

    [maliming] said: hi

     
    using Microsoft.Extensions.DependencyInjection; 
    using Microsoft.Extensions.Logging; 
    using Volo.Abp; 
    public override void OnApplicationInitialization(ApplicationInitializationContext context) 
    { 
        var app = context.GetApplicationBuilder(); 
        var env = context.GetEnvironment(); 
        // ✅ get logger from context 
        var logger = context.ServiceProvider.GetRequiredService<ILogger<ApproachHttpApiHostModule>>(); 
        // PathBase removed - ingress route already handles /api/auth prefix 
        // This prevents conflicts with ABP framework endpoints like /api/abp/application-configuration 
        app.UsePathBase("/portal/api"); 
        app.UseForwardedHeaders(); 
        if (env.IsDevelopment()) 
        { 
            app.UseDeveloperExceptionPage(); 
        } 
        logger.LogInformation("before UseAbpRequestLocalization Application..."); 
        app.UseAbpRequestLocalization(); 
        logger.LogInformation("after UseAbpRequestLocalization Application..."); 
        app.UseRouting(); 
    } 
    

    [11:22:57 INF] Starting Approach.HttpApi.Host. [11:22:59 INF] before UseAbpRequestLocalization Application... [11:22:59 INF] after UseAbpRequestLocalization Application... [11:22:59 INF] Saving external localizations... [11:23:00 INF] Initialized all ABP modules. [11:23:00 INF] Initializing UI Database [11:23:03 INF] Saving healthchecks configuration to database [11:23:03 WRN] Overriding HTTP_PORTS '8080' and HTTPS_PORTS ''. Binding to values defined by URLS instead 'https://+:8081;http://+:8080;'. [11:23:03 INF] Now listening on: https://[::]:8081 [11:23:03 INF] Now listening on: http://[::]:8080 [11:23:03 INF] Start processing HTTP request GET http://approach-httpapi-host:8080/health-status [11:23:03 INF] Sending HTTP request GET http://approach-httpapi-host:8080/health-status [11:23:03 INF] Application started. Press Ctrl+C to shut down. [11:23:03 INF] Hosting environment: Production [11:23:03 INF] Content root path: /app [11:23:03 INF] Request starting HTTP/1.1 GET http://approach-httpapi-host:8080/health-status - null null [11:23:04 INF] Request starting HTTP/2 GET https://localhost:44320/_framework/aspnetcore-browser-refresh.js - null null [11:23:04 INF] Request starting HTTP/2 GET https://localhost:44320/_vs/browserLink - null null [11:23:04 INF] Executing endpoint 'Health checks' [11:23:04 WRN] Savepoints are disabled because Multiple Active Result Sets (MARS) is enabled. If 'SaveChanges' fails, then the transaction cannot be automatically rolled back to a known clean state. Instead, the transaction should be rolled back by the application before retrying 'SaveChanges'. See https://go.microsoft.com/fwlink/?linkid=2149338 for more information and examples. To identify the code which triggers this warning, call 'ConfigureWarnings(w => w.Throw(SqlServerEventId.SavepointsDisabledBecauseOfMARS))'. [11:23:04 INF] Request finished HTTP/2 GET https://localhost:44320/_framework/aspnetcore-browser-refresh.js - 404 0 null 162.5215ms [11:23:04 INF] Request finished HTTP/2 GET https://localhost:44320/_vs/browserLink - 404 0 null 162.3951ms [11:23:04 INF] Request reached the end of the middleware pipeline without being handled by application code. Request path: GET https://localhost:44320/_vs/browserLink, Response status code: 404 [11:23:04 INF] Request reached the end of the middleware pipeline without being handled by application code. Request path: GET https://localhost:44320/_framework/aspnetcore-browser-refresh.js, Response status code: 404 [11:23:04 INF] Request starting HTTP/2 GET https://localhost:44320/swagger/v1/swagger.json - null null [11:23:05 INF] Request finished HTTP/2 GET https://localhost:44320/swagger/v1/swagger.json - 200 null application/json;charset=utf-8 908.6461ms [11:23:05 INF] Request starting HTTP/2 GET https://localhost:44320/api/abp/application-configuration - null null [11:23:05 INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController.GetAsync (Volo.Abp.AspNetCore.Mvc)' [11:23:05 INF] Route matched with {area = "abp", action = "Get", controller = "AbpApplicationConfiguration", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto] GetAsync(Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions) on controller Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController (Volo.Abp.AspNetCore.Mvc). [11:23:05 INF] Executed endpoint 'Health checks' [11:23:05 INF] Received HTTP response headers after 1876.9591ms - 200 [11:23:05 INF] Request finished HTTP/1.1 GET http://approach-httpapi-host:8080/health-status - 200 null application/json 1841.7786ms [11:23:05 INF] End processing HTTP request after 1884.8939ms - 200 [11:23:05 ERR] An exception was thrown while deserializing the token. Microsoft.AspNetCore.Antiforgery.AntiforgeryValidationException: The antiforgery token could not be decrypted. ---> System.Security.Cryptography.CryptographicException: The key {110f5fca-222d-45f6-822a-74abaeede8d2} was not found in the key ring. For more information go to https://aka.ms/aspnet/dataprotectionwarning at Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.UnprotectCore(Byte[] protectedData, Boolean allowOperationsOnRevokedKeys, UnprotectStatus& status) at Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.Unprotect(Byte[] protectedData) at Microsoft.AspNetCore.Antiforgery.DefaultAntiforgeryTokenSerializer.Deserialize(String serializedToken) --- End of inner exception stack trace --- at Microsoft.AspNetCore.Antiforgery.DefaultAntiforgeryTokenSerializer.Deserialize(String serializedToken) at Microsoft.AspNetCore.Antiforgery.DefaultAntiforgery.GetCookieTokenDoesNotThrow(HttpContext httpContext) [11:23:05 WRN] Savepoints are disabled because Multiple Active Result Sets (MARS) is enabled. If 'SaveChanges' fails, then the transaction cannot be automatically rolled back to a known clean state. Instead, the transaction should be rolled back by the application before retrying 'SaveChanges'. See https://go.microsoft.com/fwlink/?linkid=2149338 for more information and examples. To identify the code which triggers this warning, call 'ConfigureWarnings(w => w.Throw(SqlServerEventId.SavepointsDisabledBecauseOfMARS))'. [11:23:05 INF] Completed to save external localizations. [11:23:06 INF] Executing ObjectResult, writing value of type 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto'. [11:23:06 INF] Executed action Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController.GetAsync (Volo.Abp.AspNetCore.Mvc) in 784.5006ms [11:23:06 INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController.GetAsync (Volo.Abp.AspNetCore.Mvc)' [11:23:06 INF] Request finished HTTP/2 GET https://localhost:44320/api/abp/application-configuration - 200 null application/json; charset=utf-8 827.2599ms [11:23:06 INF] Request starting HTTP/2 GET https://localhost:44320/abp/Swashbuckle/SetCsrfCookie - null null [11:23:06 INF] Executing endpoint 'Volo.Abp.Swashbuckle.AbpSwashbuckleController.SetCsrfCookie (Volo.Abp.Swashbuckle)' [11:23:06 INF] Route matched with {area = "Abp", action = "SetCsrfCookie", controller = "AbpSwashbuckle", page = ""}. Executing controller action with signature Void SetCsrfCookie() on controller Volo.Abp.Swashbuckle.AbpSwashbuckleController (Volo.Abp.Swashbuckle). [11:23:06 INF] Executed action Volo.Abp.Swashbuckle.AbpSwashbuckleController.SetCsrfCookie (Volo.Abp.Swashbuckle) in 4.2037ms [11:23:06 INF] Executed endpoint 'Volo.Abp.Swashbuckle.AbpSwashbuckleController.SetCsrfCookie (Volo.Abp.Swashbuckle)' [11:23:06 INF] Request finished HTTP/2 GET https://localhost:44320/abp/Swashbuckle/SetCsrfCookie - 204 null null 10.9069ms [11:23:15 INF] Start processing HTTP request GET http://approach-httpapi-host:8080/health-status [11:23:15 INF] Sending HTTP request GET http://approach-httpapi-host:8080/health-status [11:23:15 INF] Request starting HTTP/1.1 GET http://approach-httpapi-host:8080/health-status - null null [11:23:15 INF] Executing endpoint 'Health checks' [11:23:15 INF] Executed endpoint 'Health checks' [11:23:15 INF] Received HTTP response headers after 9.0082ms - 200 [11:23:15 INF] End processing HTTP request after 9.4154ms - 200 [11:23:15 INF] Request finished HTTP/1.1 GET http://approach-httpapi-host:8080/health-status - 200 null application/json 8.3346ms [11:23:25 INF] Start processing HTTP request GET http://approach-httpapi-host:8080/health-status [11:23:25 INF] Sending HTTP request GET http://approach-httpapi-host:8080/health-status [11:23:25 INF] Request starting HTTP/1.1 GET http://approach-httpapi-host:8080/health-status - null null [11:23:25 INF] Executing endpoint 'Health checks' [11:23:25 INF] Executed endpoint 'Health checks' [11:23:25 INF] Request finished HTTP/1.1 GET http://approach-httpapi-host:8080/health-status - 200 null application/json 9.4956ms [11:23:25 INF] Received HTTP response headers after 10.7346ms - 200 [11:23:25 INF] End processing HTTP request after 10.9773ms - 200 [11:23:38 INF] Start processing HTTP request GET http://approach-httpapi-host:8080/health-status [11:23:38 INF] Sending HTTP request GET http://approach-httpapi-host:8080/health-status [11:23:38 INF] Request starting HTTP/1.1 GET http://approach-httpapi-host:8080/health-status - null null [11:23:38 INF] Executing endpoint 'Health checks' [11:23:38 INF] Executed endpoint 'Health checks' [11:23:38 INF] Received HTTP response headers after 5.708ms - 200 [11:23:38 INF] End processing HTTP request after 6.132ms - 200 [11:23:38 INF] Request finished HTTP/1.1 GET http://approach-httpapi-host:8080/health-status - 200 null application/json 5.5474ms [11:23:48 INF] Start processing HTTP request GET http://approach-httpapi-host:8080/health-status [11:23:48 INF] Sending HTTP request GET http://approach-httpapi-host:8080/health-status [11:23:48 INF] Request starting HTTP/1.1 GET http://approach-httpapi-host:8080/health-status - null null [11:23:48 INF] Executing endpoint 'Health checks' [11:23:48 INF] Executed endpoint 'Health checks' [11:23:48 INF] Received HTTP response headers after 6.6537ms - 200 [11:23:48 INF] Request finished HTTP/1.1 GET http://approach-httpapi-host:8080/health-status - 200 null application/json 6.3891ms [11:23:48 INF] End processing HTTP request after 6.9929ms - 200

  • User Avatar
    0
    sghorakavi@cpat.com created

    We have a issue with webservice. That might be easier to fix. Should I create new tkt or should i put logs here ?

Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.2.0-preview. Updated on January 30, 2026, 08:56
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.