Activities of "Yaduraj.Shakti"

Unauthenticated users were able to retrieve the contents of the tenants and paged tenants. https://myhost/api/saas/tenants

How to Secure this in our application?

  • ABP Framework version: v7.2.2
  • UI Type: Angularr
  • Database System: EF Core (PostgreSQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes/no
  • Exception message and full stack trace:
  • Steps to reproduce the issue: This behaviour can be seen in demo application as well https://commercial-demo.abp.io/api/saas/tenants

Currently there are no limits on number of attempts that could be made to this functionality which creates risk of brute force. Do we have any existing validations or feature to protect such attacks in abp.io?

  • ABP Framework version: v7.2.2
  • UI Type: Angularr
  • Database System: EF Core (PostgreSQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes/no
  • Exception message and full stack trace:

We've set up an External API that's meant for a specific client or consumer. This client will be using Token-based authentication to access the API (either through a Controller or an AppService). However, we want to restrict their access only to this particular API and prevent them from accessing any of our other APIs.

The issue we're facing is that some of our controllers or AppServices don't have the [Authorize] attribute, and we need to protect those by requiring a token. Currently, if we generate a token, we can access these endpoints without proper authorization. We can't solve this using permissions because it requires us to decorate methods with Authorize("permission").

For instance, we generate a token from the endpoint: https://our-IdentityServer.com/connect/token using the default JWT Scheme. The parameters include:

grant_type: password scope: Microservice1, Microservice2, Microservice3, and so on client_id: App1 client_secret: xyz123 username: ExternalUser password: Test1234

Important: The token generate for client should not be able to access any of other restricted non-restricted (without [Autthorize] services) APIs of the system.

  • ABP Framework version: v7.4.0
  • UI Type: Angular
  • Database System: EF Core/ PostgreSQL
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes/no
  • Exception message and full stack trace:
  • Steps to reproduce the issue:

Abp Nuget is down. Unable to restore from https://nuget.abp.io/

  • ABP Framework version: vX.X.X
  • UI Type: Angular / MVC / Blazor WASM / Blazor Server
  • Database System: EF Core (SQL Server, Oracle, MySQL, PostgreSQL, etc..) / MongoDB
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes/no
  • Exception message and full stack trace:
  • Steps to reproduce the issue:

We want to send a monthly report to end users from our application (microservice) and want to use background Jobs. Please can you share how to set a CRON or schedule without using Hangfire or any other library.

Also suggest if there are other ways for this use-case. Thanks

https://docs.abp.io/en/abp/latest/Background-Jobs

  • ABP Framework version: v7.2.2
  • UI Type: Angularr
  • Database System: EF Core (PostgreSQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes/no
  • Exception message and full stack trace:

We have recently started using Daper with EF Core. Our unit tests are written based on previous implementation of EF Core and using default SQLLite. Now we want to test our repository and dependent unit tests but it gives error like Microsoft.Data.Sqlite.SqliteException : SQLite Error 1: 'no such table: public.MyTables.

I have reviewed daper documentation and there are no details on unit testing and also checked the DaperDemo. https://github.com/abpframework/abp-samples/tree/master/Dapper/DapperDemo

Please can you help with a sample on how to unit tests code or repository that using daper. Thanks

  • ABP Framework version: v8.3.0
  • UI Type: Angular
  • Database System: EF Core (PostgreSQL) and Daper
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Exception message and full stack trace: No Such Table found
  • Steps to reproduce the issue: Write unit test that calls the Daper repository to access seeded data.

Hi,

We need help with Local Events in ABP.IO. We are performing certain notifications when an entity is created or updated. Inside the handleEvent method, we have used a try-catch block and are not throwing any errors. However, this ILocalEvent handling is causing performance issues, and our APIs are taking around 1.5 seconds to respond. One of the handlers performs an insert operation.

We have tried changing our handler code to the following: `

public async Task HandleEventAsync(EntityCreatedEventData<MyEntity> eventData)
{
// Offload the event handling to a separate thread
await Task.Run(async () =>
{
    // Our event handling logic here, notification or database operation
});
}`

Does this look good to you?

Can you provide any insights or suggestions to improve the performance? is await Task.Run(async ()).. is required? is seperate ouw required inside the handler?

  • ABP Framework version: v8.3.0
  • UI Type: Angular
  • Database System: EF Core (PostgreSQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Exception message and full stack trace: No exception But Angular APIs needs to refresh again to get updated data so we need to put the call in setTimeout for 1-2 seconds.
  • Steps to reproduce the issue: NA

Please help us with the following scenario:

In our application, we are facing an issue where access tokens issued for one user can potentially be used by another user to make API requests. This is creating a significant security concern regarding token validation.

We attempted to mitigate the risk by reducing the access token lifetime, but this introduces the need to implement refresh tokens, which adds complexity.

Our key requirement is: The access token generated for a specific user/session should only be usable by that same user on the same device or session. No other system or user should be able to reuse or impersonate that token. What is the best practice in ABP.IO (and OpenIddict) to ensure tokens are strictly bound to the original user and device/session? Is there a recommended way to include and validate a session ID, device fingerprint, or user agent for this purpose?

Any guidance on how to implement this securely within the ABP.IO framework would be greatly appreciated.

We followed the documentation here: https://abp.io/docs/8.0/Modules/OpenIddict#refresh-token

Following is the snapshot of our OpenIddict build and server configuration:

ABP Framework version: v8.3.1 UI Type: Angular Database System: EF Core (PostgreSQL) Tiered (for MVC) or Auth Server Separated (for Angular): yes Exception message and full stack trace: NA Steps to reproduce the issue: NA

We are currently implementing token binding in our Identity Server using OpenIddict within the ABP.IO framework (v8.3.0), and we want to securely associate each access token with a unique session identifier stored in a HttpOnly cookie.

Our goal is to:

  • Set a HttpOnly, Secure, SameSite=None cookie (e.g., X-Session-Id) during /connect/token requests.
  • Store a unique session ID (e.g., Guid.NewGuid().ToString()) in the cookie.
  • Read this session ID inside a custom IAbpClaimsPrincipalContributor and bind it to a token claim (secure_session_id).
  • Validate this cookie against the claim on every subsequent request to prevent token reuse outside the originating browser/session.

What we tried so far:

  • Implemented a middleware that runs before await next(), sets the session ID in HttpContext.Items, and appends a HttpOnly cookie using context.Response.OnStarting():
context.Response.Cookies.Append("X-Session-Id", sessionId, new CookieOptions
{
    HttpOnly = true,
    Secure = true,
    SameSite = SameSiteMode.None,
    Path = "/",
    Expires = DateTimeOffset.UtcNow.AddHours(8)
});
  • Used this cookie value in a custom IAbpClaimsPrincipalContributor to add the session ID claim.
  • Validated the claim against the cookie in OnTokenValidated using a custom JwtBearerEvents.

We are not sure if this approach is fully aligned with ABP.IO best practices, especially regarding:

  • Correct place to hook into the token pipeline for cookie creation (/connect/token)
  • Whether context.Response.OnStarting() is safe and recommended inside a custom IApplicationBuilder.Use(...) extension
  • Any built-in support ABP.IO has for setting session-bound HttpOnly cookies alongside token issuance

Exception: As soon as any request includes cookies (due to withCredentials: true in Angular), our backend rejects the request — even if the cookies are unrelated to antiforgery.

Hi Team,

We have implemented access and refresh tokens in our application, and all standard validations are in place.

However, we’ve observed that even after logging out, the original access token obtained during login remains valid and can still be used for API calls until it naturally expires.

We would like to explicitly mark the access token as expired or revoked during logout to prevent any further usage. Could you please advise how we can achieve this within the ABP.IO and OpenIddict setup?

Looking forward to your guidance.

Showing 1 to 10 of 12 entries
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.1.0-preview. Updated on November 07, 2025, 08:20