Compare commits

...

133 Commits

Author SHA1 Message Date
dependabot[bot]
f7be026d53 Bump com.github.davidmoten:subethasmtp from 6.0.6 to 7.1.8
Bumps [com.github.davidmoten:subethasmtp](https://github.com/davidmoten/subethasmtp) from 6.0.6 to 7.1.8.
- [Release notes](https://github.com/davidmoten/subethasmtp/releases)
- [Changelog](https://github.com/davidmoten/subethasmtp/blob/master/ChangeLog.md)
- [Commits](https://github.com/davidmoten/subethasmtp/compare/6.0.6...7.1.8)

---
updated-dependencies:
- dependency-name: com.github.davidmoten:subethasmtp
  dependency-version: 7.1.8
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-19 11:20:48 +00:00
alfresco-build
2b00e550a9 [maven-release-plugin][skip ci] prepare for next development iteration 2025-08-17 00:08:35 +00:00
alfresco-build
f3dca482ff [maven-release-plugin][skip ci] prepare release 25.3.0.24 2025-08-17 00:08:33 +00:00
Alfresco CI User
94e957cb73 [force] Force release for 2025-08-17. 2025-08-17 00:05:19 +00:00
alfresco-build
8868e64a6a [maven-release-plugin][skip ci] prepare for next development iteration 2025-08-14 05:39:28 +00:00
alfresco-build
f4af65943f [maven-release-plugin][skip ci] prepare release 25.3.0.23 2025-08-14 05:39:26 +00:00
SatyamSah5
6fe1b50741 ACS-9926 bump ATS to 4.2.1-A.4 and Transform Core to 5.2.1-A.3 (#3519) 2025-08-14 09:28:02 +05:30
alfresco-build
f300bd6b3a [maven-release-plugin][skip ci] prepare for next development iteration 2025-08-11 09:39:46 +00:00
alfresco-build
f7195ef16a [maven-release-plugin][skip ci] prepare release 25.3.0.22 2025-08-11 09:39:44 +00:00
Belal Ansari
ef228f0614 ACS-9927 Bump ATS to 4.2.1-A.3 (#3513) 2025-08-11 13:31:08 +05:30
alfresco-build
6c0f231316 [maven-release-plugin][skip ci] prepare for next development iteration 2025-08-10 00:08:48 +00:00
alfresco-build
33b521b421 [maven-release-plugin][skip ci] prepare release 25.3.0.21 2025-08-10 00:08:46 +00:00
Alfresco CI User
eff4e0738c [force] Force release for 2025-08-10. 2025-08-10 00:05:27 +00:00
alfresco-build
5685fc3b17 [maven-release-plugin][skip ci] prepare for next development iteration 2025-08-08 09:15:18 +00:00
alfresco-build
7c22a2598b [maven-release-plugin][skip ci] prepare release 25.3.0.20 2025-08-08 09:15:16 +00:00
jakubkochman
efe053167d ACS-9844 added extension point for providing additional context configuration files (#3507) 2025-08-08 10:33:06 +02:00
alfresco-build
4aae383637 [maven-release-plugin][skip ci] prepare for next development iteration 2025-08-07 16:09:44 +00:00
alfresco-build
ca1774ffae [maven-release-plugin][skip ci] prepare release 25.3.0.19 2025-08-07 16:09:41 +00:00
Eva Vasques
6206f67bdd MNT-24975 - Repeated IPR groups due to casing inconsistencies on creation (#3508) 2025-08-07 16:16:53 +01:00
alfresco-build
82897f449f [maven-release-plugin][skip ci] prepare for next development iteration 2025-08-07 10:15:36 +00:00
alfresco-build
e6d30cddac [maven-release-plugin][skip ci] prepare release 25.3.0.18 2025-08-07 10:15:33 +00:00
jakubkochman
0e6b444a25 ACS-9981 removed invalid T function import in Parameters (#3499) 2025-08-07 11:33:23 +02:00
alfresco-build
61dc54bb33 [maven-release-plugin][skip ci] prepare for next development iteration 2025-08-05 18:06:08 +00:00
alfresco-build
a6c7f044df [maven-release-plugin][skip ci] prepare release 25.3.0.17 2025-08-05 18:06:05 +00:00
Eva Vasques
18016df074 ACS-9923 Removing an aspect needs to invoke onUpdateProperties (#3504) 2025-08-05 18:22:21 +01:00
alfresco-build
b021c1ebfe [maven-release-plugin][skip ci] prepare for next development iteration 2025-08-05 10:20:13 +00:00
alfresco-build
e3e42137d9 [maven-release-plugin][skip ci] prepare release 25.3.0.16 2025-08-05 10:20:10 +00:00
cezary-witkowski
9327814266 [ACS-9710] Test Share with Elasticsearch (#3496) 2025-08-05 11:35:46 +02:00
alfresco-build
d45fd10431 [maven-release-plugin][skip ci] prepare for next development iteration 2025-08-03 00:09:04 +00:00
alfresco-build
09242daaec [maven-release-plugin][skip ci] prepare release 25.3.0.15 2025-08-03 00:09:02 +00:00
Alfresco CI User
491a41e8ba [force] Force release for 2025-08-03. 2025-08-03 00:05:47 +00:00
alfresco-build
1dac1e5fdb [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-28 12:12:26 +00:00
alfresco-build
2c9d8e63ea [maven-release-plugin][skip ci] prepare release 25.3.0.14 2025-07-28 12:12:23 +00:00
Eva Vasques
a3998de1ba MNT-24975 - Repeated IPR groups due to casing inconsistencies (#3459) 2025-07-28 12:28:02 +01:00
alfresco-build
582742bbd3 [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-27 00:09:39 +00:00
alfresco-build
ebe29717fa [maven-release-plugin][skip ci] prepare release 25.3.0.13 2025-07-27 00:09:36 +00:00
Alfresco CI User
c6a654cbcf [force] Force release for 2025-07-27. 2025-07-27 00:05:48 +00:00
dependabot[bot]
cd947b5581 Bump actions/setup-python from 5.4.0 to 5.6.0 (#3331)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 12:58:55 +05:30
dependabot[bot]
ef4dd74580 Bump io.fabric8:docker-maven-plugin from 0.45.0 to 0.46.0 (#3413)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 12:54:34 +05:30
alfresco-build
7edbdd72f2 [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-21 06:41:08 +00:00
alfresco-build
b7978c2a62 [maven-release-plugin][skip ci] prepare release 25.3.0.12 2025-07-21 06:41:06 +00:00
dependabot[bot]
c1d9142a9c Bump org.apache.santuario:xmlsec from 4.0.3 to 4.0.4 (#3408)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 11:24:42 +05:30
alfresco-build
03a5a3cd3a [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-21 05:12:47 +00:00
alfresco-build
c1ac217c44 [maven-release-plugin][skip ci] prepare release 25.3.0.11 2025-07-21 05:12:45 +00:00
dependabot[bot]
1b04fef8cd Bump commons-io:commons-io from 2.19.0 to 2.20.0 (#3483)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 09:50:40 +05:30
alfresco-build
31bb692b16 [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-20 00:09:49 +00:00
alfresco-build
3222f13efe [maven-release-plugin][skip ci] prepare release 25.3.0.10 2025-07-20 00:09:47 +00:00
Alfresco CI User
d66ed689a0 [force] Force release for 2025-07-20. 2025-07-20 00:05:43 +00:00
alfresco-build
f84a7035d7 [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-18 07:52:44 +00:00
alfresco-build
56177b6790 [maven-release-plugin][skip ci] prepare release 25.3.0.9 2025-07-18 07:52:42 +00:00
dependabot[bot]
3c32899f6e Bump com.diffplug.spotless:spotless-maven-plugin from 2.44.2 to 2.45.0 (#3455)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-18 11:03:29 +05:30
dependabot[bot]
d3512dd8e4 Bump dependency.rest-assured.version from 5.5.0 to 5.5.5 (#3429)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-18 11:01:06 +05:30
alfresco-build
d8273b19cf [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-18 05:23:39 +00:00
alfresco-build
8abea08762 [maven-release-plugin][skip ci] prepare release 25.3.0.8 2025-07-18 05:23:37 +00:00
dependabot[bot]
42e3ead101 Bump org.alfresco:acs-event-model from 1.0.2 to 1.0.5 (#3481)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-18 10:09:24 +05:30
dependabot[bot]
b1c095b51e Bump com.networknt:json-schema-validator from 1.5.5 to 1.5.8 (#3417)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 16:12:20 +02:00
alfresco-build
ab85ea8ffe [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-17 11:32:14 +00:00
alfresco-build
9a794cfe97 [maven-release-plugin][skip ci] prepare release 25.3.0.7 2025-07-17 11:32:12 +00:00
dependabot[bot]
8e3f610f8a Bump org.mockito:mockito-core from 5.14.1 to 5.18.0 (#3426)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 16:17:23 +05:30
alfresco-build
8c9edde95f [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-17 09:16:05 +00:00
alfresco-build
5652317a0a [maven-release-plugin][skip ci] prepare release 25.3.0.6 2025-07-17 09:16:03 +00:00
dependabot[bot]
b8a9a9588c Bump com.fasterxml.woodstox:woodstox-core from 7.0.0 to 7.1.1 (#3420)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 14:00:26 +05:30
dependabot[bot]
a48cf7eed3 Bump commons-logging:commons-logging from 1.3.3 to 1.3.5 (#3421)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 14:00:16 +05:30
dependabot[bot]
73f6c7a8f7 Bump Alfresco/alfresco-build-tools from 8.16.0 to 8.24.1 (#3442)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 13:59:59 +05:30
dependabot[bot]
37aaa0d147 Bump org.codehaus.groovy:groovy from 3.0.23 to 3.0.25 (#3432)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 13:59:18 +05:30
alfresco-build
5d5d1d8680 [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-17 08:22:32 +00:00
alfresco-build
120d4acdb0 [maven-release-plugin][skip ci] prepare release 25.3.0.5 2025-07-17 08:22:29 +00:00
dependabot[bot]
fa3acb47a9 Bump org.alfresco:alfresco-transform-model from 5.2.0 to 5.2.0-A.3 (#3474)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 13:07:51 +05:30
dependabot[bot]
716b039c07 Bump dependency.cxf.version from 4.1.0 to 4.1.2 (#3409)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 09:03:10 +02:00
alfresco-build
abec95881e [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-17 04:30:37 +00:00
alfresco-build
58164d59bf [maven-release-plugin][skip ci] prepare release 25.3.0.4 2025-07-17 04:30:35 +00:00
dependabot[bot]
8e80b87439 Bump org.apache.commons:commons-collections4 from 4.4 to 4.5.0 (#3416)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 09:16:59 +05:30
dependabot[bot]
4e3591cc72 Bump joda-time:joda-time from 2.13.1 to 2.14.0 (#3419)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 09:15:40 +05:30
dependabot[bot]
6aa4c37825 Bump org.mybatis:mybatis-spring from 3.0.4 to 3.0.5 (#3427)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 09:13:46 +05:30
dependabot[bot]
68dae275a5 Bump commons-io:commons-io from 2.18.0 to 2.19.0 (#3433)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 09:11:27 +05:30
dependabot[bot]
536f8c609c Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 (#3460)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 09:10:08 +05:30
alfresco-build
6686863352 [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-16 15:27:46 +00:00
alfresco-build
3774a0e504 [maven-release-plugin][skip ci] prepare release 25.3.0.3 2025-07-16 15:27:44 +00:00
dependabot[bot]
4bf569d297 Bump org.codehaus.cargo:cargo-maven3-plugin from 1.10.16 to 1.10.20 (#3428)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-16 16:42:57 +02:00
dependabot[bot]
13bcfe4125 Bump commons-validator:commons-validator from 1.9.0 to 1.10.0 (#3461)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-16 16:00:08 +02:00
dependabot[bot]
982e0d24f5 Bump dependency.log4j.version from 2.24.3 to 2.25.1 (#3465)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-16 15:58:02 +02:00
dependabot[bot]
c2fbf53b03 Bump com.google.code.gson:gson from 2.12.1 to 2.13.1 (#3423)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-16 15:47:49 +02:00
dependabot[bot]
f8b5e9cb03 Bump org.json:json from 20240303 to 20250517 (#3425)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-16 15:47:07 +02:00
dependabot[bot]
ea0b37022b Bump org.jsoup:jsoup from 1.18.1 to 1.21.1 (#3431)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-16 15:46:32 +02:00
dependabot[bot]
f20a9b441d Bump org.codehaus.groovy:groovy-json from 3.0.22 to 3.0.25 (#3436)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-16 15:42:15 +02:00
dependabot[bot]
7c3a9113a0 Bump dependency.bouncycastle.version from 1.79 to 1.81 (#3437)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-16 15:41:27 +02:00
alfresco-build
66d9beef14 [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-16 13:08:49 +00:00
alfresco-build
4a97305505 [maven-release-plugin][skip ci] prepare release 25.3.0.2 2025-07-16 13:08:47 +00:00
dependabot[bot]
9b4593e4b3 Bump org.projectlombok:lombok from 1.18.36 to 1.18.38 (#3439)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-16 17:44:56 +05:30
dependabot[bot]
01a2a23c4a Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 in /repository (#3466)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-16 17:37:51 +05:30
alfresco-build
2c2b51f47e [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-16 09:44:36 +00:00
alfresco-build
1e37b3308d [maven-release-plugin][skip ci] prepare release 25.3.0.1 2025-07-16 09:44:34 +00:00
jakubkochman
84a36d68d4 PRODSEC-10304 bumped spring.version to 6.2.8 (#3458) 2025-07-16 10:57:01 +02:00
bsayan2
40d475abf9 MNT-25150 NodePermissionAssessor.getOwner checks for owner aspect first (#3462) 2025-07-16 13:53:23 +05:30
Kacper Magdziarz
5d3f1f2402 Updating master branch to 25.3.0 after 25.2.0 ACS release [skip ci] 2025-07-16 09:47:47 +02:00
alfresco-build
2cd29d87ec [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-15 10:07:38 +00:00
alfresco-build
8f1631fb55 [maven-release-plugin][skip ci] prepare release 25.2.0.64 2025-07-15 10:07:35 +00:00
Piotr Żurek
5f6dced886 ACS-9809 Prepare for the GA release (#3476) 2025-07-15 11:09:43 +02:00
Sara
25fdc9ccc7 ACS-9822 Bump IE/SS to 2.0.16 (#3472) 2025-07-15 10:47:58 +02:00
alfresco-build
b6456cde34 [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-14 15:40:19 +00:00
alfresco-build
27b80d8adb [maven-release-plugin][skip ci] prepare release 25.2.0.63 2025-07-14 15:40:17 +00:00
Sara
536e12ff76 ACS-9809 Bump api-explorer to 25.2.0 and aos-module to 3.3.0 (#3471) 2025-07-14 15:48:05 +01:00
alfresco-build
96ab699ea8 [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-14 08:32:29 +00:00
alfresco-build
9630d4cb02 [maven-release-plugin][skip ci] prepare release 25.2.0.62 2025-07-14 08:32:26 +00:00
Arindam Roy
fe9175d959 [ACS-9820] Bump ATS to 4.2.0 (#3464) 2025-07-14 13:16:42 +05:30
alfresco-build
277d10133d [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-13 00:09:28 +00:00
alfresco-build
3fb964a460 [maven-release-plugin][skip ci] prepare release 25.2.0.61 2025-07-13 00:09:26 +00:00
Alfresco CI User
d630dcb7af [force] Force release for 2025-07-13. 2025-07-13 00:05:36 +00:00
alfresco-build
7a673966aa [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-06 00:09:19 +00:00
alfresco-build
65d2863b9d [maven-release-plugin][skip ci] prepare release 25.2.0.60 2025-07-06 00:09:16 +00:00
Alfresco CI User
56ef484ae0 [force] Force release for 2025-07-06. 2025-07-06 00:05:32 +00:00
alfresco-build
d619d5365e [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-04 11:14:42 +00:00
alfresco-build
7096276b02 [maven-release-plugin][skip ci] prepare release 25.2.0.59 2025-07-04 11:14:40 +00:00
bsayan2
c9a46e1a8a ACS-9788 test case to verify node content search (#3443) 2025-07-04 16:00:10 +05:30
alfresco-build
98f9175a13 [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-04 05:31:50 +00:00
alfresco-build
4e89b0a033 [maven-release-plugin][skip ci] prepare release 25.2.0.58 2025-07-04 05:31:48 +00:00
tathagta15
c6c0779984 [ACS-9821] Bump IE to 2.0.16-A2 (#3451) 2025-07-04 10:15:36 +05:30
alfresco-build
554b26e7e7 [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-03 18:46:41 +00:00
alfresco-build
93d704d44c [maven-release-plugin][skip ci] prepare release 25.2.0.57 2025-07-03 18:46:39 +00:00
Gerard Olenski
0916efad7c ACS-9819 Bump ATS (#3452) 2025-07-03 19:57:59 +02:00
alfresco-build
6169ec0095 [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-02 13:26:35 +00:00
alfresco-build
75ace2a268 [maven-release-plugin][skip ci] prepare release 25.2.0.56 2025-07-02 13:26:33 +00:00
Piotr Żurek
f489c4193b ACS-9808 Prepare for the Alpha release (#3447) 2025-07-02 14:41:13 +02:00
alfresco-build
71c3addf2d [maven-release-plugin][skip ci] prepare for next development iteration 2025-07-01 17:12:39 +00:00
alfresco-build
cc43f9338e [maven-release-plugin][skip ci] prepare release 25.2.0.55 2025-07-01 17:12:37 +00:00
jakubkochman
45ad5045b1 PRODSEC-10332 updated commons-fileupload2-jakarta to address cve (#3405) 2025-07-01 18:23:54 +02:00
alfresco-build
773f99453e [maven-release-plugin][skip ci] prepare for next development iteration 2025-06-29 00:08:25 +00:00
alfresco-build
538d269f66 [maven-release-plugin][skip ci] prepare release 25.2.0.54 2025-06-29 00:08:23 +00:00
Alfresco CI User
1dbf1c1314 [force] Force release for 2025-06-29. 2025-06-29 00:05:19 +00:00
alfresco-build
3969cd8f14 [maven-release-plugin][skip ci] prepare for next development iteration 2025-06-27 11:39:16 +00:00
alfresco-build
eaa11fcb34 [maven-release-plugin][skip ci] prepare release 25.2.0.53 2025-06-27 11:39:14 +00:00
jakubkochman
cd5c2227e2 PRODSEC-10332 updated commons-fileupload2-jakarta to address cve (#3403) 2025-06-27 12:54:27 +02:00
alfresco-build
757b26b1b8 [maven-release-plugin][skip ci] prepare for next development iteration 2025-06-26 13:26:27 +00:00
50 changed files with 557 additions and 177 deletions

View File

@@ -41,10 +41,10 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/pre-commit@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/pre-commit@v8.24.1
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Prepare maven cache and check compilation"
@@ -62,12 +62,12 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Init"
run: bash ./scripts/ci/init.sh
- uses: Alfresco/alfresco-build-tools/.github/actions/veracode@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/veracode@v8.24.1
continue-on-error: true
with:
srcclr-api-token: ${{ secrets.SRCCLR_API_TOKEN }}
@@ -85,10 +85,10 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/github-download-file@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/github-download-file@v8.24.1
with:
token: ${{ secrets.BOT_GITHUB_TOKEN }}
repository: "Alfresco/veracode-baseline-archive"
@@ -141,9 +141,9 @@ jobs:
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
steps:
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- uses: Alfresco/ya-pmd-scan@v4.3.0
with:
classpath-build-command: "mvn test-compile -ntp -Pags -pl \"-:alfresco-community-repo-docker\""
@@ -174,9 +174,9 @@ jobs:
testAttributes: "-Dtest=AllMmtUnitTestSuite"
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run tests"
@@ -211,9 +211,9 @@ jobs:
REQUIRES_INSTALLED_ARTIFACTS: true
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Build"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |
@@ -246,9 +246,9 @@ jobs:
version: ['10.5', '10.6']
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: Run MariaDB ${{ matrix.version }} database
@@ -273,9 +273,9 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run MariaDB 10.11 database"
@@ -300,9 +300,9 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run MySQL 8 database"
@@ -326,9 +326,9 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run PostgreSQL 14.15 database"
@@ -352,9 +352,9 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run PostgreSQL 15.10 database"
@@ -378,9 +378,9 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run PostgreSQL 16.6 database"
@@ -402,9 +402,9 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run ActiveMQ"
@@ -458,9 +458,9 @@ jobs:
mvn-options: '-Dencryption.ssl.keystore.location=${CI_WORKSPACE}/keystores/alfresco/alfresco.keystore -Dencryption.ssl.truststore.location=${CI_WORKSPACE}/keystores/alfresco/alfresco.truststore'
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Set transformers tag"
@@ -528,9 +528,9 @@ jobs:
REQUIRES_LOCAL_IMAGES: true
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Build"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |
@@ -567,9 +567,9 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run Postgres 16.6 database"
@@ -597,9 +597,9 @@ jobs:
REQUIRES_INSTALLED_ARTIFACTS: true
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Build"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |
@@ -629,9 +629,9 @@ jobs:
REQUIRES_INSTALLED_ARTIFACTS: true
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Build"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |
@@ -657,9 +657,9 @@ jobs:
REQUIRES_LOCAL_IMAGES: true
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Build"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |
@@ -703,9 +703,9 @@ jobs:
!contains(github.event.head_commit.message, '[force]')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Build"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |

View File

@@ -34,12 +34,12 @@ jobs:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Init"
run: bash ./scripts/ci/init.sh
- uses: Alfresco/alfresco-build-tools/.github/actions/configure-git-author@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/configure-git-author@v8.24.1
with:
username: ${{ env.GIT_USERNAME }}
email: ${{ env.GIT_EMAIL }}
@@ -63,12 +63,12 @@ jobs:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.24.1
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.24.1
- name: "Init"
run: bash ./scripts/ci/init.sh
- uses: Alfresco/alfresco-build-tools/.github/actions/configure-git-author@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/configure-git-author@v8.24.1
with:
username: ${{ env.GIT_USERNAME }}
email: ${{ env.GIT_EMAIL }}

View File

@@ -13,7 +13,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ inputs.python-version }}
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: "3.9"
- uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1
@@ -22,7 +22,7 @@ jobs:
extra_args: --all-files
- name: Update secrets baseline
run: pip install detect-secrets && detect-secrets scan --baseline .secrets.baseline
- uses: Alfresco/alfresco-build-tools/.github/actions/git-commit-changes@v8.16.0
- uses: Alfresco/alfresco-build-tools/.github/actions/git-commit-changes@v8.24.1
with:
username: ${{ secrets.BOT_GITHUB_USERNAME }}
add-options: -u

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-amps</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<modules>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-governance-services-community-parent</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<modules>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-governance-services-automation-community-repo</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<build>
@@ -83,7 +83,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
<version>4.5.0</version>
</dependency>
<dependency>
<groupId>com.github.docker-java</groupId>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-governance-services-community-parent</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<modules>

View File

@@ -1,3 +1,3 @@
SOLR6_TAG=2.0.15
SOLR6_TAG=2.0.16
POSTGRES_TAG=16.6
ACTIVEMQ_TAG=5.18.3-jre17-rockylinux8

View File

@@ -119,6 +119,11 @@ rm.patch.v35.holdNewChildAssocPatch.batchSize=1000
rm.haspermissionmap.read=Read
rm.haspermissionmap.write=WriteProperties,AddChildren,ReadContent
# Extended Permissions
# Enable matching the given username with the correct casing username when retrieving an IPR group.
# Only needs to be used if there are owners that don't have the username in the correct casing.
rm.extendedSecurity.enableUsernameNormalization=false
#
# Extended auto-version behaviour. If true and other auto-version properties are satisfied, then
# a document will be auto-versioned when its type is changed.

View File

@@ -611,6 +611,7 @@
<property name="authorityService" ref="authorityService"/>
<property name="permissionService" ref="permissionService"/>
<property name="transactionService" ref="transactionService"/>
<property name="enableUsernameNormalization" value="${rm.extendedSecurity.enableUsernameNormalization}" />
</bean>
<bean id="ExtendedSecurityService" class="org.springframework.aop.framework.ProxyFactoryBean">

View File

@@ -8,7 +8,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-governance-services-community-repo-parent</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<properties>

View File

@@ -38,6 +38,7 @@ import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.extensions.webscripts.ui.common.StringUtils;
import org.alfresco.model.ContentModel;
import org.alfresco.model.RenditionModel;
import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel;
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
@@ -96,6 +97,8 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl
/** transaction service */
private TransactionService transactionService;
private boolean enableUsernameNormalization;
/**
* @param filePlanService
* file plan service
@@ -141,6 +144,15 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl
this.transactionService = transactionService;
}
/**
* @param enableUsernameNormalization
* enable username normalization to ensure correct casing
*/
public void setEnableUsernameNormalization(boolean enableUsernameNormalization)
{
this.enableUsernameNormalization = enableUsernameNormalization;
}
/**
* Application context refresh event handler
*/
@@ -359,12 +371,18 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl
{
String group = null;
// If enabled, the authorities are forced to match the correct casing of the usernames in case they were set
// with the incorrect casing.
// If not, it will just use the authorities as they are.
// In normal circumstances, the authorities are in the correct casing, so this is disabled by default.
Set<String> authoritySet = normalizeAuthorities(authorities);
// find group or determine what the next index is if no group exists or there is a clash
Pair<String, Integer> groupResult = findIPRGroup(groupPrefix, authorities);
Pair<String, Integer> groupResult = findIPRGroup(groupPrefix, authoritySet);
if (groupResult.getFirst() == null)
{
group = createIPRGroup(groupPrefix, authorities, groupResult.getSecond());
group = createIPRGroup(groupPrefix, authoritySet, groupResult.getSecond());
}
else
{
@@ -399,7 +417,8 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl
while (hasMoreItems == true)
{
// get matching authorities
PagingResults<String> results = authorityService.getAuthorities(AuthorityType.GROUP,
PagingResults<String> results = authorityService.getAuthorities(
AuthorityType.GROUP,
RMAuthority.ZONE_APP_RM,
groupShortNamePrefix,
false,
@@ -427,6 +446,63 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl
return new Pair<>(iprGroup, nextGroupIndex);
}
/**
* Given a set of authorities, normalizes the authority names to ensure correct casing.
*
* @param authNames
* @return
*/
private Set<String> normalizeAuthorities(Set<String> authNames)
{
// If disabled or no authorities, return as is
if (!enableUsernameNormalization || authNames == null || authNames.isEmpty())
{
return authNames;
}
Set<String> normalizedAuthorities = new HashSet<>();
for (String authorityName : authNames)
{
normalizedAuthorities.add(normalizeAuthorityName(authorityName));
}
return normalizedAuthorities;
}
/**
* Usernames are case insensitive but affect the IPR group matching when set with different casing. For a given authority of type user, this method normalizes the authority name. If group, it returns the name as-is.
*
* @param authorityName
* the authority name to normalize
* @return the normalized authority name
*/
private String normalizeAuthorityName(String authorityName)
{
if (authorityName == null || authorityName.startsWith(GROUP_PREFIX))
{
return authorityName;
}
// For users, attempt to get the correct casing from the username property of the user node
if (authorityService.authorityExists(authorityName))
{
try
{
NodeRef authorityNodeRef = authorityService.getAuthorityNodeRef(authorityName);
if (authorityNodeRef != null)
{
String username = (String) nodeService.getProperty(authorityNodeRef, ContentModel.PROP_USERNAME);
return username != null ? username : authorityName;
}
}
catch (Exception e)
{
// If anything goes wrong, fallback to the original name
}
}
return authorityName;
}
/**
* Determines whether a group exactly matches a list of authorities.
*

View File

@@ -4,7 +4,7 @@
# Version label
version.major=25
version.minor=2
version.minor=3
version.revision=0
version.label=

View File

@@ -52,6 +52,7 @@ import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.alfresco.model.ContentModel;
import org.alfresco.model.RenditionModel;
import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel;
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
@@ -67,6 +68,7 @@ import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransacti
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.security.AccessPermission;
import org.alfresco.service.cmr.security.AccessStatus;
import org.alfresco.service.cmr.security.AuthorityService;
@@ -522,6 +524,104 @@ public class ExtendedSecurityServiceImplUnitTest
verify(mockedPermissionService).setPermission(nodeRef, writeGroup, RMPermissionModel.FILING, true);
}
/**
* Given a node with no previous IPR groups assigned
* And having pre-existing IPR groups matching the ones we need
* When I add some read and write authorities but with a different casing
* Then the existing IPR groups are used
*/
@SuppressWarnings("unchecked")
@Test public void addExtendedSecurityWithMixedCasingUsernames()
{
// Have the usernames in the node as the correct usernames but with incorrect casing
String user1 = "UseR";
String user2 = "UseR_w";
// Incorrect IPR Group names
Set<String> diffCasingReaders = Stream.of(user1, GROUP).collect(Collectors.toSet());
Set<String> diffCasingWriters = Stream.of(user2, GROUP_W).collect(Collectors.toSet());
String wrongReadGroupPrefix = extendedSecurityService.getIPRGroupPrefixShortName(READER_GROUP_PREFIX, diffCasingReaders);
String wrongWriteGroupPrefix = extendedSecurityService.getIPRGroupPrefixShortName(WRITER_GROUP_PREFIX, diffCasingWriters);
String wrongReadGroup = wrongReadGroupPrefix + "0";
String wrongWriteGroup = wrongWriteGroupPrefix + "0";
// Correct Group names
String correctReadGroup = readGroupPrefix + "0";
String correctWriteGroup = writeGroupPrefix + "0";
// If queried for the correct groups, return the results
PagingResults<String> mockedCorrectReadPResults = mock(PagingResults.class);
PagingResults<String> mockedCorrectWritePResults = mock(PagingResults.class);
when(mockedCorrectReadPResults.getPage())
.thenReturn(Stream.of(GROUP_PREFIX + correctReadGroup).collect(Collectors.toList()));
when(mockedAuthorityService.getAuthorities(
eq(AuthorityType.GROUP),
eq(RMAuthority.ZONE_APP_RM),
eq(readGroupPrefix),
eq(false),
eq(false),
any(PagingRequest.class)))
.thenReturn(mockedCorrectReadPResults);
when(mockedCorrectWritePResults.getPage())
.thenReturn(Stream.of(GROUP_PREFIX + correctWriteGroup).collect(Collectors.toList()));
when(mockedAuthorityService.getAuthorities(
eq(AuthorityType.GROUP),
eq(RMAuthority.ZONE_APP_RM),
eq(writeGroupPrefix),
eq(false),
eq(false),
any(PagingRequest.class)))
.thenReturn(mockedCorrectWritePResults);
// Don't return results for the incorrect groups (lenient as these may not be called with normalization enabled)
PagingResults<String> mockedWrongReadPResults = mock(PagingResults.class);
PagingResults<String> mockedWrongWritePResults = mock(PagingResults.class);
lenient().when(mockedWrongReadPResults.getPage())
.thenReturn(Collections.emptyList());
lenient().when(mockedAuthorityService.getAuthorities(
eq(AuthorityType.GROUP),
eq(RMAuthority.ZONE_APP_RM),
eq(wrongReadGroupPrefix),
eq(false),
eq(false),
any(PagingRequest.class)))
.thenReturn(mockedWrongReadPResults);
lenient().when(mockedWrongWritePResults.getPage())
.thenReturn(Collections.emptyList());
lenient().when(mockedAuthorityService.getAuthorities(
eq(AuthorityType.GROUP),
eq(RMAuthority.ZONE_APP_RM),
eq(wrongWriteGroupPrefix),
eq(false),
eq(false),
any(PagingRequest.class)))
.thenReturn(mockedWrongWritePResults);
// The users do exist, despite being in a different casing and are able to be retrieved
NodeRef noderefUser1 = new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, USER);
when(mockedAuthorityService.authorityExists(user1)).thenReturn(true);
when(mockedAuthorityService.getAuthorityNodeRef(user1)).thenReturn(noderefUser1);
when(mockedNodeService.getProperty(noderefUser1, ContentModel.PROP_USERNAME)).thenReturn(USER);
NodeRef noderefUser2 = new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, USER_W);
when(mockedAuthorityService.authorityExists(user2)).thenReturn(true);
when(mockedAuthorityService.getAuthorityNodeRef(user2)).thenReturn(noderefUser2);
when(mockedNodeService.getProperty(noderefUser2, ContentModel.PROP_USERNAME)).thenReturn(USER_W);
// Set the extended security service to normalize usernames
extendedSecurityService.setEnableUsernameNormalization(true);
extendedSecurityService.set(nodeRef, diffCasingReaders, diffCasingWriters);
// Verify that the incorrect read group is not created
verify(mockedAuthorityService, never()).createAuthority(AuthorityType.GROUP, wrongReadGroup, wrongReadGroup, Collections.singleton(RMAuthority.ZONE_APP_RM));
// Verify that the incorrect write group is not created
verify(mockedAuthorityService, never()).createAuthority(AuthorityType.GROUP, wrongWriteGroup, wrongWriteGroup, Collections.singleton(RMAuthority.ZONE_APP_RM));
}
/**
* Given a node with no previous IPR groups assigned
@@ -571,7 +671,7 @@ public class ExtendedSecurityServiceImplUnitTest
.thenReturn(Stream
.of(USER_W, AlfMock.generateText())
.collect(Collectors.toSet()));
// add extended security
extendedSecurityService.set(nodeRef, READERS, WRITERS);
@@ -895,7 +995,7 @@ public class ExtendedSecurityServiceImplUnitTest
// group names
String readGroup = extendedSecurityService.getIPRGroupShortName(READER_GROUP_FULL_PREFIX, READERS, 0);
String writeGroup = extendedSecurityService.getIPRGroupShortName(WRITER_GROUP_FULL_PREFIX, WRITERS, 0);
// setup renditions
NodeRef renditionNodeRef = AlfMock.generateNodeRef(mockedNodeService);
when(mockedNodeService.hasAspect(nodeRef, RecordsManagementModel.ASPECT_RECORD))
@@ -904,7 +1004,7 @@ public class ExtendedSecurityServiceImplUnitTest
.thenReturn(renditionNodeRef);
when(mockedNodeService.getChildAssocs(nodeRef, RenditionModel.ASSOC_RENDITION, RegexQNamePattern.MATCH_ALL))
.thenReturn(Collections.singletonList(mockedChildAssociationRef));
// setup permissions
Set<AccessPermission> permissions = Stream
.of(new AccessPermissionImpl(AlfMock.generateText(), AccessStatus.ALLOWED, readGroup, 0),
@@ -913,17 +1013,17 @@ public class ExtendedSecurityServiceImplUnitTest
.collect(Collectors.toSet());
when(mockedPermissionService.getAllSetPermissions(nodeRef))
.thenReturn(permissions);
// remove extended security
extendedSecurityService.remove(nodeRef);
// verify that the groups permissions have been removed
verify(mockedPermissionService).clearPermission(nodeRef, readGroup);
verify(mockedPermissionService).clearPermission(nodeRef, writeGroup);
// verify that the groups permissions have been removed from the rendition
verify(mockedPermissionService).clearPermission(renditionNodeRef, readGroup);
verify(mockedPermissionService).clearPermission(renditionNodeRef, writeGroup);
}
}

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-governance-services-community-repo-parent</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<build>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<modules>

View File

@@ -8,7 +8,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-amps</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<properties>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<dependencies>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<properties>
@@ -144,7 +144,7 @@
<dependency>
<groupId>com.fasterxml.woodstox</groupId>
<artifactId>woodstox-core</artifactId>
<version>7.0.0</version>
<version>7.1.1</version>
</dependency>
<!-- the cxf libs were updated, see dependencyManagement section -->

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<dependencies>

View File

@@ -9,6 +9,6 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-packaging</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
</project>

View File

@@ -1,6 +1,5 @@
# More infos about this image: https://github.com/Alfresco/alfresco-docker-base-tomcat
FROM alfresco/alfresco-base-tomcat:tomcat10-jre17-rockylinux9@sha256:9622418e142fb4fe1c5320666ad61ea292bc5c98f3dd0b550b6add33d18f659f
FROM alfresco/alfresco-base-tomcat:tomcat10-jre17-rockylinux9@sha256:00d89fb84bda7bb37c17b0117adb2cfe4f7cbddcd6c1e42b0a67ea8dbb41a734
# Set default docker_context.
ARG resource_path=target

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-packaging</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<properties>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<modules>

View File

@@ -1,3 +1,3 @@
SOLR6_TAG=2.0.15
SOLR6_TAG=2.0.16
POSTGRES_TAG=16.6
ACTIVEMQ_TAG=5.18.3-jre17-rockylinux8

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-packaging</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<modules>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-tests</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<organization>

View File

@@ -9,7 +9,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-tests</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<developers>

View File

@@ -9,7 +9,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-tests</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<developers>

View File

@@ -8,7 +8,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-tests</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<properties>
@@ -17,7 +17,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<rest.api.explorer.branch>master</rest.api.explorer.branch>
<httpclient-osgi-version>4.5.6</httpclient-osgi-version>
<commons-lang3.version>3.17.0</commons-lang3.version>
<commons-lang3.version>3.18.0</commons-lang3.version>
<scribejava-apis.version>8.3.3</scribejava-apis.version>
<java.version>17</java.version>
</properties>
@@ -159,14 +159,14 @@
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>3.0.23</version>
<version>3.0.25</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-json-->
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-json</artifactId>
<version>3.0.22</version>
<version>3.0.25</version>
</dependency>
<dependency>

View File

@@ -0,0 +1,95 @@
/*
* #%L
* Alfresco Repository
* %%
* Copyright (C) 2025 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.rest.search;
import static org.testng.Assert.*;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.http.HttpStatus;
import org.testng.annotations.Test;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestNodeModel;
import org.alfresco.utility.RetryOperation;
import org.alfresco.utility.Utility;
import org.alfresco.utility.model.ContentModel;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
public class NodeContentTest extends RestTest
{
@TestRail(section = {TestGroup.REST_API,
TestGroup.SEARCH}, executionType = ExecutionType.SANITY, description = "Check basic functionality of GET queries/sites")
@Test(groups = {TestGroup.REST_API, TestGroup.RATINGS, TestGroup.CORE})
public void testNodeContent() throws Exception
{
UserModel adminUser = dataContent.getAdminUser();
final String fileName = "nodecontent.pdf";
final String term = "babekyrtso";
FileModel fileModel = FileModel.getFileModelBasedOnTestDataFile(fileName);
restClient.authenticateUser(adminUser)
.configureRequestSpec()
.addMultiPart("filedata", fileModel.toFile());
RestNodeModel node = restClient.authenticateUser(adminUser).withCoreAPI().usingNode(ContentModel.my()).createNode();
restClient.assertStatusCodeIs(HttpStatus.CREATED);
SearchRequest query = new SearchRequest();
RestRequestQueryModel queryModel = new RestRequestQueryModel();
queryModel.setLanguage("afts");
queryModel.setQuery(term);
query.setQuery(queryModel);
RetryOperation op = () -> {
List<SearchNodeModel> entries = restClient.authenticateUser(adminUser)
.withSearchAPI()
.search(query).getEntries();
assertFalse(CollectionUtils.isEmpty(entries), "Search results should not be empty");
boolean fileFound = entries.stream()
.map(SearchNodeModel::getModel)
.anyMatch(e -> fileName.equals(e.getName()));
assertTrue(fileFound, "Search results should contain the file: " + fileName);
restClient.assertStatusCodeIs(HttpStatus.OK);
};
Utility.sleep(300, 100000, op);
restClient.authenticateUser(adminUser)
.withCoreAPI()
.usingNode(ContentModel.my())
.deleteNode(node);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
}

View File

@@ -15,6 +15,7 @@
<package name="org.alfresco.rest.people.*"/>
<package name="org.alfresco.rest.queries.*"/>
<package name="org.alfresco.rest.ratings.*"/>
<package name="org.alfresco.rest.search.*"/>
</packages>
</test>
</suite>

View File

@@ -9,7 +9,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-tests</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<developers>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-packaging</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<properties>

58
pom.xml
View File

@@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>alfresco-community-repo</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Alfresco Community Repo Parent</name>
@@ -24,7 +24,7 @@
<properties>
<acs.version.major>25</acs.version.major>
<acs.version.minor>2</acs.version.minor>
<acs.version.minor>3</acs.version.minor>
<acs.version.revision>0</acs.version.revision>
<acs.version.label />
<amp.min.version>${acs.version.major}.0.0</amp.min.version>
@@ -51,26 +51,26 @@
<dependency.alfresco-server-root.version>7.0.2</dependency.alfresco-server-root.version>
<dependency.activiti-engine.version>5.23.0</dependency.activiti-engine.version>
<dependency.activiti.version>5.23.0</dependency.activiti.version>
<dependency.alfresco-transform-core.version>5.1.8-A.2</dependency.alfresco-transform-core.version>
<dependency.alfresco-transform-service.version>4.1.8-A.2</dependency.alfresco-transform-service.version>
<dependency.alfresco-transform-core.version>5.2.1-A.3</dependency.alfresco-transform-core.version>
<dependency.alfresco-transform-service.version>4.2.1-A.4</dependency.alfresco-transform-service.version>
<dependency.alfresco-greenmail.version>7.1</dependency.alfresco-greenmail.version>
<dependency.acs-event-model.version>1.0.2</dependency.acs-event-model.version>
<dependency.acs-event-model.version>1.0.5</dependency.acs-event-model.version>
<dependency.aspectj.version>1.9.22.1</dependency.aspectj.version>
<dependency.spring.version>6.2.2</dependency.spring.version>
<dependency.spring.version>6.2.8</dependency.spring.version>
<dependency.spring-security.version>6.3.9</dependency.spring-security.version>
<dependency.antlr.version>3.5.3</dependency.antlr.version>
<dependency.jackson.version>2.17.2</dependency.jackson.version>
<dependency.cxf.version>4.1.0</dependency.cxf.version>
<dependency.cxf.version>4.1.2</dependency.cxf.version>
<dependency.opencmis.version>1.0.0-jakarta-1</dependency.opencmis.version>
<dependency.webscripts.version>10.0</dependency.webscripts.version>
<dependency.bouncycastle.version>1.79</dependency.bouncycastle.version>
<dependency.mockito-core.version>5.14.1</dependency.mockito-core.version>
<dependency.webscripts.version>10.2</dependency.webscripts.version>
<dependency.bouncycastle.version>1.81</dependency.bouncycastle.version>
<dependency.mockito-core.version>5.18.0</dependency.mockito-core.version>
<dependency.assertj.version>3.27.3</dependency.assertj.version>
<dependency.org-json.version>20240303</dependency.org-json.version>
<dependency.org-json.version>20250517</dependency.org-json.version>
<dependency.commons-dbcp.version>2.12.0</dependency.commons-dbcp.version>
<dependency.commons-io.version>2.18.0</dependency.commons-io.version>
<dependency.gson.version>2.12.1</dependency.gson.version>
<dependency.commons-io.version>2.20.0</dependency.commons-io.version>
<dependency.gson.version>2.13.1</dependency.gson.version>
<dependency.guava.version>33.3.1-jre</dependency.guava.version>
<dependency.httpclient.version>4.5.14</dependency.httpclient.version>
<dependency.httpcore.version>4.4.16</dependency.httpcore.version>
@@ -80,8 +80,8 @@
<dependency.commons-httpclient.version>3.1-HTTPCLIENT-1265</dependency.commons-httpclient.version>
<dependency.xercesImpl.version>2.12.2</dependency.xercesImpl.version>
<dependency.slf4j.version>2.0.16</dependency.slf4j.version>
<dependency.log4j.version>2.24.3</dependency.log4j.version>
<dependency.groovy.version>3.0.23</dependency.groovy.version>
<dependency.log4j.version>2.25.1</dependency.log4j.version>
<dependency.groovy.version>3.0.25</dependency.groovy.version>
<dependency.tika.version>2.9.2</dependency.tika.version>
<dependency.truezip.version>7.7.10</dependency.truezip.version>
<dependency.poi.version>5.4.0</dependency.poi.version>
@@ -115,19 +115,19 @@
<dependency.jakarta-json-path.version>2.9.0</dependency.jakarta-json-path.version>
<dependency.json-smart.version>2.5.2</dependency.json-smart.version>
<alfresco.googledrive.version>4.1.0</alfresco.googledrive.version>
<alfresco.aos-module.version>3.3.0-A1</alfresco.aos-module.version>
<alfresco.api-explorer.version>25.1.0</alfresco.api-explorer.version> <!-- Also in alfresco-enterprise-share -->
<alfresco.aos-module.version>3.3.0</alfresco.aos-module.version>
<alfresco.api-explorer.version>25.2.0</alfresco.api-explorer.version> <!-- Also in alfresco-enterprise-share -->
<alfresco.maven-plugin.version>2.2.0</alfresco.maven-plugin.version>
<license-maven-plugin.version>2.4.0</license-maven-plugin.version>
<spotless-plugin.version>2.44.2</spotless-plugin.version>
<spotless-plugin.version>2.45.0</spotless-plugin.version>
<dependency.postgresql.version>42.7.5</dependency.postgresql.version>
<dependency.mysql.version>8.0.30</dependency.mysql.version>
<dependency.mysql-image.version>8</dependency.mysql-image.version>
<dependency.mariadb.version>2.7.4</dependency.mariadb.version>
<dependency.tas-utility.version>5.0.2</dependency.tas-utility.version>
<dependency.rest-assured.version>5.5.0</dependency.rest-assured.version>
<dependency.rest-assured.version>5.5.5</dependency.rest-assured.version>
<dependency.tas-email.version>2.0.0</dependency.tas-email.version>
<dependency.tas-webdav.version>1.21</dependency.tas-webdav.version>
<dependency.tas-ftp.version>1.19</dependency.tas-ftp.version>
@@ -154,7 +154,7 @@
<connection>scm:git:https://github.com/Alfresco/alfresco-community-repo.git</connection>
<developerConnection>scm:git:https://github.com/Alfresco/alfresco-community-repo.git</developerConnection>
<url>https://github.com/Alfresco/alfresco-community-repo</url>
<tag>25.2.0.52</tag>
<tag>HEAD</tag>
</scm>
<distributionManagement>
@@ -409,7 +409,7 @@
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.3.3</version>
<version>1.3.5</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
@@ -444,8 +444,8 @@
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-fileupload2-jakarta</artifactId>
<version>2.0.0-M1</version>
<artifactId>commons-fileupload2-jakarta-servlet6</artifactId>
<version>2.0.0-M4</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
@@ -708,13 +708,13 @@
<dependency>
<groupId>com.networknt</groupId>
<artifactId>json-schema-validator</artifactId>
<version>1.5.5</version>
<version>1.5.8</version>
</dependency>
<!-- upgrade dependency from TIKA -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.18.1</version>
<version>1.21.1</version>
</dependency>
<!-- upgrade dependency from TIKA -->
<dependency>
@@ -798,7 +798,7 @@
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.13.1</version>
<version>2.14.0</version>
</dependency>
<!-- provided dependencies -->
@@ -943,7 +943,7 @@
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.36</version>
<version>1.18.38</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -1000,7 +1000,7 @@
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.45.0</version>
<version>0.46.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
@@ -1081,7 +1081,7 @@
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven3-plugin</artifactId>
<version>1.10.16</version>
<version>1.10.20</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<dependencies>
@@ -45,7 +45,7 @@
<dependency>
<groupId>org.apache.santuario</groupId>
<artifactId>xmlsec</artifactId>
<version>4.0.3</version>
<version>4.0.4</version>
</dependency>
<!-- newer version, see REPO-3133 -->
<dependency>

View File

@@ -30,7 +30,7 @@ import jakarta.servlet.http.HttpServletRequest;
import org.apache.commons.fileupload2.core.FileItemInput;
import org.apache.commons.fileupload2.core.FileItemInputIterator;
import org.apache.commons.fileupload2.jakarta.JakartaServletFileUpload;
import org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletFileUpload;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.extensions.webscripts.Status;

View File

@@ -31,7 +31,7 @@ import jakarta.servlet.http.HttpServletRequest;
import org.apache.commons.fileupload2.core.FileItemInput;
import org.apache.commons.fileupload2.core.FileItemInputIterator;
import org.apache.commons.fileupload2.jakarta.JakartaServletFileUpload;
import org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletFileUpload;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.extensions.webscripts.Status;

View File

@@ -27,7 +27,6 @@ package org.alfresco.rest.framework.resource.parameters;
import java.util.List;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.extensions.webscripts.WebScriptRequest;
import org.alfresco.rest.framework.core.exceptions.InvalidArgumentException;
@@ -69,7 +68,7 @@ public interface Parameters
* @return The Parameter value
* @throws InvalidArgumentException
*/
T getParameter(String parameterName, Class<T> clazz) throws InvalidArgumentException;
<T> T getParameter(String parameterName, Class<T> clazz) throws InvalidArgumentException;
/**
* Returns a representation of the Paging of collections of resources, with skip count and max items. See {@link Paging} Specified by the "skipCount" and "maxItems" request parameters.

View File

@@ -31,7 +31,6 @@ import java.util.List;
import java.util.Map;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.extensions.webscripts.WebScriptRequest;
import org.alfresco.repo.content.MimetypeMap;
@@ -231,7 +230,7 @@ public class Params implements Parameters
}
@Override
public T getParameter(String parameterName, Class<T> clazz) throws InvalidArgumentException
public <T> T getParameter(String parameterName, Class<T> clazz) throws InvalidArgumentException
{
String param = getParameter(parameterName);
if (param == null)
@@ -239,7 +238,7 @@ public class Params implements Parameters
Object obj = ConvertUtils.convert(param, clazz);
if (obj != null && obj.getClass().equals(clazz))
{
return (T) obj;
return clazz.cast(obj);
}
throw new InvalidArgumentException(InvalidArgumentException.DEFAULT_MESSAGE_ID, new Object[]{parameterName});
}

View File

@@ -25,6 +25,8 @@
*/
package org.alfresco.rest.api.tests;
import java.util.Arrays;
import org.alfresco.repo.web.util.JettyComponent;
public class EnterprisePublicApiTestFixture extends EnterpriseTestFixture
@@ -40,32 +42,53 @@ public class EnterprisePublicApiTestFixture extends EnterpriseTestFixture
public final static String[] CLASS_LOCATIONS = new String[]{"classpath*:/publicapi/lucene/"};
private static EnterprisePublicApiTestFixture instance;
private String[] customConfigLocations;
/* Note: synchronized for multi-threaded test access */
public synchronized static EnterprisePublicApiTestFixture getInstance(boolean createTestData) throws Exception
public synchronized static EnterprisePublicApiTestFixture getInstance(boolean createTestData, String... customConfigLocations)
{
if (instance == null)
{
instance = new EnterprisePublicApiTestFixture();
instance.setup(createTestData);
instance = new EnterprisePublicApiTestFixture(customConfigLocations);
try
{
instance.setup(createTestData);
}
catch (Exception e)
{
String errorMessage = "Exception was thrown during setup EnterprisePublicApiTestFixture: " + e.getClass() + " - " + e.getMessage();
throw new RuntimeException(errorMessage, e);
}
}
return instance;
}
public static EnterprisePublicApiTestFixture getInstance() throws Exception
public static EnterprisePublicApiTestFixture getInstance(String... customConfigLocations)
{
return getInstance(true);
return getInstance(true, customConfigLocations);
}
private EnterprisePublicApiTestFixture()
public static EnterprisePublicApiTestFixture getInstance()
{
return getInstance(true, null);
}
public static EnterprisePublicApiTestFixture getInstance(boolean createTestData)
{
return getInstance(createTestData, null);
}
private EnterprisePublicApiTestFixture(String... customConfigLocations)
{
super(CONFIG_LOCATIONS, CLASS_LOCATIONS, PORT, CONTEXT_PATH, PUBLIC_API_SERVLET_NAME, DEFAULT_NUM_MEMBERS_PER_SITE, false);
this.customConfigLocations = customConfigLocations;
}
@Override
protected JettyComponent makeJettyComponent()
{
JettyComponent jettyComponent = new EnterpriseJettyComponent(getPort(), getContextPath(), getConfigLocations(), getClassLocations());
String[] configLocations = mergeLocations(getConfigLocations(), this.customConfigLocations);
JettyComponent jettyComponent = new EnterpriseJettyComponent(getPort(), getContextPath(), configLocations, getClassLocations());
return jettyComponent;
}
@@ -74,4 +97,19 @@ public class EnterprisePublicApiTestFixture extends EnterpriseTestFixture
{
return new RepoService(applicationContext);
}
private String[] mergeLocations(String[]... locations)
{
String[] mergedLocations = new String[0];
for (String[] location : locations)
{
if (location == null || location.length == 0)
{
continue;
}
mergedLocations = Arrays.copyOf(mergedLocations, mergedLocations.length + location.length);
System.arraycopy(location, 0, mergedLocations, mergedLocations.length - location.length, location.length);
}
return mergedLocations;
}
}

View File

@@ -36,15 +36,21 @@ public class EnterpriseTestApi extends AbstractTestApi
getTestFixture().getRandomNetwork();
}
protected String[] getCustomConfigLocations()
{
return new String[]{};
}
@Override
protected TestFixture getTestFixture() throws Exception
{
return EnterprisePublicApiTestFixture.getInstance();
return EnterprisePublicApiTestFixture.getInstance(getCustomConfigLocations());
}
@Override
protected TestFixture getTestFixture(boolean createTestData) throws Exception
{
return EnterprisePublicApiTestFixture.getInstance(createTestData);
return EnterprisePublicApiTestFixture.getInstance(createTestData, getCustomConfigLocations());
}
}

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>25.2.0.52</version>
<version>25.3.0.25-SNAPSHOT</version>
</parent>
<dependencies>
@@ -85,7 +85,7 @@
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-fileupload2-jakarta</artifactId>
<artifactId>commons-fileupload2-jakarta-servlet6</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@@ -94,7 +94,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.17.0</version>
<version>3.18.0</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
@@ -120,7 +120,7 @@
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.9.0</version>
<version>1.10.0</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
@@ -190,7 +190,7 @@
<dependency>
<groupId>com.github.davidmoten</groupId>
<artifactId>subethasmtp</artifactId>
<version>6.0.6</version>
<version>7.1.8</version>
<exclusions>
<!-- Duplicate classes from com.sun.mail:jakarta.mail -->
<exclusion>
@@ -358,7 +358,7 @@
<dependency>
<groupId>com.fasterxml.woodstox</groupId>
<artifactId>woodstox-core</artifactId>
<version>7.0.0</version>
<version>7.1.1</version>
</dependency>
<dependency>
@@ -402,7 +402,7 @@
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>3.0.4</version>
<version>3.0.5</version>
</dependency>
<!-- Activiti -->

View File

@@ -1130,7 +1130,10 @@ public class Search extends BaseScopableProcessorExtension implements Initializi
// for example the key could be: {!afts}@{http://www.alfresco.org/model/content/1.0}created:[NOW/DAY-1DAY TO NOW/DAY+1DAY]
// qName => @{http://www.alfresco.org/model/content/1.0}created
// 7 => {!afts}
key = key.substring(7);
if (key.startsWith("{!afts}"))
{
key = key.substring(7);
}
String qName = key.substring(0, key.lastIndexOf(':'));
// Retrieve the previous facet queries

View File

@@ -862,9 +862,18 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl implements Extens
if (aspectDef != null)
{
// Remove default properties
Map<QName, Serializable> propsBefore = nodeDAO.getNodeProperties(nodeId);
Map<QName, PropertyDefinition> propertyDefs = aspectDef.getProperties();
Set<QName> propertyToRemoveQNames = propertyDefs.keySet();
nodeDAO.removeNodeProperties(nodeId, propertyToRemoveQNames);
boolean propertiesRemoved = nodeDAO.removeNodeProperties(nodeId, propertyToRemoveQNames);
if (propertiesRemoved)
{
invokeOnUpdateProperties(
nodeRef,
propsBefore, // before
nodeDAO.getNodeProperties(nodeId)); // after
}
// Remove child associations
// We have to iterate over the associations and remove all those between the parent and child

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Repository
* %%
* Copyright (C) 2005 - 2021 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -115,15 +115,15 @@ public class NodePermissionAssessor
Set<QName> nodeAspects = nodeService.getAspects(node.getNodeRef());
String userName = null;
if (nodeAspects.contains(ContentModel.ASPECT_AUDITABLE))
{
userName = node.getAuditableProperties().getAuditCreator();
}
else if (nodeAspects.contains(ContentModel.ASPECT_OWNABLE))
if (nodeAspects.contains(ContentModel.ASPECT_OWNABLE))
{
Serializable owner = nodeService.getProperty(node.getNodeRef(), ContentModel.PROP_OWNER);
userName = DefaultTypeConverter.INSTANCE.convert(String.class, owner);
}
else if (nodeAspects.contains(ContentModel.ASPECT_AUDITABLE))
{
userName = node.getAuditableProperties().getAuditCreator();
}
return userName;
}

View File

@@ -3,7 +3,7 @@
repository.name=Main Repository
# Schema number
version.schema=20100
version.schema=20200
# Directory configuration

View File

@@ -26,6 +26,12 @@
package org.alfresco.repo.event2;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.alfresco.model.ContentModel.PROP_DESCRIPTION;
import java.io.Serializable;
@@ -545,6 +551,49 @@ public class UpdateRepoEventIT extends AbstractContextAwareRepoEvent
assertEquals(aspectsBeforeRemove, resourceBefore.getAspectNames());
}
@Test
public void testRemoveAspectPropertiesTest()
{
final NodeRef nodeRef = createNode(ContentModel.TYPE_CONTENT);
NodeResource resource = getNodeResource(1);
final Set<String> originalAspects = resource.getAspectNames();
assertNotNull(originalAspects);
// Add cm:geographic aspect with properties
retryingTransactionHelper.doInTransaction(() -> {
Map<QName, Serializable> aspectProperties = new HashMap<>();
aspectProperties.put(ContentModel.PROP_LATITUDE, "12.345678");
aspectProperties.put(ContentModel.PROP_LONGITUDE, "12.345678");
nodeService.addAspect(nodeRef, ContentModel.ASPECT_GEOGRAPHIC, aspectProperties);
return null;
});
resource = getNodeResource(2);
Set<String> aspectsBeforeRemove = resource.getAspectNames();
assertNotNull(aspectsBeforeRemove);
assertTrue(aspectsBeforeRemove.contains("cm:geographic"));
// Remove cm:geographic aspect - this automatically removes the properties from the node
retryingTransactionHelper.doInTransaction(() -> {
nodeService.removeAspect(nodeRef, ContentModel.ASPECT_GEOGRAPHIC);
return null;
});
resource = getNodeResource(3);
assertEquals(originalAspects, resource.getAspectNames());
NodeResource resourceBefore = getNodeResourceBefore(3);
assertNotNull(resourceBefore.getAspectNames());
assertEquals(aspectsBeforeRemove, resourceBefore.getAspectNames());
// Resource before should contain cm:latitude and cm:longitude properties
assertNotNull(resourceBefore.getProperties());
assertTrue(resourceBefore.getProperties().containsKey("cm:latitude"));
assertTrue(resourceBefore.getProperties().containsKey("cm:longitude"));
// Resource after should NOT contain cm:latitude and cm:longitude properties
assertNotNull(resource.getProperties());
assertFalse(resource.getProperties().containsKey("cm:latitude"));
assertFalse(resource.getProperties().containsKey("cm:longitude"));
}
@Test
public void testCreateAndUpdateInTheSameTransaction()
{