This is an automated email from the ASF dual-hosted git repository.

jungm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomee-tck.git


The following commit(s) were added to refs/heads/main by this push:
     new 5f158b6  enable security 4.0 suite completely
5f158b6 is described below

commit 5f158b642fb3ad896e0e168f6d78b4b327d7d4c5
Author: Markus Jung <[email protected]>
AuthorDate: Sun Aug 23 21:04:01 2026 +0200

    enable security 4.0 suite completely
---
 KNOWN_ISSUES.md                               | 22 ++++++----------------
 runner-standalone/README.md                   |  2 +-
 runner-standalone/exclusions/security-old.txt | 14 ++------------
 3 files changed, 9 insertions(+), 29 deletions(-)

diff --git a/KNOWN_ISSUES.md b/KNOWN_ISSUES.md
index 3beb416..099b87d 100644
--- a/KNOWN_ISSUES.md
+++ b/KNOWN_ISSUES.md
@@ -118,26 +118,16 @@ Fixes belong in Apache TomEE (or Tomcat); each removes 
exclusion entries.
    runner drives the reactor's modern Arquillian app modules plus the signature
    test; the reactor's `old-tck` module (legacy JavaTest suite,
    `com.sun.ts.tests.securityapi`) is run by the separate `security-old` 
runner.
-6. **Jakarta Security `SecurityContext.hasAccessToWebResource()`** — the
-   programmatic access check returns `false` for a caller that is authorized
-   for the resource. The old-tck `securitycontext/callerdata` servlet reports
-   the correct caller and role membership, but `hasAccessToWebResource(
-   "/protectedServlet", "GET")` answers `false` where the spec requires `true`
-   for user `tom` (Manager role) against the `@HttpMethodConstraint("GET")`
-   resource; TomEE's `SecurityContext` is not wired to the servlet
-   authorization/`Policy` layer for this call. Excluded in
-   [security-old.txt](runner-standalone/exclusions/security-old.txt)
-   
(`securitycontext/callerdata/Client.java#testSecurityContextHasAccessToWebResource`).
-7. **Persistence integration** — undeploy calls `close()` on an
+6. **Persistence integration** — undeploy calls `close()` on an
    already-closed `EntityManagerFactory` (fails the
    `entityManagerFactoryCloseExceptions` vehicles), and the Jakarta
    Persistence 3.2 CDI qualifier beans (`EntityManagerFactory`/
    `EntityManager` etc. from `persistence.xml`) are not registered
    (`ServletEMLookupTest`). Affects Plume and webprofile alike.
-8. **Jakarta Tags TLD registration** — the `jakarta.tags.*` URIs of the
+7. **Jakarta Tags TLD registration** — the `jakarta.tags.*` URIs of the
    replacement Jakarta Tags 3.0 jar are not exposed to applications; all 50
    Tags classes plus the EJB-Lite JSP vehicles fail as collateral.
-9. **Transactions — cross-request `UserTransaction` state leakage across
+8. **Transactions — cross-request `UserTransaction` state leakage across
    pooled servlet requests.** A `UserTransaction` a servlet/jsp request leaves
    in a non-clean state poisons the next request served on the same pooled
    Tomcat exec thread; the victim sees an `IllegalStateException` that is not
@@ -158,14 +148,14 @@ Fixes belong in Apache TomEE (or Tomcat); each removes 
exclusion entries.
    [transactions.txt](runner-standalone/exclusions/transactions.txt). The
    Platform catalog additionally shows CDI `@Transactional` interceptors
    failing propagation, rollback-rule, and `TransactionScoped` assertions.
-10. **Enterprise Beans** — timer callbacks expose incomplete/not-retried
+9. **Enterprise Beans** — timer callbacks expose incomplete/not-retried
    transactions, `java:comp` is mutable where the spec requires
    `OperationNotSupportedException`, and failed CDI/EJB deployments leak
    deployment IDs (`DuplicateDeploymentIdException` in later apps).
-11. **webprofile ZIP signature leak** — the combined `jakartaee-api` jar
+10. **webprofile ZIP signature leak** — the combined `jakartaee-api` jar
     exposes Jakarta Batch and Messaging packages although `javaee.level=web`
     does not declare them; strip them or declare and certify them.
-12. **WebSocket 2.2 extension advertising (Tomcat)** — the server-side
+11. **WebSocket 2.2 extension advertising (Tomcat)** — the server-side
     configurator reports the extensions the client requested and negotiated.
     TomEE's client-side WebSocket container (Tomcat's `tomcat-websocket`)
     always advertises its built-in `permessage-deflate` extension in the
diff --git a/runner-standalone/README.md b/runner-standalone/README.md
index 1d40755..015554f 100644
--- a/runner-standalone/README.md
+++ b/runner-standalone/README.md
@@ -86,7 +86,7 @@ derived from; with the default exclusions applied these 
suites run green.
 | Validation 3.1 | EFTL zip (installed as 
`jakarta.validation:validation-tck-tests:3.1.1`) | `validation` | **Runs: 1,049 
tests, 0 failures, no exclusions; the mandatory API signature test runs and 
passes** against the `jakarta.validation` packages the Plume distribution 
ships. Needs AssertJ 3.7.0 pinned (the published TCK jar is compiled against 
its covariant signatures) |
 | WebSocket 2.2 | EFTL zip (installed as 
`jakarta.tck:websocket-tck-spec-tests:2.2.0`) | `websocket` | **Runs: 737 
tests, 0 failures, 3 errors** (2026-07-18) against Tomcat's WebSocket 
implementation, driven through the `tomcat-websocket` client container; the 
signature test passes. The negative-deployment classes run and pass: an invalid 
server endpoint aborts the whole webapp deployment as the spec requires, and 
the runner's Arquillian extension (`NegativeDeploymentToleranceObserver`)  [...]
 | Security 4.0 | Source reactor zip 4.0.1 | `security` (Maven module) | 
**Runs: 26 app modules plus the signature test, 132 tests, 5 failures, 2 errors 
at baseline; green with the reviewed exclusions (all 27 invoker projects pass, 
verified end-to-end 2026-07-18)**. The runner downloads and patches the 
reactor, injects a tomee-remote profile (including the 
`trustStore.path`/`trustStore.password` properties the OpenID modules' keytool 
steps read), and drives every module through the Maven  [...]
-| Security 4.0 (legacy old-tck) | Source reactor zip 4.0.1 (old-tck built from 
bundled sources) | `security-old` (Maven module) | **Baseline 83 tests, 82 
pass, 1 failure (Plume, JDK 21, 2026-07-19); green with the reviewed 
exclusion.** The legacy JavaTest half exercises ~65 
`com.sun.ts.tests.securityapi` Client classes across the idstore (in-war, 
database, LDAP), ham (HTTP authentication mechanism) and securitycontext trees. 
It deploys through the TCK's own `tomcat` handler (WAR copy int [...]
+| Security 4.0 (legacy old-tck) | Source reactor zip 4.0.1 (old-tck built from 
bundled sources) | `security-old` (Maven module) | **Passes 83/83 (0 failures, 
0 errors, no exclusions) (Plume, JDK 21, 2026-08-21).** The legacy JavaTest 
half exercises ~65 `com.sun.ts.tests.securityapi` Client classes across the 
idstore (in-war, database, LDAP), ham (HTTP authentication mechanism) and 
securitycontext trees. It deploys through the TCK's own `tomcat` handler (WAR 
copy into `webapps/`) against  [...]
 | Authentication 3.1 | Source reactor zip 3.1.2 | `authentication` (Maven 
module) | **Runs: 10 Web Profile modules plus the signature test; green with 
the reviewed exclusions (all 11 invoker projects pass, 0 failures)**. The spi 
module registers the TCK's test `AuthConfigProvider` under Tomcat's JASPIC 
app-context naming (`Catalina/localhost /spitests_servlet_web`), so 
`ServletProfileSPITest` runs against Tomcat's `AuthConfigFactory` and passes 56 
of its 57 assertions; the runner patches [...]
 | Faces 4.1 | Source reactor zip 4.1.2 | `faces` (Maven module) | **Runs: 
modern Arquillian modules (faces22/23/40/41) plus the Chrome/Selenium 
`old-tck-selenium` modules (ajax, commandLink, protectedViews) — 298 tests, 0 
failures, 0 errors, 17 skipped** on Plume's Mojarra, with 
`exclusions/faces.txt` applied. The 10 excluded classes are one TomEE product 
gap (faces-config.xml unmarshaller rejecting the nonstandard *https* 
`xsi:schemaLocation`, `Spec1760IT`) and Mojarra/TomEE integration [...]
 | Faces 4.1 (legacy old-tck) | Source reactor zip 4.1.2 (old-tck built from 
bundled sources) | `faces-old` (Maven module) | **Passes 5,391/5,391 
(standalone mode, no exclusions)** (2026-07-18). The recorded full run shows 5 
failures in `htmloutcometargetbutton`, all from a foreign server answering port 
8080 mid-run; they pass on re-run against TomEE. The JavaTest half deploys 
through the TCK's own `tomcat` handler (WAR copy into `webapps/`) against a 
TomEE instance the runner provisions  [...]
diff --git a/runner-standalone/exclusions/security-old.txt 
b/runner-standalone/exclusions/security-old.txt
index 50bb8a6..7440218 100644
--- a/runner-standalone/exclusions/security-old.txt
+++ b/runner-standalone/exclusions/security-old.txt
@@ -4,15 +4,5 @@
 # runner-standalone-security-old module. See KNOWN_ISSUES.md for the
 # rationale behind each entry.
 #
-# Baseline 2026-07-19 (Plume, JDK 21): 83 tests, 82 passed, 1 failed,
-# 0 errors. The single failure below is a TomEE product gap.
-
-# TomEE product gap: SecurityContext.hasAccessToWebResource() returns false
-# for a caller that is authorized for the resource. The servlet reports the
-# correct caller ("context username: tom") and the authentication path works,
-# but the programmatic access check answers "has GET access ... : false" where
-# the spec requires true for user tom (Manager role) against the
-# @HttpMethodConstraint("GET") /protectedServlet. TomEE's SecurityContext is
-# not wired to the servlet authorization/Policy layer for
-# hasAccessToWebResource(). Assertions Security:JAVADOC:7/8, 
Security:SPEC:4.3-1.
-com/sun/ts/tests/securityapi/securitycontext/callerdata/Client.java#testSecurityContextHasAccessToWebResource
+# Baseline 2026-08-21 (Plume, JDK 21): 83 tests, 83 passed, 0 failed,
+# 0 errors. No exclusions: the full suite runs.

Reply via email to