Commit b6c948a
fix(cargo): resolve workspace-inherited license in Cargo.toml
When a Cargo.toml uses `license = { workspace = true }`, the tomlj
library's getString() returns null because the value is an inline table,
not a string. The license is silently dropped from the SBOM.
Fix by using get() to retrieve the raw Object, checking instanceof
String for direct values, and resolving from workspace.package.license
when workspace inheritance is detected — following the existing version
resolution pattern in parseCargoToml().
Fixes: TC-4528
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>1 parent 79232da commit b6c948a
4 files changed
Lines changed: 49 additions & 1 deletion
File tree
- src
- main/java/io/github/guacsec/trustifyda/providers
- test
- java/io/github/guacsec/trustifyda/providers
- resources/tst_manifests/cargo/license
- cargo_workspace_license_inheritance_no_license
- cargo_workspace_license_inheritance
Lines changed: 13 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
74 | 77 | | |
75 | 78 | | |
76 | 79 | | |
| |||
671 | 674 | | |
672 | 675 | | |
673 | 676 | | |
674 | | - | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
675 | 687 | | |
676 | 688 | | |
677 | 689 | | |
| |||
Lines changed: 16 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
57 | 73 | | |
Lines changed: 10 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
Lines changed: 10 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
0 commit comments