Skip to content

Story #16471: SonarCloud - #4036

Open
marob wants to merge 12 commits into
developfrom
16471-sonarcloud
Open

marob wants to merge 12 commits into
developfrom
16471-sonarcloud

Conversation

@marob

@marob marob commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Divers correctifs liés aux rapports SonarCloud.

marob added 4 commits October 1, 2026 13:36
…cripts

Fixes SonarCloud shell:S6506 (curl --proto '=https' to block downgrade redirects), shell:S5332 (http to https download URLs and usage example), shell:S6505 (npm --ignore-scripts). Eclipse download switched from wget with --no-check-certificate to verifying curl.
Fixes SonarCloud githubactions:S7637. Tags are mutable and can be hijacked; pinning to full commit SHA with the version kept as trailing comment. Upgrades: korthout/backport-action 4.6.0 to 4.7.0, mikepenz/action-junit-report 4.3.1 to 6.5.0, SonarSource/sonarqube-scan-action 7.1.0 to 8.3.0, geekyeggo/delete-artifact 5.1.0 to 6.0.0. All inputs used by the workflows verified compatible with the new versions.
Monthly updates for SHA-pinned third-party actions so pinned versions do not go stale.
Fixes SonarCloud typescript:S2933 (541 issues). Mechanical transformation: add readonly to fields assigned only in the constructor. Decorated members (@Input/@Output/@ViewChild) excluded as the framework assigns them. Verified with tsc --noEmit on all 8 frontend projects: zero read-only assignment violations.
@marob marob added this to the IT 176 milestone Oct 1, 2026
@coderabbitai

coderabbitai Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Walkthrough

Warning

Review details and warnings were omitted to fit the comment limit.

@vitam-prg

vitam-prg commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator

Logo
Checkmarx One – Scan Summary & Details – ca110241-7004-413a-a220-34e8acd0814c


New Issues (Top 33 out of 280) Checkmarx found the following issues in this Pull Request
# Severity Issue Source File / Package Checkmarx Insight
1 MEDIUM Missing_HSTS_Header api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/GroupController.java: 325
detailsThe web-application does not define an HSTS header, leaving it vulnerable to attack.
Attack Vector
2 MEDIUM Parameter_Tampering api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CustomerController.java: 202
detailsMethod create at line 202 of /api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CustomerController.java gets user input from element ...
Attack Vector
3 MEDIUM Parameter_Tampering api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CasController.java: 235
detailsMethod getUser at line 235 of /api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CasController.java gets user input from element embe...
Attack Vector
4 MEDIUM Parameter_Tampering api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CustomerController.java: 202
detailsMethod create at line 202 of /api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CustomerController.java gets user input from element ...
Attack Vector
5 MEDIUM Parameter_Tampering api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CasController.java: 263
detailsMethod logout at line 263 of /api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CasController.java gets user input from element authT...
Attack Vector
6 MEDIUM Parameter_Tampering api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/TenantController.java: 130
detailsMethod create at line 130 of /api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/TenantController.java gets user input from element dt...
Attack Vector
7 MEDIUM Parameter_Tampering api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CasController.java: 205
detailsMethod changePassword at line 205 of /api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CasController.java gets user input from eleme...
Attack Vector
8 MEDIUM Parameter_Tampering api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CasController.java: 263
detailsMethod logout at line 263 of /api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CasController.java gets user input from element authT...
Attack Vector
9 MEDIUM Privacy_Violation api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 85
detailsMethod getTenantIdentifier at line 85 of /api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java sends...
Attack Vector
10 MEDIUM Privacy_Violation api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 85
detailsMethod getTenantIdentifier at line 85 of /api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java sends...
Attack Vector
11 MEDIUM Privacy_Violation api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 117
detailsMethod getHttpContext at line 117 of /api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java sends use...
Attack Vector
12 MEDIUM Privacy_Violation api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 85
detailsMethod getTenantIdentifier at line 85 of /api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java sends...
Attack Vector
13 MEDIUM Privacy_Violation api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 85
detailsMethod getTenantIdentifier at line 85 of /api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java sends...
Attack Vector
14 MEDIUM Privacy_Violation api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
detailsMethod getApplicationId at line 175 of /api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java sends u...
Attack Vector
15 MEDIUM Privacy_Violation api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 85
detailsMethod getTenantIdentifier at line 85 of /api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java sends...
Attack Vector
16 LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/IngestContractController.java: 265
detailsMethod signedExportIngestContracts at line 265 of /api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/IngestCon...
Attack Vector
17 LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileController.java: 177
detailsMethod signedDownload at line 177 of /api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileController.jav...
Attack Vector
18 LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileController.java: 177
detailsMethod signedDownload at line 177 of /api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileController.jav...
Attack Vector
19 LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/IngestContractController.java: 265
detailsMethod signedExportIngestContracts at line 265 of /api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/IngestCon...
Attack Vector
20 LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileController.java: 177
detailsMethod signedDownload at line 177 of /api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileController.jav...
Attack Vector
21 LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileController.java: 266
detailsMethod importArchivalProfiles at line 266 of /api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileControl...
Attack Vector
22 LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileController.java: 205
detailsMethod importProfileFile at line 205 of /api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileController....
Attack Vector
23 LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileController.java: 267
detailsMethod importArchivalProfiles at line 267 of /api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileControl...
Attack Vector
24 LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileController.java: 266
detailsMethod importArchivalProfiles at line 266 of /api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileControl...
Attack Vector
25 LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileController.java: 205
detailsMethod importProfileFile at line 205 of /api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileController....
Attack Vector
26 LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileController.java: 266
detailsMethod importArchivalProfiles at line 266 of /api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileControl...
Attack Vector
27 LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileController.java: 163
detailsMethod prepareSignedDownload at line 163 of /api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ProfileControll...
Attack Vector
28 LOW Log_Forging api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CustomerController.java: 247
detailsMethod findHistoryById at line 247 of /api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CustomerController.java gets user input from...
Attack Vector
29 LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
detailsMethod getApplicationId at line 175 of /api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java gets us...
Attack Vector
30 LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
detailsMethod getApplicationId at line 175 of /api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java gets us...
Attack Vector
31 LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
detailsMethod getApplicationId at line 175 of /api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java gets us...
Attack Vector
32 LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/FileFormatController.java: 212
detailsMethod importFileFormats at line 212 of /api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/FileFormatControlle...
Attack Vector
33 LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/FileFormatController.java: 212
detailsMethod importFileFormats at line 212 of /api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/FileFormatControlle...
Attack Vector

More results are available on the CxOne platform


Fixed Issues (84) Great job! The following issues were fixed in this Pull Request
Severity Issue Source File / Package
MEDIUM Add Instead of Copy /Dockerfile.template: 5
MEDIUM Add Instead of Copy /Dockerfile: 15
MEDIUM Add Instead of Copy /Dockerfile: 46
MEDIUM Add Instead of Copy /Dockerfile: 47
MEDIUM Parameter_Tampering api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CustomerController.java: 200
MEDIUM Parameter_Tampering api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CustomerController.java: 200
MEDIUM Privacy_Violation api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 85
MEDIUM Privacy_Violation api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
LOW Log_Forging api/api-archive-search/archive-search/src/main/java/fr/gouv/vitamui/archives/search/server/rest/ArchivesSearchController.java: 259
LOW Log_Forging api/api-archive-search/archive-search/src/main/java/fr/gouv/vitamui/archives/search/server/rest/ArchivesSearchController.java: 269
LOW Log_Forging api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CasController.java: 378
LOW Log_Forging api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CasController.java: 378
LOW Log_Forging cas/cas-server/src/main/java/fr/gouv/vitamui/cas/password/ResetPasswordController.java: 71
LOW Log_Forging cas/cas-server/src/main/java/fr/gouv/vitamui/cas/password/ResetPasswordController.java: 70
LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/OperationController.java: 207
LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/OperationController.java: 207
LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/OperationController.java: 207
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
LOW Log_Forging api/api-ingest/ingest/src/main/java/fr/gouv/vitamui/ingest/server/rest/IngestController.java: 125
LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/OperationController.java: 237
LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/OperationController.java: 166
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 117
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/SecurityProfileController.java: 172
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 117
LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/ContextController.java: 163
LOW Log_Forging api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CasController.java: 232
LOW Log_Forging api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CasController.java: 231
LOW Log_Forging api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CasController.java: 233
LOW Log_Forging api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CasController.java: 235
LOW Log_Forging api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CasController.java: 234
LOW Log_Forging api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CasController.java: 265
LOW Log_Forging api/api-iam/iam/src/main/java/fr/gouv/vitamui/iam/server/rest/CasController.java: 264
LOW Log_Forging cas/cas-server/src/main/java/fr/gouv/vitamui/cas/util/Utils.java: 205
LOW Log_Forging cas/cas-server/src/main/java/fr/gouv/vitamui/cas/web/CustomCorsProcessor.java: 181
LOW Log_Forging cas/cas-server/src/main/java/fr/gouv/vitamui/cas/web/CustomCorsProcessor.java: 59
LOW Log_Forging cas/cas-server/src/main/java/fr/gouv/vitamui/cas/web/CustomCorsProcessor.java: 177
LOW Log_Forging cas/cas-server/src/main/java/fr/gouv/vitamui/cas/web/CustomCorsProcessor.java: 59
LOW Log_Forging api/api-ingest/ingest/src/main/java/fr/gouv/vitamui/ingest/server/rest/IngestController.java: 147
LOW Log_Forging api/api-ingest/ingest/src/main/java/fr/gouv/vitamui/ingest/server/rest/IngestController.java: 147
LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/OperationController.java: 237
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 117
LOW Log_Forging api/api-ingest/ingest/src/main/java/fr/gouv/vitamui/ingest/server/rest/IngestController.java: 125
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
LOW Log_Forging api/api-ingest/ingest/src/main/java/fr/gouv/vitamui/ingest/server/rest/IngestController.java: 125
LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/OperationController.java: 237
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 117
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 117
LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/OperationController.java: 237
LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/OperationController.java: 237
LOW Log_Forging api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/OperationController.java: 237
LOW Log_Forging api/api-iam/iam-security/src/main/java/fr/gouv/vitamui/iam/security/service/SecurityService.java: 175

More results are available on the CxOne platform


Use @Checkmarx to take action directly from this PR:

  • Rescan the PR

Try it: @Checkmarx how can you help? · @Checkmarx rescan this PR

marob added 6 commits October 1, 2026 16:22
…ripts

Fixes SonarCloud javascript:S3504 (9 issues). Mechanical transformation: const when never reassigned, let otherwise. Verified with node --check on all 9 files: OK, no var remaining.
Fixes SonarCloud shelldre:S7688. All files use a bash shebang so [[ ]] is safe; run-tests.sh keeps single brackets with NOSONAR as it must stay dash-readable before re-exec. Verified with bash -n on all 6 files.
Fixes SonarCloud docker:S7029. COPY is sufficient for plain local file/directory copies (no tar auto-extraction or remote URL).
…jobs

Fixes SonarCloud githubactions:S8233 (2 issues on auto-backport.yml:7-8). Workflow-level write permissions moved to job level following least privilege: setup-matrix gets pull-requests: read, backport keeps pull-requests:write and contents:write.
…tants

Fixes SonarCloud java:S1192 (87 issues in 37 files). Behavior-identical extraction to private static final constants, reusing existing constants where Sonar suggests them. Verified with IDE inspection on all files: no errors.
…ysis

Quiets secrets:S6418/S6694/S8215, yaml:S6418/S2068 and json:S6418 (31 issues) via sonar.issue.ignore.multicriteria, each rule scoped to the exact dev-only files Sonar reports (application-dev.yml, application-recette.yml, keycloak dev .env/realm, mongo dev yml). Any new secret elsewhere is still reported. Config-only change, zero runtime risk.
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

marob added 2 commits October 1, 2026 18:36
Instructs AI agents that Java code MUST pass mvn spotless:check (apply, do not hand-format)
@marob
marob force-pushed the 16471-sonarcloud branch from b0061c1 to 6c43bf8 Compare October 1, 2026 16:41
@marob marob added the clean code Clean Code VitamUI label Oct 1, 2026
@sonarqubecloud

sonarqubecloud Bot commented Oct 1, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
41.8% Coverage on New Code (required ≥ 80%)
5.3% Duplication on New Code (required ≤ 3%)
D Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

clean code Clean Code VitamUI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants