When sending X-Requested-With :XMLHttpRequest
in the header, the correct status is responded when unauthorized: 401 instead of 200.
But the content is still the HTML page:
...
<div class="col">
<div class="status-content">
<h1>401</h1>
<h2 class="text-danger mb-0">
Unauthorized<small class="text-muted">An internal error occurred during your request!</small>
</h2>
<p class="mt-3 mb-4"></p>
<a href="/" class="btn btn-primary">Go to the homepage</a>
<a href="javascript:history.back()"
class="mt-4 mb-1 d-block"><i class="fa fa-long-arrow-left"></i> Go back</a>
</div>
</div>
...
How can I get a the default error JSON response content?
{
"error": {
"message": "Some error message"
}
}
I tried to send additional headers: Content-Type: application/json Accept: application/json
But the content is always HTML.
Thank you for your help!
How is it possible to have multiple languages link to 1 localization file? e.g. "de", "de-de", "de-at" should all show the translations of 1 translation file.
This is required when the client sends the language (e.g. as cookie or query param). Currently with only 1 language "de-de", when the client sends "de-at", it will show the default language english.
As a workaround we duplicate the jsons, which is a overhead on every text change.
Thank you in advance!
So there is no way to make it work?
Often localization JSONs in projects are made to be changeable during runtime, so I thought maybe ABP has something like this.
We want to update localization Files (e.g. en.json) during runtime (e.g. when application is restarted).
Documentation (https://docs.abp.io/en/abp/latest/Localization) says
"JSON files are embedded into the assembly using AbpVirtualFileSystemOptions (see virtual file system)."
Configure<AbpLocalizationOptions>(options =>
{
//Define a new localization resource (MyProjectName)
options.Resources
.Add<MyProjectName>("en")
.AddVirtualJson("/Localization/MyProjectName");
});
And on https://docs.abp.io/en/abp/latest/Virtual-File-System:
"Physical files always override the virtual files. That means if you put a file under the /wwwroot/my-folder/my-file.css, it will override the file in the same location of the virtual file system. So, you need to know the file paths defined in the modules to override them."
Now when I put a file there, e.g. /wwwroot/Localization/MyProjectName/en.json, it does not overwrite the localization text. I also tried /Localization/MyProjectName/en.json, which also does not work.
So my question is, how is it possible to update whole localization JSON files during runtime?
Updating single texts via UI Administration->Language Management does not solve the issue, as we have hundreds of texts
Thank you in advance!
On backend the exception is Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
which is okay because this can happen.
It can be reproduced by just throwing an exception in the audit log controller.
Our issue is that the UI audit log crashes (v5.1.4) because of this.
Because the payload is too small, as you just checked health-status. With 50k entries that include an exception with a message it will be different.
It may also work to just add a delay of 1 minute the audit controller GET, as the UI crash happens because of a timeout exception.
Can be reproduced with just your starter template (blazor server).
1:
abp new Acme.BookStore --theme basic
2: Add test controller to create exceptions:
using System;
using Microsoft.AspNetCore.Authorization;
namespace Acme.BookStore;
/* Inherit your application services from this class.
*/
[AllowAnonymous]
public class TestAppService : BookStoreAppService
{
public string setError(string errorMessage = "")
{
throw new Exception("TEST error !!!!!!!!!!!!!");
}
}
3: Use Postman Runner to call
POST https://localhost:44332/api/app/test/set-error?errorMessage=asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf
I tested with inserting 50k entries
The audit log UI will throw an error starting from 3000.
Audit log UI can only handle little data. When using blazor, UI crashes when too much data exists & call runs into timeout.
Please provide an option to disable pagination. Allowing to search for everything looks nice, but does not work. We need audit logs that do not crash when many logs exist in a short amout of time.
Expected behaviour: PW should be displayed empty when it cannot be decrypted, so that it is still possible to change it via UI.