Your link to package.json doesn't work. I am sure that my package.json file is correct.
I did some research and turns out that after some update ESET started blocking https access for npm/node.js Here are some details: https://forum.eset.com/topic/40702-eset-ssl-protection-produces-an-invalid-certificate-chain-for-nodejs-apps/
Here's the result of yarn
command:
yarn install v1.22.10
info No lockfile found.
[1/4] Resolving packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/@volo%2fabp.aspnetcore.mvc.ui.theme.leptonx: unable to verify the first certificate".
info If you think this is a bug, please open a bug report with the information provided in "ProjectPath\\yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
yarn-error.log
:
Arguments:
C:\Program Files\nodejs\node.exe C:\Users\DawidK\AppData\Roaming\npm\node_modules\yarn\bin\yarn.js
PATH:
...
Yarn version:
1.22.10
Node version:
18.20.2
Platform:
win32 x64
Trace:
Error: unable to verify the first certificate
at TLSSocket.onConnectSecure (node:_tls_wrap:1659:34)
at TLSSocket.emit (node:events:517:28)
at TLSSocket._finishInit (node:_tls_wrap:1070:8)
at ssl.onhandshakedone (node:_tls_wrap:856:12)
npm manifest:
{
"version": "0.1.0",
"name": "my-app-authserver",
"private": true,
"dependencies": {
"@volo/abp.aspnetcore.mvc.ui.theme.leptonx": "~3.1.1",
"@volo/account": "~8.0.1"
}
}
yarn manifest:
No manifest
Lockfile:
No lockfile
Here's angular package.json:
{
"name": "MyApp",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve --open",
"build": "ng build",
"build:prod": "ng build --configuration production",
"watch": "ng build --watch --configuration development",
"test": "ng test",
"lint": "ng lint",
"postinstall": "npm run compile:ivy",
"compile:ivy": "yarn ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points --tsconfig './tsconfig.prod.json' --source node_modules"
},
"private": true,
"dependencies": {
"@abp/ng.components": "~8.0.1",
"@abp/ng.core": "~8.0.1",
"@abp/ng.oauth": "~8.0.1",
"@abp/ng.setting-management": "~8.0.1",
"@abp/ng.theme.shared": "~8.0.1",
"@angular/animations": "^17.0.8",
"@angular/common": "^17.0.8",
"@angular/compiler": "^17.0.8",
"@angular/core": "^17.0.8",
"@angular/forms": "^17.0.8",
"@angular/localize": "^17.0.8",
"@angular/platform-browser": "^17.0.8",
"@angular/platform-browser-dynamic": "^17.0.8",
"@angular/router": "^17.0.8",
"@types/dragula": "^3.7.4",
"@volo/abp.commercial.ng.ui": "~8.0.1",
"@volo/abp.ng.account": "~8.0.1",
"@volo/abp.ng.audit-logging": "~8.0.1",
"@volo/abp.ng.gdpr": "~8.0.1",
"@volo/abp.ng.identity": "~8.0.1",
"@volo/abp.ng.identity-server": "~8.0.1",
"@volo/abp.ng.language-management": "~8.0.1",
"@volo/abp.ng.openiddictpro": "~8.0.1",
"@volo/abp.ng.payment": "~8.0.1",
"@volo/abp.ng.saas": "~8.0.1",
"@volo/abp.ng.text-template-management": "~8.0.1",
"@volo/abp.ng.theme.lepton": "~8.0.1",
"@volosoft/abp.ng.theme.lepton-x": "^3.0.1",
"devextreme": "^23.2.3",
"devextreme-angular": "^23.2.3",
"devextreme-schematics": "^1.6.5",
"dragula": "^3.7.3",
"ng-gallery": "6.0.1",
"ng2-dragula": "^5.0.1",
"rxjs": "~7.8.0",
"tslib": "^2.1.0",
"zone.js": "~0.14.3"
},
"devDependencies": {
"@abp/ng.schematics": "~8.0.1",
"@angular-devkit/build-angular": "^17.0.9",
"@angular-eslint/builder": "~17.2.0",
"@angular-eslint/eslint-plugin": "~17.2.0",
"@angular-eslint/eslint-plugin-template": "~17.2.0",
"@angular-eslint/schematics": "~17.2.0",
"@angular-eslint/template-parser": "~17.2.0",
"@angular/cli": "^17.0.9",
"@angular/compiler-cli": "^17.0.8",
"@angular/language-service": "^17.0.8",
"@types/jasmine": "~3.6.0",
"@types/node": "^12.11.1",
"@typescript-eslint/eslint-plugin": "^5.59.2",
"@typescript-eslint/parser": "^5.59.2",
"devextreme-cli": "1.6.5",
"devextreme-themebuilder": "^23.2.3",
"eslint": "^8.39.0",
"jasmine-core": "~4.0.0",
"karma": "~6.3.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage": "~2.1.0",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.7.0",
"ng-packagr": "^17.0.3",
"typescript": "~5.2.2"
}
}
Here's AuthServer's package.json:
{
"version": "0.1.0",
"name": "my-app-authserver",
"private": true,
"dependencies": {
"@volo/abp.aspnetcore.mvc.ui.theme.leptonx": "~3.0.0",
"@volo/account": "~8.0.1"
}
}
I understand. Please let me know when the patch is released.
Here are the logs:
2023-04-28 15:03:57.651 +02:00 [INF] Executing endpoint '/Payment/Stripe/PostPayment'
2023-04-28 15:03:57.654 +02:00 [INF] Route matched with {page = "/Payment/Stripe/PostPayment", action = "", controller = "", area = ""}. Executing page /Payment/Stripe/PostPayment
2023-04-28 15:03:57.654 +02:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy
2023-04-28 15:03:57.658 +02:00 [INF] Executing handler method Volo.Payment.Stripe.Pages.Payment.Stripe.PostPaymentModel.OnGetAsync - ModelState is "Valid"
2023-04-28 15:03:58.079 +02:00 [INF] Stripe session object: {
"id": "cs_test_a1KwGMtweU2le8Q6e7qFYf4ZSBwfXTWf2ayUlE6blrP2O1R9z3jxsbozCf",
"object": "checkout.session",
"allow_promotion_codes": null,
"amount_subtotal": 1000,
"amount_total": 1000,
"billing_address_collection": null,
"cancel_url": "https://localhost:44342",
"client_reference_id": null,
"currency": "pln",
"customer": "cus_NnRroLuNFjw3Vv",
"customer_email": null,
"line_items": null,
"livemode": false,
"locale": "auto",
"metadata": {
"PaymentRequestId": "07c4eda8-8676-82e7-ff15-3a0ada230abb"
},
"mode": "subscription",
"payment_intent": null,
"payment_method_types": [
"card"
],
"payment_status": "paid",
"setup_intent": null,
"shipping": null,
"shipping_address_collection": null,
"submit_type": null,
"subscription": "sub_1N1qxpFhaWBJAQ5KtX3H5XCq",
"success_url": "https://localhost:44342/Payment/Stripe/PostPayment?SessionId={CHECKOUT_SESSION_ID}",
"total_details": {
"amount_discount": 0,
"amount_tax": 0,
"breakdown": null
}
}
2023-04-28 15:03:58.094 +02:00 [INF] Executed page /Payment/Stripe/PostPayment in 439.5326ms
2023-04-28 15:03:58.094 +02:00 [INF] Executed endpoint '/Payment/Stripe/PostPayment'
2023-04-28 15:03:58.110 +02:00 [DBG] Added 0 entity changes to the current audit log
2023-04-28 15:03:58.110 +02:00 [DBG] Added 0 entity changes to the current audit log
2023-04-28 15:03:58.115 +02:00 [ERR] An unhandled exception has occurred while executing the request.
System.ApplicationException: Can not complete a payment in 'Completed' state!
at Volo.Payment.Requests.PaymentRequest.Complete()
at Volo.Payment.Stripe.StripePaymentGateway.CompleteAsync(Dictionary`2 parameters)
at Volo.Payment.Requests.PaymentRequestAppService.CompleteAsync(String paymentGateway, Dictionary`2 parameters)
at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo)
at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync()
at Volo.Abp.GlobalFeatures.GlobalFeatureInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo)
at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync()
at Volo.Abp.Auditing.AuditingInterceptor.ProceedByLoggingAsync(IAbpMethodInvocation invocation, AbpAuditingOptions options, IAuditingHelper auditingHelper, IAuditLogScope auditLogScope)
at Volo.Abp.Auditing.AuditingInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo)
at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync()
at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo)
at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync()
at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
at Volo.Payment.Stripe.Pages.Payment.Stripe.PostPaymentModel.OnGetAsync()
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Convert[T](Object taskAsObject)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Execute(Object receiver, Object[] arguments)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeHandlerMethodAsync()
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeNextPageFilterAsync()
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Rethrow(PageHandlerExecutedContext context)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeInnerFilterAsync()
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Volo.Abp.AspNetCore.Serilog.AbpSerilogMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Volo.Abp.AspNetCore.Auditing.AbpAuditingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Volo.Abp.AspNetCore.Auditing.AbpAuditingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Volo.Abp.AspNetCore.Uow.AbpUnitOfWorkMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Volo.Abp.AspNetCore.ExceptionHandling.AbpExceptionHandlingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Volo.Abp.AspNetCore.ExceptionHandling.AbpExceptionHandlingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Builder.ApplicationBuilderAbpOpenIddictMiddlewareExtension.<>c__DisplayClass0_0.<<UseAbpOpenIddictValidation>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Volo.Abp.AspNetCore.Security.AbpSecurityHeadersMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)
2023-04-28 15:03:58.168 +02:00 [INF] Request finished HTTP/2 GET https://localhost:44342/Payment/Stripe/PostPayment?SessionId=cs_test_a1KwGMtweU2le8Q6e7qFYf4ZSBwfXTWf2ayUlE6blrP2O1R9z3jxsbozCf - - - 500 - text/html;+charset=utf-8 521.2704ms
2023-04-28 15:03:58.202 +02:00 [INF] Request starting HTTP/2 GET https://localhost:44342/_vs/browserLink - -
2023-04-28 15:03:58.211 +02:00 [INF] Request starting HTTP/2 GET https://localhost:44342/_framework/aspnetcore-browser-refresh.js - -
2023-04-28 15:03:58.229 +02:00 [INF] Request finished HTTP/2 GET https://localhost:44342/_framework/aspnetcore-browser-refresh.js - - - 200 12030 application/javascript;+charset=utf-8 1.7892ms
2023-04-28 15:03:58.260 +02:00 [INF] Request finished HTTP/2 GET https://localhost:44342/_vs/browserLink - - - 200 - text/javascript;+charset=UTF-8 57.9846ms
2023-04-28 15:03:59.860 +02:00 [DBG] Executing HealthCheck collector HostedService.
2023-04-28 15:03:59.861 +02:00 [INF] Start processing HTTP request GET https://localhost:44342/health-status
2023-04-28 15:03:59.861 +02:00 [INF] Sending HTTP request GET https://localhost:44342/health-status
2023-04-28 15:03:59.881 +02:00 [INF] Request starting HTTP/1.1 GET https://localhost:44342/health-status - -
...
2023-04-28 15:03:59.883 +02:00 [INF] Executing endpoint 'Health checks'
2023-04-28 15:03:59.889 +02:00 [DBG] Added 0 entity changes to the current audit log
2023-04-28 15:03:59.889 +02:00 [INF] Executed endpoint 'Health checks'
2023-04-28 15:03:59.889 +02:00 [INF] Request finished HTTP/1.1 GET https://localhost:44342/health-status - - - 200 - application/json 8.5741ms
2023-04-28 15:03:59.902 +02:00 [INF] Received HTTP response headers after 40.9383ms - 200
2023-04-28 15:03:59.902 +02:00 [INF] End processing HTTP request after 41.2369ms - 200
2023-04-28 15:03:59.903 +02:00 [DBG] HealthReportCollector - health report execution history saved.
2023-04-28 15:03:59.903 +02:00 [DBG] HealthReport history already exists and is in the same state, updating the values.
2023-04-28 15:03:59.903 +02:00 [DBG] HealthReportCollector has completed.
2023-04-28 15:03:59.903 +02:00 [DBG] HealthCheck collector HostedService executed successfully.
After adding my custom CorsPolicyBuilderExtension I'm finally able to read the header in angular. I think it should be in the framework by default. I see it was just added in v7.2.0 which is not released yet. It's missing in previous stable verions. Therefore I consider it a bug and I would appreciate refunding my ticket. Thanks.
I know how it should work and what that header means. I wrote the ticket because it does not work that way.
I created a new project, v7.1.1. I overrode the error handler as you described. I added new active tenant, logged in on another browser, deactivated the tenant and refreshed the second browser. Here are the results:
The "Abp-Tenant-Resolve-Error" is visible in devtools but I cannot access it from angular code. It is null, it does not exist.
I found the issue, I didn't import the TopMenuLayoutModule after changing the angular.json file. Works fine now, thanks.
Any updates about the first issue? (Collapse menu button missing).
Please elaborate. Where do I inject this token and from where do I import LPX_THEMES and LPX_THEME_STYLES_DEFAULTS?