Commit Graph

3936 Commits

Author SHA1 Message Date
Ludy
702b030402
Merge branch 'main' into test_20250809 2025-08-11 14:11:40 +02:00
stirlingbot[bot]
901218cdb2
🌐 Sync Translations + Update README Progress Table (#4174)
### Description of Changes

This Pull Request was automatically generated to synchronize updates to
translation files and documentation. Below are the details of the
changes made:

#### **1. Synchronization of Translation Files**
- Updated translation files (`messages_*.properties`) to reflect changes
in the reference file `messages_en_GB.properties`.
- Ensured consistency and synchronization across all supported language
files.
- Highlighted any missing or incomplete translations.

#### **2. Update README.md**
- Generated the translation progress table in `README.md`.
- Added a summary of the current translation status for all supported
languages.
- Included up-to-date statistics on translation coverage.

#### **Why these changes are necessary**
- Keeps translation files aligned with the latest reference updates.
- Ensures the documentation reflects the current translation progress.

---

Auto-generated by [create-pull-request][1].

[1]: https://github.com/peter-evans/create-pull-request

Co-authored-by: stirlingbot[bot] <195170888+stirlingbot[bot]@users.noreply.github.com>
2025-08-11 12:29:51 +01:00
Dario Ghunney Ware
6699facc24
JWT Authentication (#3921)
This PR introduces JWT (JSON Web Token) authentication for Stirling-PDF,
allowing for stateless authentication capabilities alongside the
existing session-based authentication system.

### Key Features & Changes

  JWT Authentication System
- Core Service: JwtService.java - Token generation, validation, and
cookie management
- Authentication Filter: JwtAuthenticationFilter.java - Request
interceptor for JWT validation
- Key Management: KeyPersistenceService.java +
KeyPairCleanupService.java - RSA key rotation and persistence
  - Frontend: jwt-init.js - Client-side JWT handling and URL cleanup

  Security Integration
- SAML2: JwtSaml2AuthenticationRequestRepository.java - JWT-backed SAML
request storage
- OAuth2: Updated CustomAuthenticationSuccessHandler. java,
CustomOAuth2AuthenticationSuccessHandler.java &
CustomSaml2AuthenticationSuccessHandler.java for JWT integration
- Configuration: Enhanced SecurityConfiguration.java with JWT filter
chain

  Infrastructure
  - Caching: CacheConfig.java - Caffeine cache for JWT keys
  - Database: New JwtVerificationKey.java entity for key storage
- Error Handling: JwtAuthenticationEntryPoint.java for unauthorized
access

### Challenges Encountered

- Configured SecurityConfiguration to use either
`UsernamePasswordAuthenticationFilter` or `JWTAuthenticationFilter`
based on whether JWTs are enabled to prevent the former intercepting
requests while in stateless mode.
- Removed the `.defaultSuccessUrl("/")` from login configuration as its
inclusion was preventing overriding the use of the
`CustomAuthenticationSuccessHandler` and preventing proper
authentication flows.
---

## Checklist

### General

- [x] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [x] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md)
(if applicable)
- [x] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md)
(if applicable)
- [x] I have performed a self-review of my own code
- [x] My changes generate no new warnings

### Documentation

- [x] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
(if functionality has heavily changed)
- [x] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)

### UI Changes (if applicable)

- [x] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)
<img width="599" height="515" alt="Screenshot 2025-07-10 at 13 35 56"
src="https://github.com/user-attachments/assets/4126b752-ad0d-4ffa-b295-6714c43381e1"
/>

<img width="392" height="376" alt="Screenshot 2025-07-10 at 13 36 10"
src="https://github.com/user-attachments/assets/c681bc43-68ff-4934-8245-d544e2ad7b9c"
/>

<img width="1870" height="986" alt="eb750e8c3954fc47b2dd2e6e76ddb7d5"
src="https://github.com/user-attachments/assets/fca9b23d-b0b6-4884-8a26-98a441b641ef"
/>

<img width="1299" height="702" alt="Screenshot 2025-07-10 at 13 30 57"
src="https://github.com/user-attachments/assets/9415d8bf-fac4-4d38-8c3a-985d043d1076"
/>

### Testing (if applicable)

- [x] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing)
for more details.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ludy <Ludy87@users.noreply.github.com>
Co-authored-by: EthanHealy01 <80844253+EthanHealy01@users.noreply.github.com>
Co-authored-by: Ethan <ethan@MacBook-Pro.local>
Co-authored-by: Anthony Stirling <77850077+Frooodle@users.noreply.github.com>
2025-08-11 12:27:42 +01:00
Ludy
74c92ef215
chore(labeler): add new 'v2' label and expand matching rules (#4172)
# Description of Changes

- **Added** a new `v2` label with `base-branch` targeting `V2`
- **Extended** the 'UI' label matching to include `frontend/**` files
- **Extended** the 'Scripts' label matching to include `docker/**` files
- **Removed** duplicate `devTools/.*` entry from 'Devtools' label
configuration

---

## Checklist

### General

- [x] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [x] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md)
(if applicable)
- [ ] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md)
(if applicable)
- [ ] I have performed a self-review of my own code
- [x] My changes generate no new warnings

### Documentation

- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)

### UI Changes (if applicable)

- [ ] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)

### Testing (if applicable)

- [ ] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing)
for more details.
2025-08-11 10:26:57 +01:00
Ludy87
2e8b81840f
Create UnsupportedClaimExceptionTest.java 2025-08-10 14:04:20 +02:00
Ludy87
b1bb5d6a07
Create InputStreamTemplateResourceTest.java 2025-08-10 14:03:19 +02:00
Ludy87
9b5ad4a797
Update FileInfoTest.java 2025-08-10 14:03:06 +02:00
Ludy87
f5907fe58c
Create ExceptionUtilsTest.java 2025-08-10 13:45:05 +02:00
Ludy87
9971bac0f2
Create TempDirectoryTest.java 2025-08-10 13:44:59 +02:00
Ludy87
7982dce7f0
Delete ValidationUtil.java 2025-08-10 13:38:28 +02:00
Ludy87
053eeb2ee0
Update CustomHtmlSanitizerTest.java 2025-08-10 13:26:49 +02:00
Ludy87
12902dcdfe
Update JobControllerTest.java 2025-08-10 12:40:06 +02:00
Ludy87
a1e029679a
Update CertificateValidationServiceTest.java 2025-08-10 12:35:41 +02:00
Ludy87
cf2f366e8e
Update CorrelationIdFilterTest.java 2025-08-10 12:30:23 +02:00
Ludy87
1973c86720
Update SecretMaskerTest.java 2025-08-10 12:30:17 +02:00
Ludy87
1d9112ec63
Update AttemptCounterTest.java 2025-08-10 12:30:13 +02:00
Ludy87
0f0247f006
Update ConvertPDFToMarkdownTest.java 2025-08-10 12:30:09 +02:00
Ludy87
789a3bd2a7
Update AdditionalLanguageJsControllerTest.java 2025-08-10 12:30:04 +02:00
Ludy87
445b6b4b0a
Update CustomColorReplaceStrategyTest.java 2025-08-10 12:29:57 +02:00
Ludy87
2787c46b0b
Create CorrelationIdFilterTest.java 2025-08-10 12:22:10 +02:00
Ludy87
a9ad7f077b
Create AuditWebFilterTest.java 2025-08-10 12:21:18 +02:00
Ludy87
e0b07a18d5
Create SecretMaskerTest.java 2025-08-10 12:18:53 +02:00
Ludy87
dace926400
Create NoProviderFoundExceptionTest.java 2025-08-10 12:17:56 +02:00
Ludy87
100f9000d3
Create BackupNotFoundExceptionTest.java 2025-08-10 12:17:48 +02:00
Ludy87
0ff57a1ed5
Create UserTest.java 2025-08-10 12:16:50 +02:00
Ludy87
0aa7da1634
Create AuthorityTest.java 2025-08-10 12:16:02 +02:00
Ludy87
17970ce56d
Create AttemptCounterTest.java 2025-08-10 12:14:51 +02:00
Ludy87
bf364938eb
Create ApiKeyAuthenticationTokenTest.java 2025-08-10 12:14:34 +02:00
Ludy87
076c9393ea
Create JPATokenRepositoryImplTest.java 2025-08-10 12:12:39 +02:00
Ludy87
5fd03a68a8
Create ScheduledTasksTest.java 2025-08-10 12:12:22 +02:00
Ludy87
214e125035
Create H2SQLConditionTest.java 2025-08-10 12:11:42 +02:00
Ludy87
5f38b0a439
Update DatabaseConfigTest.java 2025-08-10 12:11:00 +02:00
Ludy87
1678eeb64f
Create TeamTest.java 2025-08-10 12:10:50 +02:00
Ludy87
44850b9dca
Update PdfUtilsTest.java 2025-08-10 12:09:19 +02:00
Ludy87
4309288a74
Update PdfUtilsTest.java 2025-08-10 12:06:34 +02:00
Ludy87
ff124fc5c7
Update measure_coverage.yml 2025-08-10 12:04:53 +02:00
Ludy87
6a05c695b5
Create TeamWithUserCountDTOTest.java 2025-08-10 01:15:49 +02:00
Ludy87
a5957e99dc
Create ReplaceAndInvertColorFactoryTest.java 2025-08-10 01:15:37 +02:00
Ludy87
3561c1f5a4
Create ConnectedInputStreamTest.java 2025-08-10 01:15:28 +02:00
Ludy87
f37656bbfc
Update CertificateValidationServiceTest.java 2025-08-10 01:00:03 +02:00
Ludy87
2cbc733daa
Update JobControllerTest.java 2025-08-10 00:59:55 +02:00
Ludy87
1fb9c18530
Update measure_coverage.yml 2025-08-10 00:17:53 +02:00
Ludy87
722795b9c9
Update measure_coverage.yml 2025-08-10 00:15:19 +02:00
Ludy87
63db6699d5
Create ConvertPDFToMarkdownTest.java 2025-08-10 00:07:57 +02:00
Ludy87
8eefdbd9e0
Update measure_coverage.yml 2025-08-09 23:58:24 +02:00
Ludy87
b161e4d4ad
Update measure_coverage.yml 2025-08-09 23:56:45 +02:00
Ludy87
985d1de30a
Update measure_coverage.yml 2025-08-09 23:47:28 +02:00
Ludy87
c8342c526a
Update measure_coverage.yml 2025-08-09 23:43:46 +02:00
Ludy87
87c2d024bd
Create measure_coverage.yml 2025-08-09 23:41:10 +02:00
Ludy87
da847b4892
Update SPDFApplicationTest.java 2025-08-09 23:13:37 +02:00